prometheus-exporter
Ansible Роль: prometheus-exporter
Устанавливает prometheus-exporter на Ubuntu 16.04 (Xenial)
Требования
Эта роль требует Ansible версии 2.4 или выше.
Переменные роли
Роль определяет большинство своих переменных в defaults/main.yml
:
Пример плейбука
Запуск с использованием значений по умолчанию:
- hosts: all
roles:
- { role: ansible-prometheus-exporter }
Тестирование
Тесты выполняются с использованием Molecule.
Установите Molecule или используйте docker-compose run --rm molecule
, чтобы запустить локальный контейнер Docker, основанный на проекте entercloudsuite/molecule, из которого можно использовать molecule
.
- Выполните
molecule create
, чтобы запустить целевой контейнер Docker на вашем локальном движке. - Используйте
molecule login
, чтобы войти в запущенный контейнер. - Отредактируйте файлы роли.
- Добавьте другие необходимые роли (внешние) в файл molecule/default/requirements.yml.
- Отредактируйте molecule/default/playbook.yml.
- Определите инфраструктурные тесты в папке molecule/default/tests, используя проверщик goos.
- Когда вы будете готовы, используйте
molecule converge
, чтобы запустить Ansible Playbook, иmolecule verify
, чтобы выполнить тестовый набор.
Обратите внимание, что процесс объединения начинает выполнять проверку синтаксиса роли.
Удалите контейнер Docker командойmolecule destroy
.
Чтобы выполнить все шаги одной командой, выполните molecule test
.
Чтобы запустить роль, нацеленную на виртуальную машину, используйте файл playbook_deploy.yml, например, с помощью следующей команды: ansible-playbook ansible-prometheus-exporter/molecule/default/playbook_deploy.yml -i VM_IP_OR_FQDN, -u ubuntu --private-key private.pem
.
Еще пример
Развертывание node_exporter
Плейбук
Просто
- name: установить node_exporter на все экземпляры
hosts: all
roles:
- role: ansible-prometheus-exporter
prometheus_exporter_name: node_exporter
Больше опций
- name: установить node_exporter на все экземпляры
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'
Развертывание haproxy_exporter
Плейбук
- 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'
Конфигурация HAproxy
stats socket /run/haproxy/admin.sock mode 666 level admin
Развертывание mysqld_exporter
Плейбук
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)/'
Конфигурация MySQL
Создание пользователя для мониторинга
shell
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
Пример задачи Ansible с использованием модуля mysql_user
- name: Создать пользователя для мониторинга
mysql_user:
name: "exporter"
host: localhost
password: "v3rys3cr3tp4sw0rd"
priv: '*.*:PROCESS,REPLICATION CLIENT,SELECT'
state: present
Развертывание blackbox_exporter
файл конфигурации https://github.com/prometheus/blackbox_exporter/blob/master/blackbox.yml
Установите переменную prometheus_exporter_custom_conf_destination для развертывания конфигурационного файла в определенном месте
default-value: "{{ prometheus_exporters_common_root_dir }}/{{prometheus_exporter_name}}_current"
предназначение конфигурационного файла prometheus_exporter_conf_main в каталоге плейбука:
пример:
prometheus_exporter_conf_main: black_box_exporter_example_config.yaml
расположение файла:
$PLAYBOOKPATH/black_box_exporter_example_config.yaml
prometheus_exporter_conf_main: prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml
расположение файла:
$PLAYBOOKPATH/prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml
prometheus_exporter_conf_main: black_box_exporter_example_config.yaml
Плейбук
- name: установить blackbox_exporter в группу
hosts: blackbox_exporter
roles:
- role: ansible-prometheus-exporter
prometheus_exporter_name: blackbox_exporter
prometheus_exporter_version: 0.12.0
# путь к playbookpath/{{prometheus_exporter_conf_main}} пользовательский путь
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"
Развертывание postgres_exporter
- name: установить postgres_exporter в группу 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'
Развертывание uwsgi_exporter
- name: установить uwsgi_exporter на экземпляре 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": ""
Лицензия
MIT
ansible-galaxy install entercloudsuite/ansible-prometheus-exporter