prometheus-exporter

Ansible Роль: prometheus-exporter

Статус сборки Galaxy

Устанавливает prometheus-exporter на Ubuntu 16.04 (Xenial)

Требования

Эта роль требует Ansible версии 2.4 или выше.

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

Роль определяет большинство своих переменных в defaults/main.yml:

Пример плейбука

Запуск с использованием значений по умолчанию:

- hosts: all
  roles:
    - { role: ansible-prometheus-exporter }

Тестирование

Тесты выполняются с использованием Molecule.

Установите Molecule или используйте docker-compose run --rm molecule, чтобы запустить локальный контейнер Docker, основанный на проекте entercloudsuite/molecule, из которого можно использовать molecule.

  1. Выполните molecule create, чтобы запустить целевой контейнер Docker на вашем локальном движке.
  2. Используйте molecule login, чтобы войти в запущенный контейнер.
  3. Отредактируйте файлы роли.
  4. Добавьте другие необходимые роли (внешние) в файл molecule/default/requirements.yml.
  5. Отредактируйте molecule/default/playbook.yml.
  6. Определите инфраструктурные тесты в папке molecule/default/tests, используя проверщик goos.
  7. Когда вы будете готовы, используйте molecule converge, чтобы запустить Ansible Playbook, и molecule verify, чтобы выполнить тестовый набор.
    Обратите внимание, что процесс объединения начинает выполнять проверку синтаксиса роли.
    Удалите контейнер Docker командой molecule destroy.

Чтобы выполнить все шаги одной командой, выполните molecule test.

Чтобы запустить роль, нацеленную на виртуальную машину, используйте файл playbook_deploy.yml, например, с помощью следующей команды: ansible-playbook ansible-prometheus-exporter/molecule/default/playbook_deploy.yml -i VM_IP_OR_FQDN, -u ubuntu --private-key private.pem.

Еще пример

Развертывание node_exporter

Плейбук

Просто

- name: установить node_exporter на все экземпляры
  hosts: all
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: node_exporter

Больше опций

- name: установить node_exporter на все экземпляры
  hosts: all
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: node_exporter
      prometheus_exporter_config_flags:
        '--web.listen-address': '0.0.0.0:9100'
        '--log.level': 'info'

Развертывание haproxy_exporter

Плейбук

    - role: entercloudsuite.prometheus-exporter
      prometheus_exporter_version: 0.9.0
      prometheus_exporter_name: "haproxy_exporter"
      prometheus_enable_exporter_config_flags: true
      prometheus_exporter_config_flags:
       '--haproxy.scrape-uri': 'unix:/run/haproxy/admin.sock'

Конфигурация HAproxy

stats socket /run/haproxy/admin.sock mode 666 level admin

Развертывание mysqld_exporter

Плейбук

  hosts: mysql_exporter
  roles:
    - role: entercloudsuite.prometheus-exporter
      prometheus_exporter_name: mysqld_exporter
      prometheus_exporter_version: 0.10.0
      prometheus_environment_variables:
        'DATA_SOURCE_NAME': 'exporter:v3rys3cr3tp4sw0rd@(mysqlhost:3306)/'

Конфигурация MySQL

Создание пользователя для мониторинга

shell
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
Пример задачи Ansible с использованием модуля mysql_user
  - name: Создать пользователя для мониторинга
    mysql_user:
      name: "exporter"
      host: localhost
      password: "v3rys3cr3tp4sw0rd"
      priv: '*.*:PROCESS,REPLICATION CLIENT,SELECT'
      state: present

Развертывание blackbox_exporter

файл конфигурации https://github.com/prometheus/blackbox_exporter/blob/master/blackbox.yml

Установите переменную prometheus_exporter_custom_conf_destination для развертывания конфигурационного файла в определенном месте

default-value: "{{ prometheus_exporters_common_root_dir }}/{{prometheus_exporter_name}}_current"

предназначение конфигурационного файла prometheus_exporter_conf_main в каталоге плейбука:

пример:


prometheus_exporter_conf_main: black_box_exporter_example_config.yaml

расположение файла:

$PLAYBOOKPATH/black_box_exporter_example_config.yaml

prometheus_exporter_conf_main: prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml

расположение файла:

$PLAYBOOKPATH/prometheus_cof/black_boxexporter/black_box_exporter_example_config.yaml
prometheus_exporter_conf_main: black_box_exporter_example_config.yaml

Плейбук

- name: установить blackbox_exporter в группу
  hosts: blackbox_exporter
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: blackbox_exporter
      prometheus_exporter_version: 0.12.0
      # путь к playbookpath/{{prometheus_exporter_conf_main}} пользовательский путь
      prometheus_exporter_conf_main: black_box_exporter_example_config.yaml
      prometheus_exporter_config_flags:
        "--config.file": "{{ prometheus_exporter_custom_conf_destination }}/black_box_exporter_example_config.yaml"

Развертывание postgres_exporter

- name: установить postgres_exporter в группу postgres_exporter
  hosts: postgres_exporter
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: postgres_exporter
      url: https://github.com/wrouesnel/postgres_exporter/releases/download/v0.4.6/postgres_exporter_v0.4.6_linux-amd64.tar.gz
      prometheus_environment_variables:
        'DATA_SOURCE_NAME': 'postgresql://user:password@localhost:5432/?sslmode=disable'

Развертывание uwsgi_exporter

- name: установить uwsgi_exporter на экземпляре uwsgi
  hosts: uwsgi
  roles:
    - role: ansible-prometheus-exporter
      prometheus_exporter_name: uWSGI_expoter
      url: https://github.com/AndreaGreco/prometeus_uwsgi_exporter/files/1734745/uWSGI_expoter-v1.1.linux-amd64.tar.gz
      prometheus_exporter_conf_main: prometheus/config_uwsgi_expoter.yaml
      prometheus_exporter_config_flags:
        "-c": "{{ prometheus_exporters_common_root_dir }}/{{prometheus_exporter_name}}_current/config_uwsgi_expoter.yaml"
        "-n": ""

Лицензия

MIT

О проекте

Playbook for prometheus-exporter.

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