Búsqueda de sitios web

Cómo instalar y configurar Prometheus Alert Manager en Ubuntu 20.04 LTS


Prometheus Alert Manager se usa para enviar alertas por correo electrónico y otros servicios web (es decir, PagerDuty, Slack, GitLab, WeChat) según los eventos de alerta generados en Prometheus.

Prometheus puede generar alertas cuando un objetivo no está disponible y enviarlas al Administrador de alertas, enviándole una notificación por correo electrónico para informarle que un objetivo no está disponible. Este es solo un ejemplo. Prometheus puede enviar alertas a Alert Manager en función de las métricas de Prometheus. Por lo tanto, las posibilidades son ilimitadas.

En este artículo, le mostraré cómo instalar Prometheus Alert Manager en Ubuntu 20.04 LTS. También le mostraré cómo configurar Prometheus y Alert Manager para enviarle notificaciones por correo electrónico a través de Gmail cuando un objetivo de Prometheus no esté disponible (no disponible). Entonces empecemos.

Tabla de contenido:

  1. requisitos previos

  2. Instalación del Administrador de alertas

  3. Creación de un directorio de datos

  4. Inicio de Alert Manager en el arranque

  5. Configuración de Prometeo

  6. Creación de una regla de alerta de Prometheus

  7. Configuración de Gmail Receiver en Alert Manager

  8. Solución de problemas de entrega de correo electrónico de Alert Manager

  9. Conclusión

  10. Referencias

requisitos previos:

Para seguir este artículo, debes:

  • Cree un usuario del sistema prometheus.

  • Tenga Prometheus instalado en su computadora.

Este artículo es una continuación del artículo Cómo instalar Prometheus en Ubuntu 20.04 LTS. Si necesita ayuda para instalar Prometheus en Ubuntu 20.04 LTS y crear un usuario del sistema Prometheus, asegúrese de consultarlo.

Instalación del Administrador de alertas:

Puede descargar la última versión de Alert Manager desde el sitio web oficial de Prometheus e instalarlo en Ubuntu 20.04 LTS muy fácilmente.

Primero, navegue hasta el directorio ~/Downloads (o cualquier otro directorio temporal de su elección) de la siguiente manera:

$ cd ~/Downloads

Descargue la última versión de Alert Manager (v0.22.2 en el momento de escribir este artículo) con el siguiente comando:

$ wget https://github.com/prometheus/alertmanager/releases/download/v0.22.2/alertmanager-0.22.2.linux-amd64.tar.gz

Se está descargando Alert Manager. Puede tardar un poco en completarse.

En este punto, se debe descargar Alert Manager.

Una vez que se descarga Alert Manager, debe encontrar un nuevo archivo de almacenamiento alertmanager-0.22.2.linux-amd64.tar.gz en su directorio de trabajo actual, como se indica en la siguiente captura de pantalla.

$ ls -lh

Extraiga el archivo alertmanager-0.22.2.linux-amd64.tar.gz con el siguiente comando:

$ tar xzf alertmanager-0.22.2.linux-amd64.tar.gz

Debería encontrar un nuevo directorio alertmanager-0.22.2.linux-amd64/ como se indica en la siguiente captura de pantalla.

$ ls -lh

Ahora, mueva el directorio alertmanager-0.22.2.linux-amd64 al directorio /opt/ y cámbiele el nombre a alertmanager de la siguiente manera:

$ sudo mv -v alertmanager-0.22.2.linux-amd64 /opt/alertmanager

Cambie el usuario y el grupo de todos los archivos y directorios del directorio /opt/alertmanager/ a raíz de la siguiente manera:

$ sudo chown -Rfv root:root /opt/alertmanager

En el directorio /opt/alertmanager, debe encontrar el binario alertmanager y el archivo de configuración de Alert Manager alertmanager.yml, como se indica en la captura de pantalla. abajo. Los usarás más tarde. Entonces, solo ten eso en mente.

Creación de un directorio de datos:

Alert Manager necesita un directorio donde pueda almacenar sus datos. Dado que ejecutará Alert Manager como usuario del sistema prometheus , el usuario del sistema prometheus debe tener acceso (permisos de lectura, escritura y ejecución) a ese directorio de datos.

Puede crear el directorio data/ en el directorio /opt/alertmanager/ de la siguiente manera:

$ sudo mkdir -v /opt/alertmanager/data

Cambie el propietario y el grupo del directorio /opt/alertmanager/data/ a prometheus con el siguiente comando:

$ sudo chown -Rfv prometheus:prometheus /opt/alertmanager/data

El propietario y el grupo del directorio /opt/alertmanager/data/ deben cambiarse a prometheus, como se muestra en la siguiente captura de pantalla.

$ ls -lh

Inicio de Alert Manager en el arranque:

Ahora, debe crear un archivo de servicio systemd para Alert Manager para que pueda administrar fácilmente (iniciar, detener, reiniciar y agregar al inicio) el servicio alertmanager con systemd.

Para crear un archivo de servicio systemd alertmanager.service, ejecute el siguiente comando:

$ sudo nano /etc/systemd/system/alertmanager.service

Escriba las siguientes líneas en el archivo alertmanager.service.

[Unit]
Description=Alertmanager for prometheus

[Service]
Restart=always
User=prometheus
ExecStart=/opt/alertmanager/alertmanager --config.file=/opt/alertmanager/alertmanager.yml --storage.path=/opt/alertmanager/data            
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

Una vez que haya terminado, presione + X seguido de Y y para guardar el alertmanager.service archivo.

Para que los cambios de systemd surtan efecto, ejecute el siguiente comando:

$ sudo systemctl daemon-reload

Ahora, inicie el servicio alertmanager con el siguiente comando:

$ sudo systemctl start alertmanager.service

Agregue el servicio alertmanager al inicio del sistema para que se inicie automáticamente al arrancar con el siguiente comando:

$ sudo systemctl enable alertmanager.service

Como puede ver, el servicio alertmanager está activo/en ejecución. También está habilitado (se iniciará automáticamente al arrancar).

$ sudo systemctl status alertmanager.service

Configurando Prometeo:

Ahora, debe configurar Prometheus para usar Alert Manager. También puede monitorear Alert Manager con Prometheus. Le mostraré cómo hacer ambas cosas en esta sección.

Primero, encuentre la dirección IP de la computadora donde instaló Alert Manager con el siguiente comando:

$ hostname -I

En mi caso, la dirección IP es 192.168.20.161. Será diferente para ti. Por lo tanto, asegúrese de reemplazarlo con el suyo a partir de ahora.

Ahora, abra el archivo de configuración de Prometheus /opt/prometheus/prometheus.yml con el editor de texto nano de la siguiente manera:

$ sudo nano /opt/prometheus/prometheus.yml

Escriba las siguientes líneas en la sección scrape_configs para agregar Alert Manager para monitorear con Prometheus.

- job_name: 'alertmanager'
  static_configs:
  - targets: ['192.168.20.161:9093']

Además, escriba la dirección IP y el número de puerto de Alert Manager en la sección alerting> alertmanagers como se indica en la captura de pantalla a continuación.

Una vez que haya terminado, presione + X seguido de Y y para guardar el prometheus.yml archivo de configuración.

Para que los cambios surtan efecto, reinicia el servicio prometheus de la siguiente manera:

$ sudo systemctl restart prometheus.service

Visite la URL http://192.168.20.161:9090/targets desde su navegador web favorito y debería ver que alertmanager está en el estado ARRIBA. Por lo tanto, Prometheus puede acceder a Alert Manager sin problemas.

NOTA: He instalado Prometheus y Alert Manager en la misma computadora. Entonces, la dirección IP de mi instancia de Prometheus es la misma que la de Alert Managers. Si ha instalado Prometheus en una computadora diferente, haga los ajustes necesarios a partir de ahora.

Creación de una regla de alerta de Prometheus:

En Prometheus, puede usar la expresión up para encontrar el estado de los objetivos agregados a Prometheus, como se muestra en la siguiente captura de pantalla.

Los objetivos que estén en estado ARRIBA (en ejecución y accesibles para Prometheus) tendrán el valor 1, y los objetivos que no estén en estado ARRIBA (o ABAJO) (no en ejecución o inaccesible para Prometheus) tendrá el valor 0.

Si detiene uno de los objetivos: node_exporter (digamos).

$ sudo systemctl stop node-exporter.service

El valor hacia arriba de ese objetivo debe ser 0, como puede ver en la siguiente captura de pantalla. Entiendes la idea.

Por lo tanto, puede usar las expresiones up == 0 para enumerar solo los objetivos que no se están ejecutando o que son inaccesibles para Prometheus, como puede ver en la siguiente captura de pantalla.

Esta expresión se puede usar para crear una alerta de Prometheus y enviar alertas a Alert Manager cuando uno o más objetivos no se están ejecutando o no son accesibles para Prometheus.

Para crear una alerta de Prometheus, cree un nuevo archivo rules.yml en el directorio /opt/prometheus/ de la siguiente manera:

$ sudo nano /opt/prometheus/rules.yml

Ahora, escribe las siguientes líneas en el archivo rules.yml.

groups:
 - name: test
   rules:
   - alert: InstanceDown
     expr: up == 0
     for: 1m

Una vez que haya terminado, presione + X seguido de Y y para guardar el rules.yml archivo.

Aquí, la alerta InstanceDown se activará cuando los objetivos no se estén ejecutando o sean inaccesibles para Prometheus (es decir, up == 0) durante un minuto (1m ).

Ahora, abra el archivo de configuración de Prometheus /opt/prometheus/prometheus.yml con el editor de texto nano de la siguiente manera:

$ sudo nano /opt/prometheus/prometheus.yml

Agregue el archivo rules.yml en la sección rule_files del archivo de configuración prometheus.yml como se indica en la siguiente captura de pantalla.

Otra opción importante del archivo prometheus.yml es e Evaluation_interval. Prometheus verificará si alguna regla coincidió cada evaluacion_interval tiempo. El valor predeterminado es 15 s (15 segundos). Por lo tanto, las reglas de Alerta en el archivo rules.yml se verificarán cada 15 segundos.

Una vez que haya terminado, presione + X seguido de Y y para guardar el prometheus.yml archivo.

Para que los cambios surtan efecto, reinicia el servicio prometheus de la siguiente manera:

$ sudo systemctl restart prometheus.service

Ahora, navegue a la URL http://192.168.20.161:9090/rules desde su navegador web favorito y debería ver la regla InstanceDown que acaba de agregar.

Navegue a la URL http://192.168.20.161:9090/alerts desde su navegador web favorito y debería ver el estado de la alerta InstanceDown, como puede ver en la siguiente captura de pantalla.

Como detuvo node_exporter anteriormente, la alerta está activa y está esperando a que se envíe al Administrador de alertas.

Después de que haya pasado un minuto, la alerta InstanceDown debería estar en el estado FIRING. Significa que la alerta se envía al Administrador de alertas.

Configuración de Gmail Receiver en Alert Manager:

En esta sección, le mostraré cómo configurar Gmail como receptor de Alert Manager para que pueda recibir correos electrónicos en su cuenta de Gmail desde Alert Manager si un objetivo de Prometheus está ABAJO.

Para configurar Gmail como receptor de Alert Manager, debe generar una contraseña de aplicación para Gmail desde la configuración de seguridad de su cuenta de Google.

Para hacerlo, navegue a la URL https://myaccount.google.com desde su navegador web favorito y haga clic en Seguridad > Contraseñas de aplicaciones como se indica en la siguiente captura de pantalla.

Deberías ver la siguiente página.

Seleccione Correo en el menú desplegable Seleccionar aplicación como se indica en la captura de pantalla a continuación.

Seleccione Otro (nombre personalizado) en el menú desplegable Seleccionar dispositivo como se indica en la siguiente captura de pantalla.

Escribe administrador de alertas (o lo que quieras) y haz clic en GENERAR como se indica en la siguiente captura de pantalla.

Se debe generar una contraseña de aplicación. Cópielo y guárdelo en un lugar seguro. Lo necesitarás más tarde.

Ahora, abra el archivo de configuración de Alert Manager /opt/alertmanager/alertmanager.yml con el editor de texto nano de la siguiente manera:

$ sudo nano /opt/alertmanager/alertmanager.yml

Para agregar un nuevo receptor de Gmail, escriba las siguientes líneas en la sección receivers del archivo alertmanager.yml como se indica en la siguiente captura de pantalla.

- name: 'gmail'
  email_configs:
  - to: '<google-username>@gmail.com'
    from: '<google-username>@gmail.com'
    smarthost: smtp.gmail.com:587
    auth_username: '<google-username>@gmail.com'
    auth_identity: '<google-username>@gmail.com'
    auth_password: '<google-app-password>'

NOTA: asegúrese de reemplazar con el nombre de usuario (la parte antes de la sección @ de su correo electrónico) de su cuenta de Google y con la contraseña de la aplicación que generó anteriormente.

Luego, configure el receptor de Alert Manager en gmail (el receptor que acaba de crear) como se indica en la siguiente captura de pantalla.

Una vez que haya terminado, presione + X seguido de Y y para guardar el alertmanager.yml archivo de configuración.

Alert Manager utilizará el receptor de gmail a partir de ahora.

repeat_interval también es una opción importante del Administrador de alertas. De forma predeterminada, repeat_interval se establece en 1h (1 hora). Si Alert Manager le ha enviado correctamente un correo electrónico a su cuenta de Gmail, esperará una hora antes de enviarle otro. Si no desea recibir correos electrónicos con mucha frecuencia, puede aumentarlo.

Ahora, reinicie el servicio alertmanagersystemd para que los cambios surtan efecto de la siguiente manera:

$ sudo systemctl restart alertmanager.service

Debería recibir un correo electrónico en breve en su cuenta de Gmail, como puede ver en la captura de pantalla a continuación.

Detuviste node_exporter antes, ¿recuerdas?

Solución de problemas de entrega de correo electrónico de Alert Manager:

Puede monitorear los problemas de entrega de correo electrónico de Alert Manager con el siguiente comando:

$ sudo journalctl --follow --no-pager --boot --unit alertmanager.service

Deberían mostrarse los registros del servicio systemd de alertmanager, como puede ver en la siguiente captura de pantalla.

Si Alert Manager no puede enviar correos electrónicos a su dirección de correo electrónico, debería poder encontrar por qué falló aquí.

En la siguiente captura de pantalla se muestra un ejemplo de entrega de correo electrónico fallida. Si lee el mensaje de registro, debería poder decir que la entrega falló porque la contraseña era incorrecta.

Conclusión:

En este artículo, le mostré cómo instalar Alert Manager en Ubuntu 20.04 LTS. También le mostré cómo configurar Alert Manager y Prometheus para enviar notificaciones por correo electrónico a su cuenta de Gmail cuando un objetivo de Prometheus está ABAJO.

Referencias:

  1. GitHub – prometeo/alertmanager: Prometheus Alertmanager

  2. Integraciones | Prometeo

Artículos relacionados: