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 create
aus, 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