community.grafana.grafana_datasource – Управление источниками данных Grafana
Примечание
Этот плагин входит в коллекцию community.grafana (версия 1.1.0).
Для установки используйте: ansible-galaxy collection install community.grafana.
Чтобы использовать его в книге задач, укажите: community.grafana.grafana_datasource.
Обзор
- Создание/обновление/удаление источников данных Grafana через API.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| access строка |
| Режим доступа для этого источника данных. |
| additional_json_data словарь | Значение по умолчанию: {} | Определённые данные используются для jsonData источника данных. Данные могут быть перезаписаны специально определёнными параметрами (например, zabbix_user). |
| additional_secure_json_data словарь | Значение по умолчанию: {} | Определённые данные используются для secureJsonData источника данных. Данные могут быть перезаписаны специально определёнными параметрами (например, tls_client_cert). Хранится как защищённые данные, см. enforce_secure_data и примечания! |
| aws_access_key строка | Значение по умолчанию: "" | Ключ доступа AWS для типа источника данных CloudWatch, когда aws_auth_type равен keys.
|
| aws_assume_role_arn строка | Значение по умолчанию: "" | ARN роли AWS IAM для принятия роли для типа источника данных CloudWatch, когда aws_auth_type равен arn.
|
| aws_auth_type строка |
| Тип для аутентификации AWS для типа источника данных CloudWatch (authType API Grafana). |
| aws_credentials_profile строка | Значение по умолчанию: "" | Профиль для AWS credentials для типа источника данных CloudWatch, когда aws_auth_type равен credentials.
|
| aws_custom_metrics_namespaces строка | Значение по умолчанию: "" | Имена пространств пользовательских метрик для типа источника данных CloudWatch. |
| aws_default_region строка |
| Регион AWS по умолчанию для типа источника данных CloudWatch. |
| aws_secret_key строка | Значение по умолчанию: "" | Секретный ключ AWS для типа источника данных CloudWatch, когда aws_auth_type равен keys.
|
| basic_auth_password строка | Пароль для аутентификации basic auth источника данных, когда basic auth равен yes. | |
| basic_auth_user строка | Пользователь для аутентификации basic auth источника данных. Установка этого параметра вместе с basic_auth_password включит basic auth. | |
| client_cert путь | Файл цепочки сертификатов в формате PEM для аутентификации клиента SSL. Этот файл также может содержать ключ, и если ключ включён, client_key не требуется. | |
| client_key путь | Файл в формате PEM, содержащий ваш закрытый ключ для аутентификации клиента SSL. Если client_cert содержит как сертификат, так и ключ, этот параметр не требуется. | |
| database строка | Имя базы данных для источника данных. Этот параметр обязателен, когда ds_type равен influxdb, elasticsearch (имя индекса), mysql или postgres. | |
| ds_type строка / обязательно |
| Тип источника данных. |
| ds_url строка / обязательно | URL источника данных. | |
| enforce_secure_data булево |
| Защищённые данные не обновляются по умолчанию (см. примечания!). Чтобы обновить защищённые данные, необходимо включить этот параметр! Включив его, задача всегда будет сообщать changed=True |
| es_version целое число |
5 | Версия Elasticsearch (только для ds_type = elasticsearch).Версия 56 предназначена для Elasticsearch 5.6+ где можно указать параметр max_concurrent_shard_requests. |
| grafana_api_key строка | Ключ API Grafana. Если задан, url_username и url_password будут проигнорированы. | |
| interval строка |
| Для elasticsearch ds_type, это шаблон индекса, который используется. |
| is_default булево |
| Сделать этот источник данных по умолчанию. |
| max_concurrent_shard_requests целое число | Значение по умолчанию: 256 | Начиная с Elasticsearch 5.6, вы можете указать максимальное количество одновременных запросов к фрагментам. |
| name строка / обязательно | Название источника данных. | |
| org_id целое число | Значение по умолчанию: 1 | Идентификатор организации Grafana, в которой должен быть создан источник данных. Не используется, когда grafana_api_key задано, так как grafana_api_key принадлежит только одной организации. |
| password строка | Пароль для входа в источник данных. Для зашифрованного пароля используйте additional_secure_json_data.password. | |
| sslmode строка |
| Режим SSL для postgres типа источника данных. |
| state строка |
| Статус источника данных |
| time_field строка | Значение по умолчанию: "@timestamp" | Имя поля времени в источнике данных elasticsearch. Например @timestamp. |
| time_interval строка | Минимальный интервал группировки для influxdb или elasticsearch источников данных.Например >10s. | |
| tls_ca_cert строка | Сертификат TLS CA для самозаверенных сертификатов. Используется только когда tls_client_cert и tls_client_key установлены.Хранится как защищённые данные, см. enforce_secure_data и примечания! | |
| tls_client_cert строка | Сертификат клиента TLS. Если tls_client_cert и tls_client_key установлены, это включит TLS аутентификацию.Начинается с ----- BEGIN CERTIFICATE ----- Хранится как защищённые данные, см. enforce_secure_data и примечания! | |
| tls_client_key строка | Закрытый ключ клиента TLS Начинается с ----- BEGIN RSA PRIVATE KEY ----- Хранится как защищённые данные, см. enforce_secure_data и примечания! | |
| tls_skip_verify булево |
| Пропустить проверку сертификата TLS источника данных. |
| trends булево |
| Использовать тренды или нет для типа источника данных zabbix. |
| tsdb_resolution строка |
| Разрешение времени opentsdb. |
| tsdb_version целое число |
1 | Версия opentsdb. Использовать 1 для <=2.1, 2 для ==2.2, 3 для ==2.3. |
| url строка / обязательно | URL Grafana. псевдонимы: grafana_url | |
| url_password строка | Значение по умолчанию: "admin" | Пароль Grafana для аутентификации API. псевдонимы: grafana_password |
| url_username строка | Значение по умолчанию: "admin" | Пользователь Grafana для аутентификации API. псевдонимы: grafana_user |
| use_proxy булево |
| Если no, прокси не будет использоваться, даже если он определён в переменной среды на целевых хостах. |
| user строка | Логин пользователя для входа в источник данных influxdb. |
| validate_certs boolean |
| Если no, сертификаты SSL не будут проверены.Это следует устанавливать только для no, используемых на сайтах, контролируемых лично, с использованием самозаверенных сертификатов. |
| with_credentials boolean |
| Следует ли отправлять учетные данные, такие как куки или заголовки аутентификации, вместе с межсайтовыми запросами. |
| zabbix_password string | Пароль для API Zabbix | |
| zabbix_user string | Пользователь для API Zabbix |
Примечания
Примечание
- Защищенные данные будут зашифрованы API Grafana, поэтому их нельзя сравнить при последующих запусках. Чтобы обойти это, защищенные данные не будут обновляться после первоначального создания! Чтобы принудительно обновить защищенные данные, необходимо установить enforce_secure_data=True.
- Учитывая, что с
enforce_secure_dataвсегда сообщается changed=True, вы можете просто выполнить одну задачу по обновлению источника данных без каких-либо защищенных данных и создать отдельный плейбук/задачу, также изменяющую защищенные данные. Таким образом, вы не нарушите рабочий процесс.
Примеры
---
- name: Create elasticsearch datasource
community.grafana.grafana_datasource:
name: "datasource-elastic"
grafana_url: "https://grafana.company.com"
grafana_user: "admin"
grafana_password: "xxxxxx"
org_id: "1"
ds_type: "elasticsearch"
ds_url: "https://elastic.company.com:9200"
database: "[logstash_]YYYY.MM.DD"
basic_auth_user: "grafana"
basic_auth_password: "******"
time_field: "@timestamp"
time_interval: "1m"
interval: "Daily"
es_version: 56
max_concurrent_shard_requests: 42
tls_ca_cert: "/etc/ssl/certs/ca.pem"
- name: Create influxdb datasource
community.grafana.grafana_datasource:
name: "datasource-influxdb"
grafana_url: "https://grafana.company.com"
grafana_user: "admin"
grafana_password: "xxxxxx"
org_id: "1"
ds_type: "influxdb"
ds_url: "https://influx.company.com:8086"
database: "telegraf"
time_interval: ">10s"
tls_ca_cert: "/etc/ssl/certs/ca.pem"
- name: Create postgres datasource
community.grafana.grafana_datasource:
name: "datasource-postgres"
grafana_url: "https://grafana.company.com"
grafana_user: "admin"
grafana_password: "xxxxxx"
org_id: "1"
ds_type: "postgres"
ds_url: "postgres.company.com:5432"
database: "db"
user: "postgres"
sslmode: "verify-full"
additional_json_data:
timescaledb: false
additional_secure_json_data:
password: "iampgroot"
- name: Create cloudwatch datasource
community.grafana.grafana_datasource:
name: "datasource-cloudwatch"
grafana_url: "https://grafana.company.com"
grafana_user: "admin"
grafana_password: "xxxxxx"
org_id: "1"
ds_type: "cloudwatch"
ds_url: "http://monitoring.us-west-1.amazonaws.com"
aws_auth_type: "keys"
aws_default_region: "us-west-1"
aws_access_key: "speakFriendAndEnter"
aws_secret_key: "mel10n"
aws_custom_metrics_namespaces: "n1,n2"
- name: grafana - add thruk datasource
community.grafana.grafana_datasource:
name: "datasource-thruk"
grafana_url: "https://grafana.company.com"
grafana_user: "admin"
grafana_password: "xxxxxx"
org_id: "1"
ds_type: "sni-thruk-datasource"
ds_url: "https://thruk.company.com/sitename/thruk"
basic_auth_user: "thruk-user"
basic_auth_password: "******"
# handle secure data - workflow example
# this will create/update the datasource but dont update the secure data on updates
# so you can assert if all tasks are changed=False
- name: create prometheus datasource
community.grafana.grafana_datasource:
name: openshift_prometheus
ds_type: prometheus
ds_url: https://openshift-monitoring.company.com
access: proxy
tls_skip_verify: true
additional_json_data:
httpHeaderName1: "Authorization"
additional_secure_json_data:
httpHeaderValue1: "Bearer ihavenogroot"
# in a separate task or even play you then can force to update
# and assert if each datasource is reporting changed=True
- name: update prometheus datasource
community.grafana.grafana_datasource:
name: openshift_prometheus
ds_type: prometheus
ds_url: https://openshift-monitoring.company.com
access: proxy
tls_skip_verify: true
additional_json_data:
httpHeaderName1: "Authorization"
additional_secure_json_data:
httpHeaderValue1: "Bearer ihavenogroot"
enforce_secure_data: true
Возвращаемые значения
Общие значения возврата документированы здесь, следующие являются полями, уникальными для данного модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| datasource dictionary | changed | Источник данных, созданный/обновленный модулем Пример: {'access': 'proxy', 'basicAuth': False, 'database': 'test_*', 'id': 1035, 'isDefault': False, 'jsonData': {'esVersion': 5, 'timeField': '@timestamp', 'timeInterval': '10s'}, 'name': 'grafana_datasource_test', 'orgId': 1, 'password': '', 'secureJsonFields': {'JustASecureTest': True}, 'type': 'elasticsearch', 'url': 'http://elastic.company.com:9200', 'user': '', 'withCredentials': False} |
Авторы
- Thierry Sallé (@seuf)
- Martin Wang (@martinwangjian)
- Rémi REY (@rrey)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/grafana/grafana_datasource_module.html