entercloudsuite.prometheus-exporter

Rôle Ansible : prometheus-exporter

État de la construction Galaxy

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.

  1. Exécutez molecule create pour démarrer le conteneur Docker cible sur votre moteur local.
  2. Utilisez molecule login pour vous connecter au conteneur en cours d'exécution.
  3. Modifiez les fichiers du rôle.
  4. Ajoutez d'autres rôles requis (externes) dans le fichier molecule/default/requirements.yml.
  5. Modifiez le fichier molecule/default/playbook.yml.
  6. Définissez des tests d'infrastructure dans le dossier molecule/default/tests en utilisant le vérificateur goos.
  7. Lorsque vous êtes prêt, utilisez molecule converge pour exécuter le Playbook Ansible et molecule 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 commande molecule 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

À propos du projet

Playbook for prometheus-exporter.

Installer
ansible-galaxy install entercloudsuite.prometheus-exporter
Licence
mit
Téléchargements
211.4k
Propriétaire