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