entercloudsuite.prometheus-exporter
Rôle Ansible : prometheus-exporter
Installe prometheus-exporter sur Ubuntu 16.04 (Xenial)
Exigences
Ce rôle nécessite Ansible 2.4 ou supérieur.
Variables du rôle
Le rôle définit la plupart de ses variables dans defaults/main.yml
:
Exemple de Playbook
Exécutez avec les variables par défaut :
- hosts: all
roles:
- { role: ansible-prometheus-exporter }
Tests
Les tests sont effectués en utilisant Molecule.
Installez Molecule ou utilisez docker-compose run --rm molecule
pour exécuter un conteneur Docker local, basé sur le projet entercloudsuite/molecule, à partir duquel vous pouvez utiliser molecule
.
- Exécutez
molecule create
pour démarrer le conteneur Docker cible sur votre moteur local. - Utilisez
molecule login
pour vous connecter au conteneur en cours d'exécution. - Modifiez les fichiers du rôle.
- Ajoutez d'autres rôles requis (externes) dans le fichier molecule/default/requirements.yml.
- Modifiez le fichier molecule/default/playbook.yml.
- Définissez des tests d'infrastructure dans le dossier molecule/default/tests en utilisant le vérificateur goos.
- Lorsque vous êtes prêt, utilisez
molecule converge
pour exécuter le Playbook Ansible etmolecule verify
pour exécuter la suite de tests.
Notez que le processus de convergence commence par effectuer une vérification de syntaxe du rôle.
Détruisez le conteneur Docker avec la commandemolecule destroy
.
Pour exécuter toutes les étapes avec une seule commande, exécutez molecule test
.
Pour exécuter le rôle ciblant une VM, utilisez le fichier playbook_deploy.yml par exemple avec la commande suivante : ansible-playbook ansible-prometheus-exporter/molecule/default/playbook_deploy.yml -i VM_IP_OR_FQDN, -u ubuntu --private-key private.pem
.
Plus d'exemples
Déployer node_exporter
Playbook
simple
- name: installer node_exporter sur toutes les instances
hosts: all
roles:
- role: ansible-prometheus-exporter
prometheus_exporter_name: node_exporter
plus d'options
- name: installer node_exporter sur toutes les instances
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'
Déployer 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'
Configuration de HAproxy
stats socket /run/haproxy/admin.sock mode 666 level admin
Déployer 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)/'
Configuration de mysql
Créer un utilisateur pour la surveillance
shell
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
exemple de tâche ansible module mysql_user
- name: Créer un utilisateur pour la surveillance
mysql_user:
name: "exporter"
host: localhost
password: "v3rys3cr3tp4sw0rd"
priv: '*.*:PROCESS,REPLICATION CLIENT,SELECT'
state: present
Déployer blackbox_exporter
fichier de configuration https://github.com/prometheus/blackbox_exporter/blob/master/blackbox.yml
Définissez la variable prometheus_exporter_custom_conf_destination pour déployer le fichier de configuration à un emplacement spécifique
valeur-par-défaut: "{{ prometheus_exporters_common_root_dir }}/{{prometheus_exporter_name}}_current"
prometheus_exporter_conf_main emplacement du fichier de configuration dans le répertoire du playbook :
exemple :
prometheus_exporter_conf_main: black_box_exporter_example_config.yaml
emplacement du fichier :
$PLAYBOOKPATH/black_box_exporter_example_config.yaml
prometheus_exporter_conf_main: prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml
emplacement du fichier :
$PLAYBOOKPATH/prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml
prometheus_exporter_conf_main: black_box_exporter_example_config.yaml
Playbook
- name: installer blackbox_exporter sur le groupe
hosts: blackbox_exporter
roles:
- role: ansible-prometheus-exporter
prometheus_exporter_name: blackbox_exporter
prometheus_exporter_version: 0.12.0
# chemin vers playbookpath/{{prometheus_exporter_conf_main}} chemin personnalisé
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"
Déployer postgres_exporter
- name: installer postgres_exporter sur le groupe 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'
Déployer uwsgi_exporter
- name: installer uwsgi_exporter sur l'instance 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": ""
Licence
MIT
ansible-galaxy install entercloudsuite.prometheus-exporter