node_exporter
Устарело
Эта роль устарела в пользу коллекции prometheus-community/ansible.
Ansible Роль: Node Exporter
Внимание
Из-за ограничений galaxy.ansible.com нам пришлось переместить роль на https://galaxy.ansible.com/cloudalchemy/node_exporter и использовать _
вместо -
в имени роли. Это является разрывом совместимости и, к сожалению, затрагивает все версии роли node_exporter, так как ansible galaxy не предлагает никакой формы перенаправления. Мы приносим извинения за неудобства.
Описание
Развертывание prometheus node exporter с использованием ansible.
Требования
- Ansible >= 2.7 (может работать на предыдущих версиях, но мы не можем это гарантировать)
- gnu-tar на хосте развертывания Mac (
brew install gnu-tar
) - Passlib требуется при использовании функции базовой аутентификации (
pip install passlib[bcrypt]
)
Переменные Роли
Все переменные, которые могут быть переопределены, хранятся в defaults/main.yml и перечислены в таблице ниже.
Название | Значение по умолчанию | Описание |
---|---|---|
node_exporter_version |
1.1.2 | Версия пакета node exporter. Также принимает "latest" в качестве параметра. |
node_exporter_binary_local_dir |
"" | Позволяет использовать локальные пакеты вместо тех, что распределены на github. Параметр может быть установлен в каталог, где находится бинарный файл node_exporter на хосте, где запускается ansible. Это переопределяет параметр node_exporter_version |
node_exporter_web_listen_address |
"0.0.0.0:9100" | Адрес, на котором будет слушать node exporter |
node_exporter_web_telemetry_path |
"/metrics" | Путь, по которому будут доступны метрики |
node_exporter_enabled_collectors |
["systemd",{textfile: {directory: "{{node_exporter_textfile_dir}}"}}] |
Список словарей, определяющих дополнительно включённые сборщики и их конфигурацию. Добавляет сборщики к т тем, что включены по умолчанию. |
node_exporter_disabled_collectors |
[] | Список отключённых сборщиков. По умолчанию node_exporter отключает сборщики, перечисленные здесь. |
node_exporter_textfile_dir |
"/var/lib/node_exporter" | Каталог, используемый Textfile Collector. Чтобы получить разрешения на запись метрик в этом каталоге, пользователи должны быть в системной группе node-exp . Примечание: Более подробная информация в документе TROUBLESHOOTING.md. |
node_exporter_tls_server_config |
{} | Конфигурация для TLS аутентификации. Ключи и значения такие же, как в документации node_exporter. |
node_exporter_http_server_config |
{} | Конфигурация для поддержки HTTP/2. Ключи и значения такие же, как в документации node_exporter. |
node_exporter_basic_auth_users |
{} | Словарь пользователей и паролей для базовой аутентификации. Пароли автоматически хешируются с использованием bcrypt. |
Пример
Плейбук
Используйте это в плейбуке следующим образом:
- hosts: all
roles:
- cloudalchemy.node_exporter
Конфигурация TLS
Перед запуском роли node_exporter пользователю необходимо подготовить собственный сертификат и ключ.
- hosts: all
pre_tasks:
- name: Создать каталог сертификатов node_exporter
file:
path: "/etc/node_exporter"
state: directory
owner: root
group: root
- name: Создать сертификат и ключ
openssl_certificate:
path: /etc/node_exporter/tls.cert
csr_path: /etc/node_exporter/tls.csr
privatekey_path: /etc/node_exporter/tls.key
provider: selfsigned
roles:
- cloudalchemy.node_exporter
vars:
node_exporter_tls_server_config:
cert_file: /etc/node_exporter/tls.cert
key_file: /etc/node_exporter/tls.key
node_exporter_basic_auth_users:
randomuser: examplepassword
Демонстрационный сайт
Мы предоставляем пример сайта, который демонстрирует полное решение для мониторинга на основе prometheus и grafana. Репозиторий с кодом и ссылками на работающие экземпляры доступен на github, а сайт размещён на DigitalOcean.
Локальное тестирование
Предпочтительный способ локального тестирования роли — использовать Docker и molecule (v3.x). Вам нужно установить Docker на вашем компьютере. См. раздел "Начало работы" для получения пакета Docker, соответствующего вашей системе. Запуск тестов так же прост, как выполнение команды molecule test
.
Непрерывная интеграция
Сочетание molecule и circle CI позволяет нам тестировать, как новые PR будут работать с несколькими версиями ansible и различными операционными системами. Это также позволяет создавать тестовые сценарии для различных конфигураций роли. В результате у нас есть довольно большая тестовая матрица, которая может занять больше времени, чем локальное тестирование, поэтому, пожалуйста, будьте терпеливы.
Участие
См. руководство для участников.
Устранение неполадок
См. услнение неполадок.
Лицензия
Этот проект лицензирован под MIT License. См. LICENSE для получения дополнительных сведений.
ansible-galaxy install cloudalchemy/ansible-node-exporter