prometheus

william-yeh.prometheus для Ansible Galaxy

Circle CI Статус сборки

Резюме

Имя роли в Ansible Galaxy: william-yeh.prometheus

Эта роль Ansible имеет следующие функции для Prometheus:

  • Установка определенных версий Prometheus server, Node exporter, Alertmanager.
  • Обработчики для событий перезапуска/перезагрузки/остановки;
  • Минимальная конфигурация (реальная конфигурация должна быть оставлена для файлов шаблонов пользователя; см. раздел Использование ниже).

Чтобы сохранить эту роль простой, она устанавливает только 3 компонента: Prometheus server, Node exporter и Alertmanager. Используйте следующие роли, если вы хотите установить другие экспортеры Prometheus:

Поддержка 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

Зависимости

Нет.

Участники

Лицензия

MIT License. См. файл LICENSE для подробностей.

О проекте

Install and configure Prometheus

Установить
ansible-galaxy install William-Yeh/ansible-prometheus
Лицензия
mit
Загрузки
27482
Владелец