cloudalchemy.alertmanager
OBSOLETO
Este rol ha sido obsoleto en favor de la colección prometheus-community/ansible.
Rol de Ansible: alertmanager
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.
ansible-galaxy install cloudalchemy.alertmanager