atosatto.alertmanager
Rol de Ansible: Alertmanager
Instala y configura Prometheus Alertmanager.
Requisitos
Una instalación de Ansible 2.2 o superior.
Este rol utiliza el json_filter
de Ansible, que requiere que jmespath
esté instalado en la máquina de Ansible.
Consulta el archivo requirements.txt
para más detalles sobre la versión específica de jmespath
que requiere el rol.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml):
alertmanager_release_tag: "latest"
La versión de Alertmanager que se instalará. Por defecto, es la última versión publicada en https://github.com/prometheus/alertmanager/releases.
alertmanager_release_url: ""
Si se establece, el rol descargará Alertmanager desde la URL proporcionada en lugar de usar la URL de descarga indicada en los metadatos de la versión de Alertmanager en Github.
alertmanager_user: "alertmanager"
alertmanager_group: "alertmanager"
Usuario y grupo del sistema para Alertmanager.
alertmanager_install_path: "/opt"
Directorio que contiene los artefactos de la versión de Alertmanager descargada.
alertmanager_bin_path: "/usr/local/bin"
Directorio al que se vincularán simbólicamente los binarios de Alertmanager.
alertmanager_config_path: "/etc/alertmanager"
alertmanager_config_file: "alertmanager.yml"
Archivo y directorio de configuración de Alertmanager.
alertmanager_config: {}
Diccionario YAML que contiene la configuración de Alertmanager.
La referencia completa de configuración de Alertmanager se puede encontrar en
https://prometheus.io/docs/alerting/configuration/.
NOTA: La configuración de Alertmanager proporcionada se combinará con la predeterminada definida en vars/main.yml
.
alertmanager_templates_path: "{{ alertmanager_config_path }}/templates"
alertmanager_templates: {}
Directorio y definiciones de las plantillas de Alertmanager.
alertmanager_config:
templates:
- "{{ alertmanager_templates_path }}/*.tmpl"
alertmanager_templates:
"example": "{{ define "slack.myorg.text" }}https://internal.myorg.net/wiki/alerts/{{ .GroupLabels.app }}/{{ .GroupLabels.alertname }}{{ end}}"
El ejemplo anterior muestra cómo crear example.tmpl
en el directorio alertmanager_templates_path
y cómo configurar Alertmanager para cargarlo.
alertmanager_listen_address: "127.0.0.1:9093"
La dirección IP y puerto donde el servidor web de Alertmanager escuchará.
NOTA: Las métricas de Alertmanager estarán disponibles en {{ alertmanager_listen_address }}/metrics
.
alertmanager_storage_path: "/var/lib/alertmanager"
alertmanager_storage_retention: "120h"
Directorio utilizado para almacenar los estados de las notificaciones y silencios de Alertmanager. Por defecto, los datos antiguos se eliminarán después de 120 horas.
alertmanager_log_level: "info"
Nivel de verbosidad de los registros del daemon de Alertmanager.
alertmanager_additional_cli_args: ""
Argumentos adicionales de línea de comandos que se agregarán a la unidad del servicio de Alertmanager.
Para la referencia completa de los argumentos de CLI disponibles, consulta la salida del comando
alertmanager --help
.
Dependencias
Ninguna.
Ejemplo de Playbooks
$ cat playbook.yml
- name: "Instalar y configurar Prometheus Alertmanager"
hosts: all
roles:
- { role: atosatto.alertmanager }
Pruebas
Las pruebas están automatizadas con Molecule.
$ pip install tox
Para probar todos los escenarios, ejecuta
$ tox
Para ejecutar un comando personalizado de molecule
$ tox -e py27-ansible29 -- molecule test -s alertmanager-latest
Licencia
MIT
Información del Autor
Andrea Tosatto (@_hilbert_)
Install and Configure Prometheus Alertmanager
ansible-galaxy install atosatto.alertmanager