William-Yeh.prometheus

william-yeh.prometheus para Ansible Galaxy

Circle CI Estado de la Construcción

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:

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 que reiniciar)
  • 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 o http://HOST:9090/consoles/node.html
  • Alertmanager - http://HOST:9093

Dependencias

Ninguna.

Contribuidores

Licencia

Licencia MIT. Consulta el archivo LICENSE para más detalles.

Acerca del proyecto

Install and configure Prometheus

Instalar
ansible-galaxy install William-Yeh.prometheus
Licencia
mit
Descargas
27.5k
Propietario