entercloudsuite.prometheus-exporter

Rola Ansible: prometheus-exporter

Status budowy Galaxy

Instalacja prometheus-exporter na Ubuntu 16.04 (Xenial)

Wymagania

Ta rola wymaga Ansible w wersji 2.4 lub wyższej.

Zmienne roli

Rola definiuje większość swoich zmiennych w pliku defaults/main.yml:

Przykład Playbooka

Uruchomienie z domyślnymi zmiennymi:

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

Testowanie

Testy są przeprowadzane za pomocą Molecule.

Zainstaluj Molecule lub użyj docker-compose run --rm molecule, aby uruchomić lokalny kontener Docker, bazujący na projekcie enterclousuite/molecule, z którego możesz korzystać z molecule.

  1. Uruchom molecule create, aby uruchomić docelowy kontener Docker na lokalnym silniku.
  2. Użyj molecule login, aby zalogować się do działającego kontenera.
  3. Edytuj pliki roli.
  4. Dodaj inne wymagane role (zewnętrzne) w pliku molecule/default/requirements.yml.
  5. Edytuj molecule/default/playbook.yml.
  6. Zdefiniuj testy infra w folderze molecule/default/tests, korzystając z weryfikatora goos.
  7. Gdy wszystko będzie gotowe, użyj molecule converge, aby uruchomić playbook Ansible, i molecule verify, aby wykonać zestaw testów.
    Zauważ, że proces converge rozpoczyna wykonanie sprawdzenia składni roli.
    Zniszcz kontener Docker polecenie molecule destroy.

Aby wykonać wszystkie kroki za pomocą jednego polecenia, uruchom molecule test.

Aby uruchomić rolę na maszynie wirtualnej, użyj pliku playbook_deploy.yml na przykład z następującym poleceniem: ansible-playbook ansible-prometheus-exporter/molecule/default/playbook_deploy.yml -i VM_IP_OR_FQDN, -u ubuntu --private-key private.pem.

Więcej przykładów

Wdrażanie node_exporter

Playbook

prosty

- name: instalacja node_exporter na wszystkich instancjach
  hosts: all
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: node_exporter

więcej opcji

- name: instalacja node_exporter na wszystkich instancjach
  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'

Wdrażanie 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'

Konfiguracja HAproxy

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

Wdrażanie 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)/'

Konfiguracja mysql

Stworzenie użytkownika dla monitorowania

shell
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
Przykład zadania ansible z modułem mysql_user
  - name: Stworzenie użytkownika do monitorowania
    mysql_user:
      name: "exporter"
      host: localhost
      password: "v3rys3cr3tp4sw0rd"
      priv: '*.*:PROCESS,REPLICATION CLIENT,SELECT'
      state: present

Wdrażanie blackbox_exporter

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

Ustaw zmienną prometheus_exporter_custom_conf_destination, aby umieścić plik konfiguracyjny w określonym miejscu

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

prometheus_exporter_conf_main lokalizacja pliku konfiguracyjnego w katalogu playbook:

przykład:


prometheus_exporter_conf_main: black_box_exporter_example_config.yaml

lokalizacja pliku:

$PLAYBOOKPATH/black_box_exporter_example_config.yaml

prometheus_exporter_conf_main: prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml

lokalizacja pliku:

$PLAYBOOKPATH/prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml
prometheus_exporter_conf_main: black_box_exporter_example_config.yaml

Playbook

- name: instalacja blackbox_exporter w grupie
  hosts: blackbox_exporter
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: blackbox_exporter
      prometheus_exporter_version: 0.12.0
      # ścieżka do playbookpath/{{prometheus_exporter_conf_main}} własnej ścieżki
      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"

Wdrażanie postgres_exporter

- name: instalacja postgres_exporter w grupie 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'

Wdrażanie uwsgi_exporter

- name: instalacja uwsgi_exporter na instancji uwsgi
  hosts: uwsgi
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: uWSGI_exporter
      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": ""

Licencja

MIT

O projekcie

Playbook for prometheus-exporter.

Zainstaluj
ansible-galaxy install entercloudsuite.prometheus-exporter
Licencja
mit
Pobrania
211.4k
Właściciel