entercloudsuite.prometheus-exporter

Rol de Ansible: prometheus-exporter

Estado de Construcción Galaxy

Instala prometheus-exporter en Ubuntu 16.04 (Xenial)

Requisitos

Este rol requiere Ansible 2.4 o superior.

Variables del Rol

El rol define la mayoría de sus variables en defaults/main.yml:

Ejemplo de Playbook

Ejecutar con variables por defecto:

- hosts: all
  roles:
    - { role: ansible-prometheus-exporter }

Pruebas

Las pruebas se realizan usando Molecule.

Instala Molecule o usa docker-compose run --rm molecule para ejecutar un contenedor Docker local, basado en el proyecto entercloudsuite/molecule, desde donde puedes usar molecule.

  1. Ejecuta molecule create para iniciar el contenedor Docker de destino en tu máquina local.
  2. Usa molecule login para iniciar sesión en el contenedor en ejecución.
  3. Edita los archivos del rol.
  4. Añade otros roles necesarios (externos) en el archivo molecule/default/requirements.yml.
  5. Edita el molecule/default/playbook.yml.
  6. Define pruebas de infraestructura en la carpeta molecule/default/tests usando el verificador goos.
  7. Cuando estés listo, usa molecule converge para ejecutar el Playbook de Ansible y molecule verify para ejecutar la suite de pruebas.
    Nota que el proceso de convergencia comienza realizando una verificación de sintaxis del rol.
    Destruye el contenedor Docker con el comando molecule destroy.

Para ejecutar todos los pasos con un solo comando, usa molecule test.

Para ejecutar el rol dirigido a una VM, usa el archivo playbook_deploy.yml por ejemplo con el siguiente comando: ansible-playbook ansible-prometheus-exporter/molecule/default/playbook_deploy.yml -i VM_IP_OR_FQDN, -u ubuntu --private-key private.pem.

Más ejemplos

Desplegar node_exporter

Playbook

simple

- name: instalar node_exporter en todas las instancias
  hosts: all
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: node_exporter

más opciones

- name: instalar node_exporter en todas las instancias
  hosts: all
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: node_exporter
      prometheus_exporter_config_flags:
        '--web.listen-address': '0.0.0.0:9100'
        '--log.level': 'info'

Desplegar haproxy_exporter

Playbook

    - role: entercloudsuite.prometheus-exporter
      prometheus_exporter_version: 0.9.0
      prometheus_exporter_name: "haproxy_exporter"
      prometheus_enable_exporter_config_flags: true
      prometheus_exporter_config_flags:
       '--haproxy.scrape-uri': 'unix:/run/haproxy/admin.sock'

Configuración de HAproxy

stats socket /run/haproxy/admin.sock mode 666 level admin

Desplegar mysqld_exporter

Playbook

  hosts: mysql_exporter
  roles:
    - role: entercloudsuite.prometheus-exporter
      prometheus_exporter_name: mysqld_exporter
      prometheus_exporter_version: 0.10.0
      prometheus_environment_variables:
        'DATA_SOURCE_NAME': 'exporter:v3rys3cr3tp4sw0rd@(mysqlhost:3306)/'

Configuración de mysql

Crear usuario para monitoreo

shell
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
ejemplo de tarea en ansible usando el módulo mysql_user
- name: Crear usuario para monitoreo
  mysql_user:
    name: "exporter"
    host: localhost
    password: "v3rys3cr3tp4sw0rd"
    priv: '*.*:PROCESS,REPLICATION CLIENT,SELECT'
    state: present

Desplegar blackbox_exporter

archivo de configuración https://github.com/prometheus/blackbox_exporter/blob/master/blackbox.yml

Establece la variable prometheus_exporter_custom_conf_destination para desplegar el archivo de configuración en una ubicación específica

default-value: "{{ prometheus_exporters_common_root_dir }}/{{prometheus_exporter_name}}_current"

prometheus_exporter_conf_main ubicación del archivo de configuración en el directorio del playbook:

ejemplo:


prometheus_exporter_conf_main: black_box_exporter_example_config.yaml

ubicación del archivo:

$PLAYBOOKPATH/black_box_exporter_example_config.yaml

prometheus_exporter_conf_main: prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml

ubicación del archivo:

$PLAYBOOKPATH/prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml
prometheus_exporter_conf_main: black_box_exporter_example_config.yaml

Playbook

- name: instalar blackbox_exporter en el grupo
  hosts: blackbox_exporter
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: blackbox_exporter
      prometheus_exporter_version: 0.12.0
      # ruta a playbookpath/{{prometheus_exporter_conf_main}} ruta personalizada
      prometheus_exporter_conf_main: black_box_exporter_example_config.yaml
      prometheus_exporter_config_flags:
        "--config.file": "{{ prometheus_exporter_custom_conf_destination }}/black_box_exporter_example_config.yaml"

Desplegar postgres_exporter

- name: instalar postgres_exporter en el grupo postgres_exporter
  hosts: postgres_exporter
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: postgres_exporter
      url: https://github.com/wrouesnel/postgres_exporter/releases/download/v0.4.6/postgres_exporter_v0.4.6_linux-amd64.tar.gz
      prometheus_environment_variables:
        'DATA_SOURCE_NAME': 'postgresql://user:password@localhost:5432/?sslmode=disable'

Desplegar uwsgi_exporter

- name: instalar uwsgi_exporter en la instancia uwsgi
  hosts: uwsgi
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: uWSGI_expoter
      url: https://github.com/AndreaGreco/prometeus_uwsgi_exporter/files/1734745/uWSGI_expoter-v1.1.linux-amd64.tar.gz
      prometheus_exporter_conf_main: prometheus/config_uwsgi_expoter.yaml
      prometheus_exporter_config_flags:
        "-c": "{{ prometheus_exporters_common_root_dir }}/{{prometheus_exporter_name}}_current/config_uwsgi_expoter.yaml"
        "-n": ""

Licencia

MIT

Acerca del proyecto

Playbook for prometheus-exporter.

Instalar
ansible-galaxy install entercloudsuite.prometheus-exporter
Licencia
mit
Descargas
211.4k
Propietario