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 словарь | Значение по умолчанию: {} | Определенные данные используются для datasource jsonData Данные могут быть переопределены специально определенными параметрами (например, zabbix_user) |
| additional_secure_json_data словарь | Значение по умолчанию: {} | Определенные данные используются для datasource 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 для типа источника данных 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 равен yes. | |
| basic_auth_user строка | Пользователь аутентификации в базовом режиме для источника данных. Установка этого параметра вместе с basic_auth_password включит базовую аутентификацию. | |
| 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 boolean |
| Если no, прокси не будет использоваться, даже если он определен в переменной среды на целевых хостах. |
| user string | Пользователь для входа в источник данных 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/grafana/grafana_datasource_module.html