prometheus
william-yeh.prometheus для Ansible Galaxy
Резюме
Имя роли в Ansible Galaxy: william-yeh.prometheus
Эта роль Ansible имеет следующие функции для Prometheus:
- Установка определенных версий Prometheus server, Node exporter, Alertmanager.
- Обработчики для событий перезапуска/перезагрузки/остановки;
- Минимальная конфигурация (реальная конфигурация должна быть оставлена для файлов шаблонов пользователя; см. раздел Использование ниже).
Чтобы сохранить эту роль простой, она устанавливает только 3 компонента: Prometheus server, Node exporter и Alertmanager. Используйте следующие роли, если вы хотите установить другие экспортеры Prometheus:
- Consul: william-yeh.consul_exporter
- Elasticsearch: william-yeh.es_cluster_exporter
- MongoDB: williamyeh.mongodb_exporter
Поддержка Ubuntu 12.04 (Precise) и CentOS 6 была прекращена с ноября 2018 года.
Переменные роли
Обязательные переменные
Компоненты для установки:
# Поддерживаемые компоненты:
#
# [Серверные компоненты]
# - "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.11"
Дополнительные переменные: systemd или нет
Если дистрибутивы Linux оснащены systemd, эта роль будет использовать этот механизм соответственно. Вы можете отключить это (то есть использовать традиционный скрипт инициализации в стиле SysV), установив следующие переменные в false
:
prometheus_use_systemd
Дополнительные переменные: сервер Prometheus
Параметры, которые можно настроить пользователем:
# какая версия?
prometheus_version: 2.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_hostport
Дополнительные аргументы командной строки, если есть (используйте prometheus --help
, чтобы увидеть полный список аргументов):
prometheus_opts
Дополнительные переменные: Node exporter
Параметры, которые можно настроить пользователем:
# какая версия?
prometheus_node_exporter_version: 0.16.0
Дополнительные аргументы командной строки, если есть (используйте node_exporter --help
, чтобы увидеть полный список аргументов):
prometheus_node_exporter_opts
Дополнительные переменные: Alertmanager
Параметры, которые можно настроить пользователем:
# какая версия?
prometheus_alertmanager_version: 0.15.3
# директория для базы данных во время выполнения (в настоящее время для `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
вы можете дополнительно скачать/скомпилировать из главной ветки репозиториев 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:
перезапуск prometheus
перезагрузка prometheus
остановка prometheus
Node exporter:
перезапуск node_exporter
перезагрузка node_exporter
(на самом деле, то же самое, что иперезапуск
)остановка node_exporter
Alertmanager:
перезапуск alertmanager
перезагрузка alertmanager
остановка alertmanager
Использование
Шаг 1: добавьте роль
Добавьте имя роли william-yeh.prometheus
в ваш файл playbook.
Шаг 2: добавьте переменные
Установите переменные в вашем файле playbook, если необходимо.
Простой пример:
---
# файл: simple-playbook.yml
- hosts: all
become: True
roles:
- william-yeh.prometheus
vars:
prometheus_components: [ "prometheus", "alertmanager" ]
prometheus_alertmanager_hostport: "localhost:9093"
Шаг 3: скопируйте конфигурационные файлы пользователя, если необходимо
Более практический пример:
---
# файл: complex-playbook.yml
- hosts: all
become: True
roles:
- william-yeh.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. См. файл LICENSE для подробностей.
ansible-galaxy install William-Yeh/ansible-prometheus