entercloudsuite.prometheus-exporter

Ansible-Rolle: prometheus-exporter

Build Status Galaxy

Installiert den prometheus-exporter auf Ubuntu 16.04 (Xenial)

Anforderungen

Diese Rolle benötigt Ansible 2.4 oder höher.

Rollenvariablen

Die Rolle definiert die meisten ihrer Variablen in defaults/main.yml.

Beispiel Playbook

Führen Sie es mit den Standardvariablen aus:

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

Testen

Tests werden mit Molecule durchgeführt.

Installieren Sie Molecule oder verwenden Sie den Befehl docker-compose run --rm molecule, um einen lokalen Docker-Container zu starten, basierend auf dem entercloudsuite/molecule Projekt, von wo Sie molecule verwenden können.

  1. Führen Sie molecule create aus, um den Ziel-Docker-Container auf Ihrer lokalen Engine zu starten.
  2. Verwenden Sie molecule login, um sich im laufenden Container anzumelden.
  3. Bearbeiten Sie die Rollendateien.
  4. Fügen Sie weitere benötigte Rollen (extern) in der Datei molecule/default/requirements.yml hinzu.
  5. Bearbeiten Sie die Datei molecule/default/playbook.yml.
  6. Definieren Sie Infrastrukturtests im Ordner molecule/default/tests mit dem goos-Verifier.
  7. Wenn Sie bereit sind, verwenden Sie molecule converge, um das Ansible-Playbook auszuführen, und molecule verify, um die Testsuite auszuführen.
    Beachten Sie, dass der Konvergenzprozess eine Syntaxüberprüfung der Rolle startet.
    Zerstören Sie den Docker-Container mit dem Befehl molecule destroy.

Um alle Schritte mit nur einem Befehl auszuführen, verwenden Sie molecule test.

Um die Rolle für eine VM auszuführen, verwenden Sie zum Beispiel die Datei playbook_deploy.yml mit folgendem Befehl:

ansible-playbook ansible-prometheus-exporter/molecule/default/playbook_deploy.yml -i VM_IP_OR_FQDN, -u ubuntu --private-key private.pem

Weitere Beispiele

Bereitstellung von node_exporter

Playbook

Einfach:

- name: node_exporter auf allen Instanzen installieren
  hosts: all
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: node_exporter

Mehr Optionen:

- name: node_exporter auf allen Instanzen installieren
  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'

Bereitstellung von 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'

HAproxy-Konfiguration

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

Bereitstellung von 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)/'

Mysql-Konfiguration

Erstellen eines Benutzers für die Überwachung

Shell
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
Beispiel für Ansible-Task mit dem mysql_user-Modul
- name: Benutzer für die Überwachung erstellen
  mysql_user:
    name: "exporter"
    host: localhost
    password: "v3rys3cr3tp4sw0rd"
    priv: '*.*:PROCESS,REPLICATION CLIENT,SELECT'
    state: present

Bereitstellung von blackbox_exporter

Konfigurationsdatei https://github.com/prometheus/blackbox_exporter/blob/master/blackbox.yml

Setzen Sie die Variable prometheus_exporter_custom_conf_destination für die Bereitstellung der Konfigurationsdatei an einem bestimmten Ort.

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

prometheus_exporter_conf_main Speicherort der Konfigurationsdatei im Playbook-Verzeichnis:

Beispiel:


prometheus_exporter_conf_main: black_box_exporter_example_config.yaml

Dateispeicherort:

$PLAYBOOKPATH/black_box_exporter_example_config.yaml

prometheus_exporter_conf_main: prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml

Dateispeicherort:

$PLAYBOOKPATH/prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml

Playbook

- name: blackbox_exporter in der Gruppe installieren
  hosts: blackbox_exporter
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: blackbox_exporter
      prometheus_exporter_version: 0.12.0
      # Pfad zu playbookpath/{{prometheus_exporter_conf_main}} benutzerdefinierter Pfad
      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"

Bereitstellung von postgres_exporter

- name: postgres_exporter in der Gruppe postgres_exporter installieren
  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'

Bereitstellung von uwsgi_exporter

- name: uwsgi_exporter auf den uwsgi-Instanzen installieren
  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": ""

Lizenz

MIT

Über das Projekt

Playbook for prometheus-exporter.

Installieren
ansible-galaxy install entercloudsuite.prometheus-exporter
Lizenz
mit
Downloads
211.4k