cloudalchemy.alertmanager

OBSOLETO

Este rol ha sido obsoleto en favor de la colección prometheus-community/ansible.

Rol de Ansible: alertmanager

Estado de la construcción Licencia Rol de Ansible Etiqueta de GitHub

Descripción

Despliega y gestiona el servicio de Prometheus alertmanager usando ansible.

Requisitos

  • Ansible >= 2.7 (Puede funcionar en versiones anteriores, pero no podemos garantizarlo)

También sería bueno tener Prometheus instalado en algún lugar.

Variables del rol

Todas las variables que se pueden sobrescribir están almacenadas en el archivo defaults/main.yml así como en la tabla a continuación.

Nombre Valor por defecto Descripción
alertmanager_version 0.21.0 Versión del paquete de Alertmanager. También acepta latest como parámetro.
alertmanager_binary_local_dir "" Permite usar paquetes locales en lugar de los distribuidos en GitHub. Acepta como parámetro un directorio donde se almacenan los binarios alertmanager Y amtool en el host donde se ejecuta ansible. Esto sobrescribe el parámetro alertmanager_version.
alertmanager_web_listen_address 0.0.0.0:9093 Dirección en la que alertmanager estará escuchando
alertmanager_web_external_url http://localhost:9093/ Dirección externa donde está disponible alertmanager. Útil cuando está detrás de un proxy inverso. Ej. example.org/alertmanager
alertmanager_config_dir /etc/alertmanager Ruta al directorio con la configuración de alertmanager
alertmanager_db_dir /var/lib/alertmanager Ruta al directorio con la base de datos de alertmanager
alertmanager_config_file alertmanager.yml.j2 Variable usada para proporcionar un archivo de configuración personalizado de alertmanager en forma de plantilla de ansible
alertmanager_config_flags_extra {} Banderas de configuración adicionales pasadas al binario de prometheus al inicio
alertmanager_template_files ['alertmanager/templates/*.tmpl'] Lista de carpetas donde ansible buscará archivos de plantilla que se copiarán a {{ alertmanager_config_dir }}/templates/. Los archivos deben tener la extensión *.tmpl
alertmanager_resolve_timeout 3m Tiempo después del cual una alerta se declara resuelta
alertmanager_smtp {} Configuración SMTP (correo electrónico)
alertmanager_http_config {} Configuración Http para usar webhooks personalizados
alertmanager_slack_api_url "" URL del webhook de Slack
alertmanager_pagerduty_url "" URL del webhook de PagerDuty
alertmanager_opsgenie_api_key "" Clave del webhook de Opsgenie
alertmanager_opsgenie_api_url "" URL del webhook de Opsgenie
alertmanager_victorops_api_key "" Clave del webhook de VictorOps
alertmanager_victorops_api_url "" URL del webhook de VictorOps
alertmanager_hipchat_api_url "" URL del webhook de Hipchat
alertmanager_hipchat_auth_token "" Token de autenticación de Hipchat
alertmanager_wechat_url "" URL del webhook de Enterprise WeChat
alertmanager_wechat_secret "" Token secreto de Enterprise WeChat
alertmanager_wechat_corp_id "" ID de corporación de Enterprise WeChat
alertmanager_cluster {listen-address: ""} Configuración de red del clúster HA. Desactivado por defecto. Más información en alertmanager readme
alertmanager_receivers [] Una lista de receptores de notificaciones. Configuración igual que en documentos oficiales
alertmanager_inhibit_rules [] Lista de reglas de inhibición. Igual que en documentos oficiales
alertmanager_route {} Enrutamiento de alertas. Más en documentos oficiales
alertmanager_amtool_config_file amtool.yml.j2 Plantilla para la configuración de amtool
alertmanager_amtool_config_alertmanager_url alertmanager_web_external_url URL del alertmanager
alertmanager_amtool_config_output extended Salida extendida, usa "" para salida simple.

Ejemplo

Playbook

---
  hosts: all
  roles:
    - ansible-alertmanager
  vars:
    alertmanager_version: latest
    alertmanager_slack_api_url: "http://example.com"
    alertmanager_receivers:
      - name: slack
        slack_configs:
          - send_resolved: true
            channel: '#alerts'
    alertmanager_route:
      group_by: ['alertname', 'cluster', 'service']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 3h
      receiver: slack

Sitio de demostración

Proporcionamos un sitio de demostración para una solución completa de monitoreo basada en prometheus y grafana. El repositorio con el código y los enlaces a instancias en ejecución está disponible en GitHub y el sitio está alojado en DigitalOcean.

Pruebas locales

La forma preferida de probar localmente el rol es usar Docker y molecule (v3.x). Tendrás que instalar Docker en tu sistema. Consulta "Comenzar" para un paquete de Docker adecuado para tu sistema. Ejecutar tus pruebas es tan simple como ejecutar molecule test.

Integración continua

Combinar molecule y circle CI nos permite probar cómo se comportarán nuevas PRs cuando se usen con múltiples versiones de ansible y múltiples sistemas operativos. Esto también nos permite crear escenarios de prueba para diferentes configuraciones del rol. Como resultado, tenemos una matriz de pruebas bastante grande, lo que puede llevar más tiempo que las pruebas locales, así que ten paciencia.

Contribuciones

Consulta la guía para contribuyentes.

Resolución de problemas

Consulta solución de problemas.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta LICENSE para más detalles.

Acerca del proyecto

Prometheus Alertmanager service

Instalar
ansible-galaxy install cloudalchemy.alertmanager
Licencia
mit
Descargas
1.7M
Propietario
Setup your monitoring stack with ansible