grafana
УСТАРЕЛО
Эта роль устарела в пользу коллекции grafana-ansible-collection.
Ansible Роль: grafana
Установите и управляйте платформой grafana для аналитики и мониторинга.
Требования
- Ansible >= 2.7 (Может работать на более ранних версиях, но мы не можем это гарантировать)
- libselinux-python на хосте развертывания (только если на машине развертывателя включен SELinux)
- grafana >= 5.1 (для более старых версий grafana используйте эту роль в версии 0.10.1 или ранее)
- jmespath на машине развертывателя. Если вы используете Ansible из виртуального окружения Python, установите jmespath в то же виртуальное окружение через pip.
Переменные роли
Все переменные, которые можно переопределить, хранятся в файле defaults/main.yml, а также в таблице ниже.
Имя | Значение по умолчанию | Описание |
---|---|---|
grafana_use_provisioning |
true | Использовать возможности провизионирования Grafana при возможности (grafana_version=latest предполагает >= 5.0). |
grafana_provisioning_synced |
false | Убедитесь, что ранее провизионированные дашборды не остались, если на них больше не ссылаются. |
grafana_version |
latest | Версия пакета Grafana |
grafana_yum_repo_template |
etc/yum.repos.d/grafana.repo.j2 | Шаблон Yum для использования |
grafana_manage_repo |
true | Управлять репозиторием пакетов (или нет) |
grafana_instance |
{{ ansible_fqdn | default(ansible_host) | default(inventory_hostname) }} | Имя экземпляра Grafana |
grafana_logs_dir |
/var/log/grafana | Путь к директории логов |
grafana_data_dir |
/var/lib/grafana | Путь к директории базы данных |
grafana_address |
0.0.0.0 | Адрес, на котором слушает Grafana |
grafana_port |
3000 | Порт, на котором слушает Grafana |
grafana_cap_net_bind_service |
false | Разрешает использование портов ниже 1024 без привилегий root путем использования 'возможностей' ядра linux. Подробнее: http://man7.org/linux/man-pages/man7/capabilities.7.html |
grafana_url |
"http://{{ grafana_address }}:{{ grafana_port }}" | Полный URL для доступа к Grafana из веб-браузера |
grafana_api_url |
"{{ grafana_url }}" | URL для вызовов API в процессе провизионирования, если отличается от публичного URL. См. этот вопрос. |
grafana_domain |
"{{ ansible_fqdn | default(ansible_host) | default('localhost') }}" | Настройка используется только в качестве части параметра root_url . Полезно при использовании GitHub или Google OAuth |
grafana_server |
{ protocol: http, enforce_domain: false, socket: "", cert_key: "", cert_file: "", enable_gzip: false, static_root_path: public, router_logging: false } | Секция конфигурации сервер |
grafana_security |
{ admin_user: admin, admin_password: "" } | Секция конфигурации безопасности |
grafana_database |
{ type: sqlite3 } | Секция конфигурации базы данных |
grafana_welcome_email_on_sign_up |
false | Отправить приветственное письмо после регистрации |
grafana_users |
{ allow_sign_up: false, auto_assign_org_role: Viewer, default_theme: dark } | Секция конфигурации пользователей |
grafana_auth |
{} | Секция конфигурации авторизации |
grafana_ldap |
{} | Секция конфигурации ldap. group_mappings развернуты, смотрите значения по умолчанию для примера |
grafana_session |
{} | Секция управления сессиями |
grafana_analytics |
{} | Конфигурация Google analytics |
grafana_smtp |
{} | Секция конфигурации smtp |
grafana_alerting |
{} | Секция конфигурации оповещений |
grafana_log |
{} | Секция конфигурации логов |
grafana_metrics |
{} | Секция конфигурации метрик |
grafana_tracing |
{} | Секция конфигурации трассировки |
grafana_snapshots |
{} | Секция конфигурации снимков |
grafana_image_storage |
{} | Секция конфигурации хранения изображений |
grafana_dashboards |
[] | Список дашбордов, которые должны быть импортированы |
grafana_dashboards_dir |
"dashboards" | Путь к локальной директории с файлами дашбордов в формате json |
grafana_datasources |
[] | Список источников данных, которые должны быть настроены |
grafana_environment |
{} | Дополнительные параметры окружения для установки Grafana, полезно, например, для установки http_proxy |
grafana_plugins |
[] | Список плагинов Grafana, которые должны быть установлены |
grafana_alert_notifications |
[] | Список каналов уведомлений об оповещениях, которые должны быть созданы, обновлены или удалены |
Пример источника данных:
grafana_datasources:
- name: prometheus
type: prometheus
access: proxy
url: 'http://{{ prometheus_web_listen_address }}'
basicAuth: false
Пример дашборда:
grafana_dashboards:
- dashboard_id: 111
revision_id: 1
datasource: prometheus
Пример канала уведомлений об оповещениях:
ПРИМЕЧАНИЕ: установка переменной grafana_alert_notifications
будет иметь эффект только тогда, когда grafana_use_provisioning
равен true
. Это означает, что новая система провизионирования с использованием конфигурационных файлов, доступная с версии Grafana v5.0, должна быть использована.
grafana_alert_notifications:
notifiers:
- name: Канал 1
type: email
uid: channel1
is_default: false
send_reminder: false
settings:
addresses: "[email protected]"
autoResolve: true
delete_notifiers:
- name: Канал 2
uid: channel2
Используйте пользовательский шаблон Yum репозитория Grafana:
Поместите ваш шаблон рядом с вашим плейбуком в папке
templates
.Используйте другой путь, чем путь по умолчанию, так как Ansible, при использовании относительного пути, сначала ищет шаблон в директории роли, а затем в директории плейбука.
Расширение шаблона будет помещено в
/etc/yum.repos.d/
и будет иметь имя, равноеbasename
пути шаблона без .j2.Пример:
grafana_yum_repo_template: my_yum_repos/grafana.repo.j2 # [playbook_dir]/templates/my_yum_repos/grafana.repo.j2 # будет помещен под # /etc/yum.repos.d/grafana.repo # на удаленном хосте
Поддерживаемые архитектуры ЦП
Исторически пакеты получались из разных каналов в зависимости от архитектуры ЦП. В частности, пакеты armv6/armv7 и aarch64/arm64 предоставлялись через неофициальные пакеты, распределяемые fg2it. Теперь, когда Grafana публикует официальные ARM сборки, все пакеты берутся из официальных Debian/Ubuntu или RPM пакетов.
Пример
Плейбук
Заполните поле пароля администратора на ваш выбор, веб-страница Grafana не будет запрашивать его изменение при первом входе.
- hosts: all
roles:
- role: cloudalchemy.grafana
vars:
grafana_security:
admin_user: admin
admin_password: введите_ваш_безопасный_пароль
Демонстрационный сайт
Мы предоставляем демонстрационный сайт для полного решения мониторинга на основе prometheus и grafana. Репозиторий с кодом и ссылками на работающие экземпляры доступен на github, а сайт размещён на DigitalOcean.
Локальное Тестирование
Предпочтительный способ локального тестирования роли - использовать Docker и molecule (v2.x). Вам нужно будет установить Docker на вашу систему. См. "Начало работы" для получения подходящего пакета Docker для вашей системы. Мы используем tox, чтобы упростить процесс тестирования на нескольких версиях ansible. Для установки tox выполните:
pip3 install tox
Чтобы запустить тесты на всех версиях ansible (ПРЕДУПРЕЖДЕНИЕ: это может занять некоторое время)
tox
Чтобы выполнить пользовательскую команду молекулы в пользовательской среде с только стандартным сценарием тестирования:
tox -e py35-ansible28 -- molecule test -s default
Для получения дополнительной информации о молекуле перейдите в их документацию.
Если вы хотите запускать тесты на удаленном хосте Docker, просто укажите переменную DOCKER_HOST
перед запуском тестов tox.
Travis CI
Сочетание молекулы и travis CI позволяет нам тестировать, как новые PR будут работать с несколькими версиями ansible и несколькими операционными системами. Это также позволяет создавать тестовые сценарии для различных конфигураций ролей. В результате у нас есть довольно большая тестовая матрица, что может занять больше времени, чем локальное тестирование, так что, пожалуйста, проявите терпение.
Сотрудничество
Смотрите руководство для участников.
Устранение неполадок
Смотрите устранение неполадок.
Лицензия
Этот проект лицензирован под лицензией MIT. См. LICENSE для получения подробностей.
Grafana - platform for analytics and monitoring
ansible-galaxy install cloudalchemy/ansible-grafana