entercloudsuite.prometheus-exporter
Rola Ansible: prometheus-exporter
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.
- Uruchom
molecule create, aby uruchomić docelowy kontener Docker na lokalnym silniku. - Użyj
molecule login, aby zalogować się do działającego kontenera. - Edytuj pliki roli.
- Dodaj inne wymagane role (zewnętrzne) w pliku molecule/default/requirements.yml.
- Edytuj molecule/default/playbook.yml.
- Zdefiniuj testy infra w folderze molecule/default/tests, korzystając z weryfikatora goos.
- Gdy wszystko będzie gotowe, użyj
molecule converge, aby uruchomić playbook Ansible, imolecule verify, aby wykonać zestaw testów.
Zauważ, że proces converge rozpoczyna wykonanie sprawdzenia składni roli.
Zniszcz kontener Docker poleceniemolecule 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
ansible-galaxy install entercloudsuite.prometheus-exporter