Sistema de monitoreo de contenedores Docker

Tabla de contenido

Descripción simplificada

Cadvisor+InfluxDB+Grafana

Diagrama de arquitectura de componentes de monitoreo

desplegar

Instalar Docker-ce

Acelerador de imágenes en la nube de Alibaba

Descargar imagen del componente

Crear una red personalizada

Crear contenedor influxdb

Crear contenedor de granafa


Descripción simplificada


Como excelente tecnología de gestión de contenedores, Docker ha sido favorecido por un gran número de empresas y cada vez hay más escenarios en los que los servicios y aplicaciones de implementación de contenedores de Docker se utilizan en entornos de producción. Por lo tanto, frente a las cada vez más grandes aplicaciones del grupo de servicios Docker, cómo realizar un monitoreo específico y efectivo se ha convertido en un requisito laboral para el personal de operación y mantenimiento empresarial.

Existen muchas soluciones para la recopilación y el monitoreo de información de contenedores, incluido el comando docker stats de Docker, Scout, Data Dog, Prometheus, etc. Esta vez compartiré con ustedes dos soluciones clásicas combinadas de monitoreo de contenedores de código abierto, Cadvisor + InfluxDB + Grafana y Cadvisor. + Prometeo + Grafana

Cadvisor +InfluxDB+Grafan a


Cadvisor, InfluxDB y Grafana son tres herramientas populares de software de código abierto que se utilizan habitualmente para la supervisión y visualización de contenedores.

Cadvisor es una herramienta para monitorear el uso de recursos del contenedor, que puede proporcionar indicadores de rendimiento en CPU, memoria, disco y red.

Características:

  • Se pueden mostrar datos de monitoreo tanto a nivel de host como de contenedor.
  • Puede mostrar datos de cambios históricos.
  • Un producto de código abierto de Google.
  • Indicadores de seguimiento completos.
  • Fácil de implementar, hay una imagen acoplable oficial.
  • De forma predeterminada, solo se guarda localmente 1 minuto de datos y se puede integrar con almacenamiento de terceros, como InfluxDB.

InfluxDB es una base de datos de series de tiempo que se utiliza para almacenar y administrar grandes cantidades de datos de series de tiempo. Se utiliza ampliamente en monitoreo en tiempo real, monitoreo de operación y mantenimiento e Internet de las cosas.

La función principal

  • Basado en series de tiempo, admite funciones de correlación relacionadas con el tiempo (como máximo, mínimo, suma, etc.);
  • Mensurabilidad: puede realizar cálculos sobre grandes cantidades de datos en tiempo real;
  • Basado en eventos: admite datos de eventos arbitrarios;

Características

  • Sin estructura (sin esquema): puede tener cualquier número de columnas;
  • Ampliación de soporte;
  • Admite una serie de funciones como mínimo, máximo, suma, recuento, media, mediana, etc. para facilitar las estadísticas;
  • Soporte HTTP nativo, API HTTP incorporada;
  • Potente sintaxis similar a SQL;
  • Viene con su propia interfaz de administración para facilitar su uso;

Grafana es una herramienta para crear y compartir paneles de control de datos en tiempo real que pueden extraer y visualizar datos de una variedad de fuentes de datos. Puede conectarse a la base de datos InfluxDB y mostrar visualmente varios indicadores de rendimiento y datos de monitoreo cuando el contenedor se está ejecutando.

Por lo tanto, a menudo se utiliza una combinación de Cadvisor, InfluxDB y Grafana en entornos de contenedores para obtener, almacenar y mostrar métricas de rendimiento y datos de monitoreo de contenedores.

Principales características

  • Opciones gráficas ricas y flexibles;
  • Puede mezclar varios estilos;
  • Admite modo diurno y nocturno;
  • Admite múltiples fuentes de datos;

Diagrama de arquitectura de componentes de monitoreo


Plan de implementación de la arquitectura de componentes de monitoreo:

  • Cree un monitor de red personalizado (nombre de red personalizado) para que los contenedores posteriores se unan a esta red;
  • Cree un contenedor Influxdb, cree usuarios de datos y bases de datos;
  • Crear contenedor Cadvisor;
  • Cree un contenedor de Grafana y configure grafana;

desplegar


Instalar Docker-ce

ambiente:

Desactivar el cortafuegos

Garantizar la conexión a la red externa

[root@localhost ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo

【Descargar imagen】

[root@localhost ~]# yum -y instalar yum-utils dispositivo-mapper-persistent-data lvm2

[Hay tres paquetes de software instalados en el sistema CentOS: yum-utils, device-mapper-persistent-data y lvm2. Estos paquetes proporcionan herramientas y bibliotecas convenientes que mejoran la funcionalidad del comando yum y admiten datos persistentes y administración de volúmenes lógicos del asignador de dispositivos.

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[Agregar fuente de almacén]

[root@localhost ~]# yum -y install docker-ce  【安装docker-ce】

[root@localhost ~]# systemctl iniciar ventana acoplable    [Inicio]

[root@localhost ~]# systemctl enable docker  [Establecer inicio automático al arrancar]

[root@localhost ~]# versión de Docker [Ver información de la versión]

Acelerador de imágenes en la nube de Alibaba

Inicio de sesión en Alibaba Cloud: bienvenido a Alibaba Cloud, una plataforma de servicios de computación en la nube segura y estable. Bienvenido a Alibaba Cloud, la empresa de tecnología de inteligencia artificial y computación en la nube líder en el mundo. Alibaba Cloud brinda servicios a empresas, desarrolladores y agencias gubernamentales en más de 200 países y regiones Servicios y soluciones básicos de computación en la nube. Alibaba Cloud computación en la nube, seguridad, big data, inteligencia artificial, aplicaciones empresariales, Internet de las cosas y otros servicios de computación en la nube. https://cr.console.aliyun.com/

[root@localhost ~]# cat << FIN > /etc/docker/daemon.json

{

        "espejos de registro":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

FIN

[ La dirección del acelerador de imágenes especificado (Alibaba Cloud Image Accelerator) se agrega al /etc/docker/daemon.jsonarchivo de configuración de Docker ]

[root@localhost ~]# systemctl daemon-reload

[Recargar el archivo de configuración del demonio systemd]

[root@localhost ~]# systemctl reiniciar la ventana acoplable

【Reanudar】

Descargar imagen del componente

 [root@localhost ~]# docker pull tutum/influxdb

[root@localhost ~]# ventana acoplable extrae google/cadvisor

[root@localhost ~]# docker pull grafana/grafana

[root@localhost ~]# imágenes acoplables

[Ver la lista de imágenes de Docker descargadas y la información relacionada]

 

Crear una red personalizada

Para agregar los tres contenedores de Cadvisor+InfluxDB+Grafana creados posteriormente a la red autodefinida para facilitar su comprensión y administración, se creó una nueva red personalizada.

[root@localhost ~]# monitor de creación de red Docker

[root@localhost ~]# red acoplable ls

Crear contenedor influxdb

Inicie el contenedor. No hay una versión especificada de la imagen tutum/influxdb. La última versión de influxdb se extraerá de forma predeterminada:

[root@localhost ~]# docker run -d --name influxdb --net monitor -p 8083:8083 -p 8086:8086 tutum/influxdb

Descripción de parámetros:

  • -d: ejecuta este contenedor en segundo plano;
  • --name: inicia el contenedor y asigna el nombre influxdb;
  • --net: agrega el contenedor al nuevo monitor de red;
  • -p: puerto de mapeo, el puerto 8083 es ​​el puerto de control en segundo plano de infuxdb, el puerto 8086 es el puerto de datos de infuxdb;
  • tutum/influxdb: se ejecuta a través de este contenedor y se extraerá del almacén oficial de Docker de forma predeterminada;

Compruebe si el contenedor influxdb está iniciado

[root@localhost ~]# ventana acoplable ps -l

Visite la consola influxdb http://192.168.200.111:8083 :

Como puede ver en la imagen de arriba, las plantillas de operación de uso común se proporcionan en la opción Plantillas de consulta. Influxdb se puede administrar de acuerdo con estas plantillas. A continuación, crearemos bases de datos y usuarios de bases de datos.

CREAR USUARIO "root" CON CONTRASEÑA '123456' CON TODOS LOS PRIVILEGIOS

Cree la base de datos de Cadvisor y el usuario root, puede definir el usuario y la base de datos a voluntad para una configuración posterior de grafana:

CREAR BASE DE DATOS "cadvisor"

 Crear contenedor Cadvisor

[root@localhost ~]# docker run -d --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume =/var/lib/docker/:/var/lib/docker:ro --net monitor --publish=8080:8080 --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086

Descripción de parámetros:

  • -d: ejecuta este contenedor en segundo plano;
  • --name: El nombre que Cadvisor asignó al contenedor de inicio;
  • --net: agrega el contenedor al nuevo monitor de red;
  • -p: puerto de mapa 8080;
  • --mout: vincula el directorio de fotos del host al contenedor. Estos directorios son archivos de directorio y contenido de monitoreo que Cadvisor necesita recopilar;
  • -storage_driver: debe especificar el controlador de almacenamiento de Cadvisor, el host de la base de datos y el nombre de la base de datos;
  • google/Cadvisor: ejecute el contenedor a través de la imagen de Cadvisor. De forma predeterminada, la imagen se extraerá del almacén oficial de Docker;

Ver el contenedor Cadvisor:

[root@localhost ~]# ventana acoplable ps -l

Pruébelo accediendo al puerto http://192.168.200.111:808 0. Es un poco lento acceder a esta página por primera vez.

Como puede ver en la imagen de arriba, Cadvisor también tiene funciones básicas de visualización gráfica, y aquí lo usamos principalmente para la recopilación de datos.

Preparar imagen de prueba

[root@localhost ~]# docker run -itd --name nginx -p 8000:80 nginx

[root@localhost ~]# imágenes acoplables nginx

[root@localhost ~]# ventana acoplable ps -l

Crear contenedor de granafa

[root@localhost ~]# docker run -d --name grafana --net monitor -p 3000:3000 grafana/grafana

  • docker run: Comando Docker, utilizado para ejecutar un contenedor.
  • -d: Indica ejecutar el contenedor en modo de fondo (modo independiente).
  • --name grafana: Especifique el nombre "grafana" para el contenedor.
  • --net monitor: Conecte el contenedor a la red denominada "monitor".
  • -p 3000:3000: Asigne el puerto 3000 del host al puerto 3000 del contenedor, lo que permite que el host acceda al servicio Grafana en el contenedor a través del puerto 3000.
  • grafana/grafana: Crea un contenedor usando la imagen "grafana/grafana".

Ver los resultados de ejecución:

[root@localhost ~]# ventana acoplable ps -l

Accede a granfana a través del puerto http://192.168.200.111:3000 . La contraseña predeterminada de la cuenta es (admin/admin). Debes actualizar la contraseña al iniciar sesión por primera vez .

 

 

 

Desplácese hacia abajo

Cree un nuevo panel, como se muestra a continuación:

Supongo que te gusta

Origin blog.csdn.net/2302_77750172/article/details/132165187
Recomendado
Clasificación