William-Yeh.prometheus
william-yeh.prometheus para Ansible Galaxy
Resumen
Nombre del rol en Ansible Galaxy: william-yeh.prometheus
Este rol de Ansible tiene las siguientes características para Prometheus:
- Instalar versiones específicas del servidor de Prometheus, Node exporter, Alertmanager.
- Controladores para eventos de reinicio/re carga/parada;
- 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: el servidor de Prometheus, el Node exporter y el Alertmanager. Usa los siguientes roles si deseas instalar otros exportadores de Prometheus:
- Consul: william-yeh.consul_exporter
- Elasticsearch: william-yeh.es_cluster_exporter
- MongoDB: williamyeh.mongodb_exporter
El soporte para Ubuntu 12.04 (Precise) y CentOS 6 finalizó en noviembre de 2018.
Variables del Rol
Variables obligatorias
Los componentes a instalar:
# Componentes soportados:
#
# [Componentes del servidor]
# - "prometheus"
# - "alertmanager"
#
# [Componentes del Exportador]
# - "node_exporter"
#
prometheus_components
Variables opcionales: configuraciones generales
Valores predeterminados 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 registros
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.11"
Variables opcionales: con systemd o no
Si las distribuciones de Linux están equipadas con systemd, este rol utilizará este mecanismo. Puedes desactivarlo (es decir, usar el script tradicional de iniciación SysV) definiendo la siguiente variable como false
:
prometheus_use_systemd
Variables opcionales: servidor de Prometheus
Valores predeterminados configurables por el usuario:
# ¿qué versión?
prometheus_version: 2.5.0
# directorio para archivos de reglas
prometheus_rule_path: {{ prometheus_config_path }}/rules
# directorio para archivos file_sd
prometheus_file_sd_config_path: {{ prometheus_config_path }}/tgroups
# directorio para la base de datos en 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 conf relativa a `playbook_dir`;
# para 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 se instalarán en el directorio "{{ prometheus_rule_path }}";
# campos del diccionario:
# - clave: memo para esta regla
# - valor:
# - src: archivo relativo a `playbook_dir`
# - dest: archivo objetivo relativo a `{{ prometheus_rule_path }}`
prometheus_rule_files
Alertmanager para ser activado:
prometheus_alertmanager_hostport
Argumentos adicionales de línea de comandos, si los hay (usa prometheus --help
para ver la lista completa de argumentos):
prometheus_opts
Variables opcionales: Node exporter
Valores predeterminados configurables por el usuario:
# ¿qué versión?
prometheus_node_exporter_version: 0.16.0
Argumentos adicionales de línea de comandos, si los hay (usa node_exporter --help
para ver la lista completa de argumentos):
prometheus_node_exporter_opts
Variables opcionales: Alertmanager
Valores predeterminados configurables por el usuario:
# ¿qué versión?
prometheus_alertmanager_version: 0.15.3
# directorio para la base de datos en ejecución (actualmente para `silences.json`)
prometheus_alertmanager_db_path: /var/lib/alertmanager
Archivo de configuración del Alertmanager instalable por el usuario (ver doc para más detalles):
# plantilla principal de conf relativa a `playbook_dir`;
# para ser instalada en "{{ prometheus_config_path }}/alertmanager.yml"
prometheus_alertmanager_conf
Argumentos adicionales de línea de comandos, si los hay (usa alertmanager --help
para ver la lista completa de argumentos):
prometheus_alertmanager_opts
Opcional: construir desde el árbol de fuentes
(Crédito: Robbie Trencheny)
Para los componentes de prometheus_components
mencionados anteriormente, puedes optar por descargar/compilar desde la rama master de los repositorios de Prometheus estableciendo la versión correspondiente en git
.
Se instalará un compilador temporal de Golang en el directorio prometheus_workdir
(definido en defaults/main.yml
).
Por ejemplo, obtener 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 recompilación cada vez, activa la siguiente variable (el valor predeterminado es false
):
prometheus_rebuild: true
Controladores
Servidor de 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: añadir rol
Agrega el nombre del rol william-yeh.prometheus
a tu archivo de playbook.
Paso 2: añadir variables
Establece variables en tu archivo de playbook, si es necesario.
Ejemplo simple:
---
# archivo: simple-playbook.yml
- hosts: all
become: True
roles:
- william-yeh.prometheus
vars:
prometheus_components: [ "prometheus", "alertmanager" ]
prometheus_alertmanager_hostport: "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:
- william-yeh.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. Consulta el archivo LICENSE para más detalles.
ansible-galaxy install William-Yeh.prometheus