kibatic.prometheus

kibatic.prometheus para Ansible Galaxy

Circle CI Estado de Construcción

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:

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

Dependencias

Ninguna.

Contribuidores

Licencia

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

Acerca del proyecto

Install and configure Prometheus

Instalar
ansible-galaxy install kibatic.prometheus
Licencia
mit
Descargas
1k
Propietario
Ajoutez de l'intelligence à vos systèmes