entercloudsuite.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.prometheus-exporter