kibatic.prometheus
kibatic.prometheus para Ansible Galaxy
Resumen
Nombre del rol en Ansible Galaxy: kibatic.prometheus
Este rol de Ansible tiene las siguientes características para Prometheus:
- Instalar versiones específicas de Prometheus server, Node exporter, Alertmanager.
- Manejadores para eventos de reinicio, recarga y detención.
- Configuración básica (la configuración real debe ser proporcionada por los archivos de plantilla del usuario; ver la sección Uso a continuación).
Para mantener este rol simple, solo instala 3 componentes: servidor de Prometheus, Node exporter y Alertmanager. Usa los siguientes roles si deseas instalar otros exporters de Prometheus:
- Consul: William-Yeh.consul_exporter
- Elasticsearch: William-Yeh.es_cluster_exporter
- MongoDB: williamyeh.mongodb_exporter
Variables del Rol
Variables obligatorias
Los componentes a instalar:
# Componentes soportados:
#
# [Componentes del servidor]
# - "prometheus"
# - "alertmanager"
#
# [Componentes del exporter]
# - "node_exporter"
#
prometheus_components
Variables opcionales: configuraciones generales
Defaults configurables por el usuario:
# usuario y grupo
prometheus_user: prometheus
prometheus_group: prometheus
# directorio para archivos ejecutables
prometheus_install_path: /opt/prometheus
# directorio para archivos de configuración
prometheus_config_path: /etc/prometheus
# directorio para logs
prometheus_log_path: /var/log/prometheus
# directorio para archivos PID
prometheus_pid_path: /var/run/prometheus
# directorio para archivos temporales
prometheus_download_path: /tmp
# versión de la utilidad auxiliar "gosu"
gosu_version: "1.10"
Variables opcionales: sistema systemd o no
Si las distribuciones de Linux están equipadas con systemd, este rol utilizará este mecanismo en consecuencia. Puedes deshabilitar esto (es decir, usar el script de inicio estilo SysV tradicional) definiendo la(s) siguiente(s) variable(s) como false
:
# actualmente, solo se soporta node_exporter.
prometheus_node_exporter_use_systemd
Variables opcionales: servidor Prometheus
Defaults configurables por el usuario:
# ¿qué versión?
prometheus_version: 1.5.0
# directorio para archivos de reglas
prometheus_rule_path: {{ prometheus_config_path }}/rules
# directorio para archivos de configuración file_sd
prometheus_file_sd_config_path: {{ prometheus_config_path }}/tgroups
# directorio para base de datos en tiempo de ejecución
prometheus_db_path: /var/lib/prometheus
Archivo de configuración instalable por el usuario (ver doc para más detalles):
# plantilla principal de configuración relativa a `playbook_dir`;
# será instalada en "{{ prometheus_config_path }}/prometheus.yml"
prometheus_conf_main
Archivos de reglas instalables por el usuario (ver doc para más detalles):
# archivos de reglas que serán instalados en el directorio "{{ prometheus_rule_path }}";
# campos del diccionario:
# - clave: nota para esta regla
# - valor:
# - src: archivo relativo a `playbook_dir`
# - dest: archivo objetivo relativo a `{{ prometheus_rule_path }}`
prometheus_rule_files
Alertmanager que será activado:
prometheus_alertmanager_url
Argumentos adicionales de línea de comandos, si hay (usa prometheus --help
para ver la lista completa de argumentos):
prometheus_opts
Variables opcionales: Node exporter
Defaults configurables por el usuario:
# ¿qué versión?
prometheus_node_exporter_version: 0.13.0
Argumentos adicionales de línea de comandos, si hay (usa node_exporter --help
para ver la lista completa de argumentos):
prometheus_node_exporter_opts
Variables opcionales: Alertmanager
Defaults configurables por el usuario:
# ¿qué versión?
prometheus_alertmanager_version: 0.5.1
# directorio para base de datos en tiempo de ejecución (actualmente para `silences.json`)
prometheus_alertmanager_db_path: /var/lib/alertmanager
Archivo de configuración instalable por el usuario (ver doc para más detalles):
# plantilla principal de configuración relativa a `playbook_dir`;
# será instalada en "{{ prometheus_config_path }}/alertmanager.yml"
prometheus_alertmanager_conf
Argumentos adicionales de línea de comandos, si hay (usa alertmanager --help
para ver la lista completa de argumentos):
prometheus_alertmanager_opts
Opcional: construir desde el árbol fuente
(Crédito: Robbie Trencheny)
Para los mencionados prometheus_components
, puedes opcionalmente descargar/compilar desde la rama master de los repositorios de Prometheus configurando la versión respectiva a git
.
Se instalará un compilador temporal de Golang en el directorio prometheus_workdir
(definido en defaults/main.yml
).
Por ejemplo, obtén el código más reciente para todos los componentes asignando todas las variables *_version
a git
:
prometheus_version: git
prometheus_node_exporter_version: git
prometheus_alertmanager_version: git
Si deseas forzar la reconstrucción cada vez, habilita la siguiente variable (el valor por defecto es false
):
prometheus_rebuild: true
Manejadores
Servidor Prometheus:
reiniciar prometheus
recargar prometheus
detener prometheus
Node exporter:
reiniciar node_exporter
recargar node_exporter
(en realidad, lo mismo quereiniciar
)detener node_exporter
Alertmanager:
reiniciar alertmanager
recargar alertmanager
detener alertmanager
Uso
Paso 1: agregar rol
Agrega el nombre del rol kibatic.prometheus
a tu archivo de playbook.
Paso 2: agregar variables
Configura las variables en tu archivo de playbook, si es necesario.
Ejemplo simple:
---
# archivo: simple-playbook.yml
- hosts: all
become: True
roles:
- kibatic.prometheus
vars:
prometheus_components: [ "prometheus", "alertmanager" ]
prometheus_alertmanager_url: "http://localhost:9093/"
Paso 3: copiar archivos de configuración del usuario, si es necesario
Ejemplo más práctico:
---
# archivo: complex-playbook.yml
- hosts: all
become: True
roles:
- kibatic.prometheus
vars:
prometheus_components:
- prometheus
- node_exporter
- alertmanager
prometheus_rule_files:
this_is_rule_1_InstanceDown:
src: some/path/basic.rules
dest: basic.rules
prometheus_alertmanager_conf: some/path/alertmanager.yml.j2
Paso 4: navegar por las páginas predeterminadas de Prometheus
Abre la página en tu navegador:
- Prometheus -
http://HOST:9090
ohttp://HOST:9090/consoles/node.html
- Alertmanager -
http://HOST:9093
Dependencias
Ninguna.
Contribuidores
- William Yeh
- Robbie Trencheny - contribuyó una versión temprana de la construcción de binarios desde el código fuente de Go.
- Travis Truman - contribuyó una versión temprana del instalador de consul_exporter; ahora trasladado a William-Yeh.consul_exporter.
- Musee Ullah
Licencia
Licencia MIT. Ver el archivo LICENSE para más detalles.
ansible-galaxy install kibatic.prometheus