Ejecutar y configurar Docker Grafana Image – 2xsoftware

Grafana es una conocida herramienta de visualización de código abierto que permite a los administradores crear y ver paneles interactivos para monitorear entornos. Docker es una herramienta que simplifica el despliegue de aplicaciones, incluida Grafana, y permite gestionarlas mucho más fácilmente. Consideremos cómo ejecutar y configurar las implementaciones de imágenes de Docker Grafana y los pasos necesarios.

¿Qué es Docker?

Docker es el estándar de facto para ejecutar contenedores en la empresa. Hace que la implementación de aplicaciones sea mucho más fácil, incluida la aplicación:

  • Edificio
  • embalaje
  • Despliegue

Un contenedor es un paquete ejecutable independiente que contiene todo lo necesario para ejecutar una aplicación, incluido el código, los requisitos de tiempo de ejecución, las herramientas, las bibliotecas y los ajustes de configuración.

Los contenedores permiten a los desarrolladores tener un entorno de aplicación coherente, independientemente del host del contenedor en el que se ejecute la imagen de la aplicación. Facilita el desarrollo, la prueba y la implementación de aplicaciones en diferentes plataformas y entornos.

Muchas imágenes de Docker están disponibles para aplicaciones estándar, lo que hace que sea extremadamente fácil poner en marcha nuevas aplicaciones en la empresa. La mayoría de las imágenes están disponibles en Docker Hub para su descarga.

¿Qué es Grafana?

Grafana es una herramienta de supervisión y visualización de datos de código abierto y rica en funciones que le permite crear, explorar y compartir paneles. Grafana admite fuentes de datos como Prometheus, InfluxDB, Elasticsearch y más. Proporciona varias opciones de visualización, incluidos gráficos, tablas, mapas de calor y medidores, para ayudarlo a analizar y comprender sus datos.

imagen docker de grafana

¿Qué es Telegraf?

Telegraf es un agente de servidor de código abierto basado en complementos para recopilar e informar métricas. Es parte de la pila TICK de InfluxData, que comprende Telegraf, InfluxDB, Chronograf y Kapacitor. Telegraf puede recopilar métricas de varias fuentes, como métricas del sistema y API de terceros, o incluso escuchar las métricas enviadas por otras aplicaciones y luego enviar los datos recopilados a una amplia gama de almacenes de datos, como InfluxDB, Prometheus o los datos nativos de Grafana. almacenamiento.

Puede obtener más información sobre Telegraf y descargarlo aquí: Telégrafo | Influjo de datos

imagen docker grafana

Junto con Grafana, Telegraf desempeña un papel crucial en la recopilación y el envío de datos de métricas para visualizarlos y analizarlos en los paneles de Grafana. Usando Telegraf como un recopilador de métricas, puede usar su extensa biblioteca de complementos de entrada, salida y procesador para recopilar datos de varias fuentes y enviarlos a Grafana u otros almacenes de datos compatibles.

Preparar Telegraf para InfluxDB y Docker

Para configurar Telegraf para InfluxDB y Docker:

  1. Instale Telegraf en su sistema host o ejecútelo como un contenedor Docker.
  2. Cree un archivo de configuración de Telegraf con los complementos de entrada para recopilar métricas de Docker y los complementos de salida para enviar los datos a InfluxDB.
  3. Inicie el agente de Telegraf con el archivo de configuración.

Configuración de Prometheus para que se ejecute en Docker

Prometheus es un kit de herramientas de monitoreo y alerta de código abierto diseñado para brindar confiabilidad y escalabilidad. Para configurar Prometheus para que se ejecute en Docker:

  1. Cree un archivo de configuración de Prometheus especificando los objetivos y el intervalo de recuperación.
  2. Extraiga la imagen oficial de Prometheus Docker con el siguiente comando:
    docker pull prom/prometheus
  3. Ejecute un contenedor de Prometheus con el archivo de configuración usando el siguiente comando:
    docker run -d -p 9090:9090 --name=prometheus -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

    Este comando iniciará un nuevo contenedor de Prometheus, lo expondrá en el puerto 9090 y usará un montaje de volumen persistente para el archivo de configuración.

Creación de un archivo de configuración para Telegraf y Docker

Para crear un archivo de configuración para Telegraf y Docker, siga estos pasos:

  1. Crear un nuevo archivo llamado telegraf.conf.
  2. Configure los complementos de entrada para recopilar las métricas del contenedor de Docker agregando las siguientes líneas al archivo:
    [[inputs.docker]] endpoint = "unix:///var/run/docker.sock" gather_services = false
  3. Configure los complementos de salida para enviar los datos a InfluxDB agregando las siguientes líneas al archivo:
    [[outputs.influxdb]] urls = ["http://influxdb:8086"] database = "telegraf"
  4. Guarde el archivo e inicie el agente de Telegraf con el archivo de configuración usando el siguiente comando:
    telegraf --config telegraf.conf

Instalación de Grafana en Docker

Para instalar Grafana en Docker:

  1. Extraiga la imagen oficial de Grafana Docker con el siguiente comando:
    docker pull grafana/grafana
  2. Ejecute un contenedor de Grafana con el siguiente comando:
    docker run -d -p 3000:3000 --name=grafana grafana/grafana

    Este comando iniciará y expondrá un nuevo contenedor de Grafana en el puerto 3000.
    Puede usar parámetros adicionales para configurar el almacenamiento persistente.

  3. Configure el almacenamiento persistente para los datos de Grafana utilizando volúmenes de Docker o montajes de enlace. Por ejemplo:
    docker run -d -p 3000:3000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana

    Este comando crea un volumen con nombre llamado grafana-almacenamiento y lo monta en /var/lib/grafana dentro del contenedor.

  4. Configure variables de entorno para Grafana, como la contraseña de administrador, agregando el -mi bandera a la ejecución de la ventana acoplable dominio. Por ejemplo:
    docker run -d -p 3000:3000 --name=grafana -e "GF_SECURITY_ADMIN_PASSWORD=mysecret" grafana/grafana
  5. Habilite los complementos de Grafana agregando el GF_INSTALL_PLUGINS variable de entorno y especificando una lista separada por comas de nombres de complementos. Por ejemplo:
    docker run -d -p 3000:3000 --name=grafana -e "GF_INSTALL_PLUGINS=grafana-clock-panel

    Ejecutar y configurar el contenedor docker de Grafana monitorea y visualiza de manera eficiente las métricas de varias fuentes.

Acceso a las métricas de Docker

Para acceder a las métricas de Docker recopiladas por Telegraf y almacenadas en InfluxDB:

  1. Acceda a la interfaz de usuario de Grafana en http://localhost:3000.
  2. Inicie sesión con el usuario y la contraseña de administrador predeterminados (administración/administración).
  3. Cree una nueva fuente de datos para InfluxDB con la base de datos de Telegraf.
  4. Cree un nuevo tablero y agregue paneles para visualizar las métricas de Docker.

concentrador docker de grafana

Ejecutando Prometheus y Grafana usando Docker Compose

Para ejecutar Prometheus y Grafana en Docker simultáneamente, puede usar Docker Compose. Crear un docker-compose.yml archivo con el siguiente contenido:

version: "3"

services:

prometheus:

image: prom/prometheus

volumes:

- ./prometheus.yml:/etc/prometheus/prometheus.yml

ports:

- "9090:9090"

grafana:

image: grafana/grafana

volumes:

- grafana-storage:/var/lib/grafana

ports:

- "3000:3000"

volumes:

grafana-storage:

Entonces corre ventana acoplable-componer hasta -d para iniciar ambos servicios en modo daemon.

Creación de visualización en Grafana

Para crear visualizaciones en Grafana:

  1. Acceda a la interfaz de usuario de Grafana en http://localhost:3000.
  2. Inicie sesión con el usuario administrador y la contraseña.
  3. Cree un nuevo panel haciendo clic en el ícono «+» en la barra lateral izquierda y seleccionando «Panel».
  4. Agregue un nuevo panel al tablero haciendo clic en el botón «Agregar panel».
  5. Seleccione la fuente de datos (Prometheus o InfluxDB) y configure las opciones de consulta y visualización del panel.
  6. Guarde el tablero, compártalo con su equipo o insértelo en otras aplicaciones.

Imagen personalizada de Grafana Docker

A veces, es posible que desee crear una imagen Grafana Docker personalizada con complementos preinstalados, archivos de configuración personalizados u otras personalizaciones. Para ello, puede crear un Dockerfile y crea una nueva imagen basada en la imagen oficial de Grafana Docker.

  1. Crear un Dockerfile con el siguiente contenido:
    FROM grafana/grafana
    
    # Install plugins
    
    ENV GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
    
    # Copy custom configuration files
    
    COPY grafana.ini /etc/grafana/grafana.ini
    
    COPY custom.ini /etc/grafana/custom.ini
  2. Cree la imagen personalizada de Grafana Docker con el siguiente comando:
    docker build -t my-grafana
  3. Ejecute un contenedor basado en la imagen personalizada:
    docker run -d -p 3000:3000 --name=grafana my-grafana

Gestión de datos de Grafana

Grafana almacena sus datos en el /var/lib/grafana directorio dentro del contenedor. Puede usar volúmenes de Docker o montar montajes para conservar estos datos en los reinicios y actualizaciones de contenedores.

  1. Usando volúmenes de Docker:
    docker run -d -p 3000:3000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana

    Este comando crea un volumen con nombre llamado grafana-almacenamiento y lo monta en /var/lib/grafana dentro del contenedor.

  2. Usando montajes de enlace:
    docker run -d -p 3000:3000 --name=grafana -v /path/to/grafana/data:/var/lib/grafana grafana/grafana

    Este comando monta un directorio local (/ruta/a/grafana/datos) a /var/lib/grafana dentro del contenedor.
    Asegúrese de que el directorio local y su contenido tengan los permisos correctos para que el usuario de Grafana (UID 472) lea y escriba datos.

Complementos CLI de Grafana

Grafana CLI es una herramienta de línea de comandos para administrar las instalaciones de Grafana. Se puede usar para instalar y actualizar complementos, restablecer la contraseña de administrador y realizar otras tareas.

Para ejecutar los comandos de la CLI de Grafana dentro de un contenedor de Grafana en ejecución, use el ejecutivo acoplable dominio. Por ejemplo, para enumerar los complementos instalados:

docker exec -it grafana grafana-cli plugins ls

Configuración de la base de datos InfluxDB

InfluxDB es una base de datos de series temporales popular que se puede utilizar como fuente de datos para Grafana. Para almacenar métricas de Docker en InfluxDB, debe configurar Telegraf para recopilarlas y escribirlas en una base de datos de InfluxDB.

  1. Instale InfluxDB en su host o ejecútelo como un contenedor Docker:
    docker run -d -p 8086:8086 --name=influxdb influxdb
  2. Cree una nueva base de datos InfluxDB para las métricas de Docker:
    curl -X POST 'http://localhost:8086/query' --data-urlencode 'q=CREATE DATABASE telegraf'
  3. Actualice el archivo de configuración de Telegraf (telegraf.conf) para habilitar el complemento de salida InfluxDB y configurarlo para usar la nueva base de datos:
    [[outputs.influxdb]] urls = ["http://localhost:8086"] database = "telegraf"
  4. Reinicie el contenedor de Telegraf para aplicar la nueva configuración:
    docker restart telegraf

Adición de la fuente de datos de Redis para el complemento de Grafana

Si desea monitorear una instancia de Redis usando Grafana, puede instalar un complemento de Grafana para Redis y configurarlo como una fuente de datos. Los siguientes pasos demuestran cómo agregar una fuente de datos de Redis a Grafana:

  1. Instale el complemento de Redis usando la CLI de Grafana dentro del contenedor de Grafana:
    docker exec -it grafana grafana-cli plugins install redis-datasource
  2. Reinicie el contenedor de Grafana para cargar el nuevo complemento:
    docker restart grafana
  3. Inicie sesión en la interfaz de usuario de Grafana y vaya a «Configuración» > «Fuentes de datos».
  4. Haga clic en «Agregar fuente de datos» y seleccione «Redis» de la lista de fuentes de datos disponibles.
  5. Proporcione la información necesaria para conectarse a su instancia de Redis, como la URL, el puerto y la contraseña (si es necesario). Guarde la configuración.

Ahora puede usar la fuente de datos de Redis para crear paneles y tableros en Grafana que muestren las métricas de Redis.

Supervisión de contenedores Docker con un panel de Grafana

Una vez que se configura Grafana y se agregan las fuentes de datos necesarias, puede crear paneles personalizados para monitorear sus contenedores Docker. La combinación de datos de InfluxDB, Prometheus y Redis puede crear una vista completa del rendimiento, el uso de recursos y el estado general de sus contenedores.

Creación de un panel de control de contenedores de Docker

  1. Inicie sesión en la interfaz de usuario de Grafana y haga clic en el ícono «+» en la barra lateral izquierda, luego seleccione «Panel».
  2. Haga clic en «Agregar nuevo panel» para comenzar a crear una nueva visualización.
  3. Elija la fuente de datos para su panel, como InfluxDB para las métricas de contenedores de Docker o Prometheus para las métricas específicas de la aplicación.
  4. Escriba una consulta para obtener los datos que desea visualizar. Por ejemplo, para mostrar el uso de CPU de un contenedor Docker específico, puede usar una consulta como:
    SELECT mean("usage_percent") FROM "docker_container_cpu" WHERE "container_name" = 'your-container-name' AND $timeFilter GROUP BY time($__interval) fill(null)
  5. Elija el tipo de visualización adecuado, como un gráfico o un indicador, y personalice la configuración del panel según sea necesario.
  6. Guarde el panel y el tablero.

A continuación se muestra cómo puede usar las métricas extraídas de las fuentes de datos para crear consultas personalizadas.

docker hub grafana

Ampliar las métricas de las fuentes de datos.

Grafana

Importación de paneles de Grafana prediseñados

Grafana ofrece una variedad de paneles preconstruidos creados por la comunidad que pueden ayudarlo a monitorear sus contenedores Docker rápidamente. Para importar un tablero preconstruido:

  1. Visita el Tableros de Grafana y busque un tablero relacionado con Docker o su fuente de datos específica.
  2. Haga clic en el tablero deseado y anote el ID del tablero.
  3. Inicie sesión en la interfaz de usuario de Grafana, haga clic en el ícono «+» en la barra lateral izquierda y seleccione «Importar».
  4. Ingrese la ID del tablero y haga clic en «Cargar».
  5. Seleccione las fuentes de datos que desea usar con el tablero y haga clic en «Importar».

Grafana prefabricado

Ahora puede usar el tablero importado para monitorear sus contenedores Docker y personalizarlo según sea necesario.

Configuración de alertas en Grafana

Grafana le permite configurar alertas basadas en condiciones específicas en sus datos, como un alto uso de CPU o poca memoria disponible. Para configurar una alerta:

  1. Abra un panel con un panel para el que desee crear una alerta.
  2. Haga clic en el título del panel y seleccione «Editar».
  3. Haga clic en la pestaña «Alerta» y haga clic en «Crear alerta».
  4. Configure las condiciones de alerta, el intervalo de evaluación y los ajustes de notificación.
  5. Guarde el panel y el tablero.

Alertas en Grafana

Grafana ahora monitoreará sus datos y activará la acción de alerta especificada, como enviar un correo electrónico o un webhook, cuando se cumplan las condiciones de alerta.

Terminando

Al combinar Docker, InfluxDB, Telegraf y Grafana, entre otros, puede tener una solución de monitoreo sólida que se ejecuta en tecnologías nativas de la nube. Los contenedores Docker facilitan enormemente el aprovisionamiento de estas soluciones, ya que la imagen de la aplicación contiene todo lo necesario para que la aplicación se ejecute como se espera, incluidos los requisitos previos. Grafana contiene muchos paneles de código abierto fácilmente disponibles que puede descargar e importar fácilmente en el entorno, por lo que no tiene que crear paneles para monitorear manualmente.

Valora este artculo post

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *