prometheus
kibatic.prometheus для Ansible Galaxy
Резюме
Имя роли в Ansible Galaxy: kibatic.prometheus
Эта роль Ansible имеет следующие функции для Prometheus:
- Установка конкретных версий Prometheus server, Node exporter, Alertmanager.
- Обработчики для событий перезапуска/перезагрузки/остановки;
- Минимальная конфигурация (реальную конфигурацию нужно оставлять в файлах шаблонов пользователя; смотрите раздел Использование ниже).
Чтобы сохранить эту роль простой, она устанавливает только 3 компонента: сервер Prometheus, Node exporter и Alertmanager. Используйте следующие роли, если хотите установить другие экспортеры Prometheus:
- Consul: William-Yeh.consul_exporter
- Elasticsearch: William-Yeh.es_cluster_exporter
- MongoDB: williamyeh.mongodb_exporter
Переменные роли
Обязательные переменные
Компоненты, которые нужно установить:
# Поддерживаемые компоненты:
#
# [Компоненты сервера]
# - "prometheus"
# - "alertmanager"
#
# [Компоненты экспортеров]
# - "node_exporter"
#
prometheus_components
Необязательные переменные: общие настройки
Настройки, доступные для конфигурации пользователем:
# пользователь и группа
prometheus_user: prometheus
prometheus_group: prometheus
# директория для исполняемых файлов
prometheus_install_path: /opt/prometheus
# директория для файлов конфигурации
prometheus_config_path: /etc/prometheus
# директория для логов
prometheus_log_path: /var/log/prometheus
# директория для PID файлов
prometheus_pid_path: /var/run/prometheus
# директория для временных файлов
prometheus_download_path: /tmp
# версия вспомогательной утилиты "gosu"
gosu_version: "1.10"
Необязательные переменные: systemd или нет
Если дистрибутивы Linux поддерживают systemd, эта роль будет использовать этот механизм. Вы можете отключить это (т.е. использовать традиционный скрипт инициализации SysV), установив следующие переменные в false
:
# в данный момент поддерживается только node_exporter.
prometheus_node_exporter_use_systemd
Необязательные переменные: сервер Prometheus
Настройки, доступные для конфигурации пользователем:
# какая версия?
prometheus_version: 1.5.0
# директория для файлов правил
prometheus_rule_path: {{ prometheus_config_path }}/rules
# директория для файлов file_sd
prometheus_file_sd_config_path: {{ prometheus_config_path }}/tgroups
# директория для базы данных во время выполнения
prometheus_db_path: /var/lib/prometheus
Файл конфигурации, который может установить пользователь (см. документацию для подробностей):
# основной шаблон конфигурации относительно `playbook_dir`;
# устанавливается в "{{ prometheus_config_path }}/prometheus.yml"
prometheus_conf_main
Файлы правил, которые могут установить пользователи (см. документацию для подробностей):
# файлы правил, которые будут установлены в директорию "{{ prometheus_rule_path }}";
# поля словаря:
# - ключ: заметка для этого правила
# - значение:
# - src: файл относительно `playbook_dir`
# - dest: целевой файл относительно `{{ prometheus_rule_path }}`
prometheus_rule_files
Alertmanager, который будет вызван:
prometheus_alertmanager_url
Дополнительные аргументы командной строки, если таковые имеются (используйте prometheus --help
для просмотра полного списка аргументов):
prometheus_opts
Необязательные переменные: Node exporter
Настройки, доступные для конфигурации пользователем:
# какая версия?
prometheus_node_exporter_version: 0.13.0
Дополнительные аргументы командной строки, если таковые имеются (используйте node_exporter --help
для просмотра полного списка аргументов):
prometheus_node_exporter_opts
Необязательные переменные: Alertmanager
Настройки, доступные для конфигурации пользователем:
# какая версия?
prometheus_alertmanager_version: 0.5.1
# директория для базы данных во время выполнения (в данный момент для `silences.json`)
prometheus_alertmanager_db_path: /var/lib/alertmanager
Файл конфигурации alertmanager, который может установить пользователь (см. документацию для подробностей):
# основной шаблон конфигурации относительно `playbook_dir`;
# устанавливается в "{{ prometheus_config_path }}/alertmanager.yml"
prometheus_alertmanager_conf
Дополнительные аргументы командной строки, если таковые имеются (используйте alertmanager --help
для просмотра полного списка аргументов):
prometheus_alertmanager_opts
Необязательное: сборка из исходного дерева
(Кредиты: Robbie Trencheny)
Для вышеупомянутых prometheus_components
, вы можете по желанию загрузить/собрать из master ветки репозиториев Prometheus, установив соответствующую версию в git
.
Это установит временный компилятор Golang в директорию prometheus_workdir
(определена в defaults/main.yml
).
Например, получите последний код для всех компонентов, установив все *_version
переменные в git
:
prometheus_version: git
prometheus_node_exporter_version: git
prometheus_alertmanager_version: git
Если вы хотите принудительно пересобирать каждый раз, активируйте следующую переменную (по умолчанию false
):
prometheus_rebuild: true
Обработчики
Сервер Prometheus:
restart prometheus
reload prometheus
stop prometheus
Node exporter:
restart node_exporter
reload node_exporter
(на самом деле, то же самое, что иrestart
)stop node_exporter
Alertmanager:
restart alertmanager
reload alertmanager
stop alertmanager
Использование
Шаг 1: добавьте роль
Добавьте имя роли kibatic.prometheus
в ваш файл playbook.
Шаг 2: добавьте переменные
Установите переменные в вашем playbook файле, если необходимо.
Простой пример:
---
# файл: simple-playbook.yml
- hosts: all
become: True
roles:
- kibatic.prometheus
vars:
prometheus_components: [ "prometheus", "alertmanager" ]
prometheus_alertmanager_url: "http://localhost:9093/"
Шаг 3: скопируйте файлы конфигурации пользователя, если необходимо
Более практический пример:
---
# файл: complex-playbook.yml
- hosts: all
become: True
roles:
- kibatic.prometheus
vars:
prometheus_components:
- prometheus
- node_exporter
- alertmanager
prometheus_rule_files:
this_is_rule_1_InstanceDown:
src: some/path/basic.rules
dest: basic.rules
prometheus_alertmanager_conf: some/path/alertmanager.yml.j2
Шаг 4: откройте стандартные страницы Prometheus
Откройте страницу в вашем браузере:
- Prometheus -
http://HOST:9090
илиhttp://HOST:9090/consoles/node.html
- Alertmanager -
http://HOST:9093
Зависимости
Нет.
Участники
- William Yeh
- Robbie Trencheny - внес вклад в раннюю версию сборки бинарных файлов из исходного кода Go.
- Travis Truman - внес вклад в раннюю версию установщика consul_exporter; теперь перемещен в William-Yeh.consul_exporter.
- Musee Ullah
Лицензия
Лицензия MIT. См. файл LICENSE для подробностей.
ansible-galaxy install kibatic/ansible-prometheus