prometheus

kibatic.prometheus для Ansible Galaxy

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

Резюме

Имя роли в Ansible Galaxy: kibatic.prometheus

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

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

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

Переменные роли

Обязательные переменные

Компоненты, которые нужно установить:

# Поддерживаемые компоненты:
#
#   [Компоненты сервера]
#     - "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

Зависимости

Нет.

Участники

Лицензия

Лицензия MIT. См. файл LICENSE для подробностей.

О проекте

Install and configure Prometheus

Установить
ansible-galaxy install kibatic/ansible-prometheus
Лицензия
mit
Загрузки
1005
Владелец
Ajoutez de l'intelligence à vos systèmes