entercloudsuite.prometheus-exporter
Ansible-Rolle: prometheus-exporter
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.
- Führen Sie
molecule createaus, um den Ziel-Docker-Container auf Ihrer lokalen Engine zu starten. - Verwenden Sie
molecule login, um sich im laufenden Container anzumelden. - Bearbeiten Sie die Rollendateien.
- Fügen Sie weitere benötigte Rollen (extern) in der Datei molecule/default/requirements.yml hinzu.
- Bearbeiten Sie die Datei molecule/default/playbook.yml.
- Definieren Sie Infrastrukturtests im Ordner molecule/default/tests mit dem goos-Verifier.
- Wenn Sie bereit sind, verwenden Sie
molecule converge, um das Ansible-Playbook auszuführen, undmolecule 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 Befehlmolecule 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
ansible-galaxy install entercloudsuite.prometheus-exporter