node_exporter

Устарело

Эта роль устарела в пользу коллекции prometheus-community/ansible.

Ansible Роль: Node Exporter

Лицензия Ansible Роль GitHub тег

Внимание

Из-за ограничений 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
Лицензия
mit
Загрузки
3166311
Владелец
Setup your monitoring stack with ansible