LinuxParty
Podría decirse que Docker es una de las herramientas de DevOps más apreciadas que agilizan el desarrollo, la implementación y el envío de aplicaciones dentro de contenedores.
El concepto de contenedorización implica aprovechar las imágenes de contenedores. Estos son paquetes ejecutables pequeños, livianos e independientes que incluyen todo lo que se necesita para ejecutar una aplicación, incluido el código fuente, las bibliotecas y las dependencias, y los archivos de configuración.
Al hacerlo, la aplicación puede ejecutarse en casi cualquier entorno informático; infraestructura de TI tradicional, nube y una gran variedad de versiones de Linux/UNIX.
El monitoreo de contenedores ayuda a los equipos de operaciones a identificar problemas subyacentes y resolverlos de manera oportuna. El monitoreo de contenedores abarca la captura de métricas básicas como el uso de la CPU , la utilización de la memoria , el tamaño del contenedor y la utilización del ancho de banda, por mencionar algunos. Además, puede recopilar registros en tiempo real que son útiles para depurar y alertar al equipo de TI sobre cuándo escalar.
Zabbix es una popular herramienta de monitoreo de infraestructura de TI que vigila casi todos los elementos de su entorno, incluidos los dispositivos físicos, como servidores y dispositivos de red, como enrutadores y conmutadores. También puede monitorear aplicaciones, servicios y bases de datos.
En esta guía, le mostraremos cómo puede monitorear contenedores Docker usando la herramienta de monitoreo Zabbix en Linux.
Requisitos
Esto es lo que necesita antes de comenzar:
Primero, asegúrese de tener dos nodos: el primer nodo es el servidor Zabbix. Este es el nodo desde el cual monitorearemos el servidor Docker remoto. Tenemos un artículo sobre:
Instalando y configurando Zabbix (Server y Agente) en Debian Etch
El segundo nodo es el servidor Docker en el que está instalado Docker . Este es el nodo desde donde ejecutaremos los contenedores Docker y monitorearemos la actividad de los contenedores.
A continuación, asegúrese de tener acceso SSH a su nodo de servidor Docker con un usuario sudo ya configurado.
Con su configuración en su lugar, ¡ahora puede arremangarse!
Paso 1: Instale Zabbix-Agent en Linux
Para monitorear los contenedores de Docker en el servidor remoto, debe instalar un agente Zabbix , que es un agente de monitoreo que se implementa en un nodo de destino para monitorear activamente las métricas del sistema y otras aplicaciones.
Primero, debe instalar el repositorio Zabbix en el nodo Docker .
----------- En Ubuntu 20.04 -----------$ sudo wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb $ sudo dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb $ sudo apt update $ sudo apt install zabbix-agent2----------- En distribución basada en RHEL -----------$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm $ sudo dnf update $ sudo dnf install zabbix-agent
----------- En Debian 11 -----------$ sudo wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1%2Bdebian11_all.deb $ sudo dpkg -i zabbix-release_5.4-1%2Bdebian11_all.deb $ sudo apt update $ sudo apt install zabbix-agent2
----------- En Debian 10 -----------$ sudo wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1%2Bdebian10_all.deb $ sudo dpkg -i zabbix-release_5.4-1%2Bdebian10_all.deb $ sudo apt update $ sudo apt install zabbix-agent2
Paso 2: configurar Zabbix-Agent en Linux
De forma predeterminada, el agente de Zabbix está configurado para enviar métricas al servidor de Zabbix en el mismo host en el que está instalado. Dado que nuestro objetivo es monitorear los contenedores docker en el servidor remoto, se requieren algunas configuraciones adicionales.
Por lo tanto, acceda al archivo de configuración del agente Zabbix .
$ sudo vim /etc/zabbix/zabbix_agent2.conf
El archivo de configuración contiene ajustes que especifican la dirección a la que se envían las métricas, el puerto utilizado para las conexiones y mucho más. En su mayor parte, la configuración predeterminada funcionará bien.
Para configurar el agente Zabbix para que envíe métricas al servidor Zabbix , localice la directiva que está configurada para enviar métricas a la dirección de loopback, o simplemente, el mismo sistema host.
Server=127.0.0.1
Configure la dirección para reflejar la dirección del servidor Zabbix
Server=zabbix-server-IP
Además, vaya a la sección " Comprobaciones activas " y cambie la directiva para que apunte a la dirección IP del servidor Zabbix.
ServerActive=zabbix-servidor-IP
Asegúrese también de ajustar el nombre de host del servidor Docker en consecuencia. El nombre de host de mi servidor Docker es Ubuntu20 .
Hostname=Ubuntu20
Luego guarde los cambios y salga del archivo de configuración de Zabbix.
Para que el agente de Zabbix vigile los contenedores de Docker, debe agregar el usuario de Zabbix, que está instalado de forma predeterminada, al grupo de Docker.
$ sudo usermod -aG docker zabbix
Para aplicar los cambios realizados en el archivo de configuración, reinicie el servicio Zabbix-agent y permita que se inicie al iniciar el sistema.
$ sudo systemctl restart zabbix-agent2 $ sudo systemctl enable zabbix-agent2
Confirme el estado de ejecución del agente Zabbix de la siguiente manera.
$ sudo systemctl status zabbix-agent2
Verifique el estado del agente de Zabbix
El agente de Zabbix escucha en el puerto 10050 . Si tiene un firewall UFW o firewalld en ejecución, considere abrir el puerto de la siguiente manera.
----------- En el cortafuegos UFW -----------$ sudo ufw allow 10050/tcp $ sudo ufw reload----------- En cortafuegos -----------$ sudo firewall-cmd --add-port=10050/tcp --permanent $ sudo firewall-cmd --reload
¡Estupendo! Ahora estamos en la mitad del camino. El agente de Zabbix ahora puede enviar las métricas del contenedor de Docker al servidor de Zabbix.
En el siguiente paso, agregaremos el servidor Docker a la interfaz web de Zabbix y monitorearemos los contenedores Docker.
Paso 3: agregue Docker al servidor Zabbix para monitoreo
Para monitorear un host remoto, debe agregarlo al tablero del servidor Zabbix a través de un navegador. Zabbix proporciona innumerables plantillas para varios servicios y aplicaciones. Vincularemos la plantilla apropiada al host de Docker para monitorear específicamente los contenedores. Pero primero, acceda a la página de inicio de sesión del servidor Zabbix.
http://zabbix-ip-del-servidor/zabbix
Iniciar sesión
Una vez que haya iniciado sesión, vaya a la barra lateral derecha y haga clic en ' Configuración ' y luego en ' Hosts '.
Configuración del servidor Zabbix
En la esquina superior derecha, haga clic en ' Crear host '.
Zabbix Crear host
Complete los detalles del servidor Docker , como el nombre de host y el nombre visible . Para Grupos, escriba ' Docker Groups ' (cada host debe estar asociado con un grupo).
Debajo de la etiqueta ' Interfaces ' haga clic en ' Agregar ' y en el menú que aparece seleccione ' Agente '.
Agregar host a la supervisión de Zabbix
A continuación, complete la dirección IP privada del servidor Docker y asegúrese de que el puerto esté configurado en 10050 .
Agregue el servidor Docker a Zabbix
A continuación, haga clic en la pestaña Plantillas , y en la sección ' Vincular nuevas plantillas ', especifique ' Docker by Zabbix agent 2 '. Luego haga clic en el botón ' Agregar '.
Vincular la plantilla de Zabbix a Docker
Al hacer clic en el botón Agregar, el host Docker remoto se agregará automáticamente como se indica.
Supervisión de Zabbix Docker
En este punto, el servidor Zabbix ahora está monitoreando su servidor Docker. En el próximo paso, implementaremos un contenedor y verificaremos qué métricas se pueden monitorear.
Paso 4: Supervisar las métricas de Docker en Zabbix Monitoring
Para comenzar a monitorear las métricas de Docker , vamos a lanzar un contenedor de prueba. Entonces, regrese a su servidor Docker e inicie un contenedor.
En este ejemplo, extraeremos una imagen de contenedor de Ubuntu y crearemos un contenedor llamado docker_test_container . Luego obtendremos acceso al shell usando la -it
opción. El comando completo para las operaciones es el siguiente.
$ sudo docker run --name docker_test_container -it ubuntu bash
Crear una imagen de contenedor de Ubuntu en Docker
Puede intentar algo ambicioso, como instalar paquetes de software como Apache o MariaDB para generar algunas métricas, como la utilización de la CPU y el tráfico de red.
Ahora regresa al tablero del servidor Zabbix . Haga clic en ' Supervisión ' y luego en ' Hosts '. Pulsa sobre el nombre de tu servidor Docker y en la opción de menú que aparece, selecciona ' Últimos datos '.
Servidores de monitoreo Zabbix
Después de unos minutos de implementar el contenedor, el servidor Zabbix lo detectará y comenzará a completar algunas estadísticas.
Host acoplable de monitoreo de Zabbix
También puede ver los gráficos de las diversas métricas del contenedor haciendo clic en las opciones de ' gráficos ' del servidor Docker en la página ' Hosts '. A continuación puede ver las métricas de uso de CPU y memoria.
Supervisión del rendimiento de Docker de Zabbix
Para simular el bloqueo del contenedor, saldremos inesperadamente del contenedor ejecutando el siguiente comando en el shell del contenedor.
# salida 2
Esto implica que hemos terminado el contenedor con un código de error de 2. Esto se registra dentro de los metadatos del contenedor. Para ver la alerta, vaya a la barra lateral izquierda y haga clic en ' Supervisión ' y luego en ' Panel '.
La alerta se muestra a continuación.
Advertencias de Zabbix Docker
Para corregir el error, simplemente vuelva a iniciar el contenedor.
$ sudo docker start docker_test_container
Y esto nos lleva al final de esta guía. Lo hemos guiado a través de un procedimiento paso a paso sobre cómo puede monitorear los contenedores Docker utilizando la herramienta de monitoreo Zabbix .
-
Docker
- 11 herramientas Docker imprescindibles para simplificar tu flujo de trabajo
- DistroBox: ejecute cualquier distribución de Linux dentro de la terminal de Linux
- Instalar Docker y aprender a manipular contenedores básicos en CentOS y RHEL
- Cómo administrar contenedores usando Podman y Skopeo en RHEL 8
- Docker: la plataforma para la virtualización de nueva generación
- Cómo monitorear contenedores Docker con la herramienta de monitoreo Zabbix
- Instalar Docker en Windows 10 y 11
- Linux y Kubernetes: Al servicio de los objetivos comunes de las empresas
- Mirantis adquiere Docker Enterprise
- Configurar Jenkins en Docker
- Cómo configurar un servidor web Apache simple en un contenedor Docker
- Chuleta de Docker para Administradores de Sistemas
- Cómo conectar los contenedores Docker y mostrarlos en la red
- Cómo gestionar contenedores Docker
- Cómo buscar imágenes docker y lanzar un contenedor