Настройка источника данных InfluxDB
В этом документе объясняется, как настроить источник данных InfluxDB, и описываются доступные параметры конфигурации.
Ключевые концепции
Если вы только начинаете работать с InfluxDB, эти термины будут встречаться по всему разделу о настройке:
Прежде чем начать
Для настройки источника данных InfluxDB у вас должна быть роль Administrator.
Grafana и Grafana Cloud не предоставляют хостинговый сервис InfluxDB. Источник данных подключается к экземпляру InfluxDB, который вы запускаете и обслуживаете сами, либо к одному из облачных продуктов InfluxData. Перед настройкой источника данных у вас должен быть работающий экземпляр InfluxDB.
InfluxData предоставляет три языка запросов:
- SQL — стандартный язык запросов SQL для InfluxDB 3.x и более новых облачных продуктов (Cloud Serverless, Cloud Dedicated, Clustered). InfluxData рекомендует SQL для новых развёртываний. Он поддерживает JOIN, подзапросы и стандартные функции SQL. Полный список поддерживаемых инструкций, операторов и функций приведён в справочнике по SQL в InfluxDB.
- InfluxQL — язык запросов, похожий на SQL, разработанный InfluxData и доступный во всех версиях InfluxDB. InfluxQL не поддерживает такие сложные возможности, как JOIN. Подробности см. в справочнике по InfluxQL.
- Flux — функциональный язык сценариев обработки данных для InfluxDB 2.x. Flux не поддерживается в InfluxDB 3.x. Базовое руководство см. в разделе Query InfluxDB with Flux.
Note
Если вы переносите данные с InfluxDB 1.x или 2.x на InfluxDB 3.x, InfluxData рекомендует выбрать в качестве языка запросов SQL. В руководстве по миграции от InfluxData описано, как перенести данные и запросы.
Если вы не уверены, какой продукт InfluxDB используете, воспользуйтесь инструментом определения продукта InfluxDB от InfluxData.
Добавление источника данных InfluxDB
Чтобы настроить новый источник данных InfluxDB, выполните следующие шаги:
- В меню слева нажмите Connections.
- Нажмите Add new connection.
- Введите
InfluxDBв строке поиска. - Выберите источник данных InfluxDB.
- В правом верхнем углу нажмите Add new data source.
Note
Заполните обязательные параметры подключения и нажмите Save & test, прежде чем переименовывать источник данных. Если переименовать новый источник данных до сохранения, Grafana проверит всю конфигурацию и вернёт ошибку, поскольку поле URL всё ещё пустое.
Grafana откроет вкладку Settings, где настраивается источник данных. Боковая панель слева содержит ссылки для перехода к каждому разделу конфигурации:
- URL and authentication
- Database settings
- Private data source connect (необязательно, только для Grafana Cloud)
- Save & test
Параметры конфигурации
В следующих разделах описаны доступные параметры конфигурации.

Сначала настройте имя подключения.
- Name — задаёт имя, по которому вы будете ссылаться на источник данных в панелях и запросах. Примеры:
InfluxDB-InfluxQL,InfluxDB_SQL. - Default — переключатель, чтобы сделать источник данных используемым по умолчанию.
URL и аутентификация
Эти параметры задают экземпляр InfluxDB, к которому подключается источник данных.
- URL — протокол HTTP, IP-адрес и порт вашего API InfluxDB. Порт API InfluxDB по умолчанию —
8086. Когда вы вводите URL, Grafana пытается автоматически определить ваш продукт InfluxDB по шаблонам URL. Дополнительные сведения см. в разделе InfluxDB detection. - Product — выберите продукт InfluxDB, к которому вы подключаетесь. Доступные языки запросов зависят от выбранного продукта.
- Query language — выберите язык запросов для вашего экземпляра InfluxDB. От этого зависят сведения о подключении, необходимые в разделе Database settings. Доступны следующие варианты:
- Flux — функциональный язык сценариев обработки данных, разработанный InfluxData, который позволяет запрашивать данные, анализировать их и выполнять над ними действия. Рекомендации по использованию Flux см. в разделе Get started with Flux.
- InfluxQL — язык, похожий на SQL, для запросов к InfluxDB, с такими инструкциями, как SELECT, FROM, WHERE и GROUP BY, знакомыми пользователям SQL.
- SQL — нативный язык SQL, начиная с InfluxDB v3.0. Список поддерживаемых инструкций, операторов и функций см. в справочной документации по SQL от InfluxData.
В следующей таблице показано, какие языки запросов доступны для каждого продукта InfluxDB:
Note
Только для InfluxQL. Для следующих продуктов перед выполнением запросов к данным необходимо настроить Database + Retention Policy (DBRP) Mapping: InfluxDB OSS 1.x, InfluxDB OSS 2.x, InfluxDB Enterprise 1.x, InfluxDB Cloud (TSM), InfluxDB Cloud Serverless.
Указания по настройке с помощью CLI или API см. в разделе Manage DBRP Mappings.
Расширенные параметры HTTP
Включите Advanced HTTP Settings, чтобы развернуть дополнительные параметры, дающие больше контроля над источником данных.
- Allowed cookies — определяет, какие cookie передаются источнику данных. Все остальные cookie по умолчанию удаляются.
- Timeout — задаёт тайм-аут HTTP-запроса в секундах. Если значение не задано, Grafana использует параметр
timeoutиз разделаdataproxyфайла конфигурации, который по умолчанию равен30секундам. Увеличьте это значение, если сложные запросы или большие наборы результатов завершаются ошибками тайм-аута, напримерcontext deadline exceeded. Вычисления правил оповещений используют тот же тайм-аут, поэтому его увеличение также даёт запросам оповещений больше времени на выполнение.
Custom HTTP headers
Нажмите + Add header, чтобы добавить один или несколько HTTP-заголовков. HTTP-заголовки передают дополнительный контекст и метаданные о запросе/ответе.
- Header — добавьте собственный HTTP-заголовок. Выберите вариант из выпадающего списка. Позволяет передавать собственные заголовки в зависимости от потребностей вашего экземпляра InfluxDB.
- Value — значение заголовка.
Параметры аутентификации и TLS/SSL
Включите Auth and TLS/SSL Settings, чтобы развернуть параметры аутентификации и безопасности.
- No Authentication — делает источник данных доступным без аутентификации. Grafana рекомендует использовать какой-либо способ аутентификации.
- Basic auth — наиболее распространённый способ аутентификации. Используйте имя пользователя и пароль вашего экземпляра InfluxDB.
- Forward OAuth identity — передаёт дальше OAuth-токен доступа (а также OIDC ID token, если он доступен) пользователя, выполняющего запрос к источнику данных.
- With credentials — переключатель, разрешающий отправку учётных данных, таких как cookie или заголовки аутентификации, вместе с межсайтовыми запросами.
Сертификаты TLS/SSL шифруются и хранятся в базе данных Grafana.
- TLS client auth — при включении добавьте
Server name,Client certиClient key. Клиент предоставляет сертификат, который проверяет сервер, чтобы установить доверенную идентичность клиента. Ключ клиента шифрует данные между клиентом и сервером.- Server name — имя сервера. Пример:
server1.domain.com - Client cert — добавьте сертификат клиента.
- Client key — добавьте ключ клиента.
- Server name — имя сервера. Пример:
- CA cert — аутентификация с помощью сертификата CA. При включении следуйте инструкциям вашего CA (Certificate Authority) по загрузке файла сертификата.
- Skip TLS verify — переключатель для обхода проверки сертификата TLS.
Параметры базы данных
Note
Указание базы данных для этого источника данных не запрещает доступ к другим базам данных. Синтаксис запросов InfluxDB позволяет переключать базу данных в самом запросе. Например:
SHOW MEASUREMENTS ON _internalилиSELECT * FROM "_internal".."database" LIMIT 10Чтобы обеспечить изоляцию данных и безопасность, убедитесь, что в InfluxDB настроены соответствующие разрешения.
Эти параметры задают базу данных InfluxDB, к которой подключается источник данных. Обязательные поля зависят от языка запросов, выбранного в разделе URL and authentication.
В следующей таблице показано, какие поля обязательны для каждого языка запросов:
- Organization — задаёт организацию InfluxDB, используемую для запросов Flux. Также используется макросом запроса
v.organization. - Default Bucket — бакет InfluxDB, используемый макросом
v.defaultBucketв запросах Flux. - Database — задаёт имя базы данных для запросов. О том, как найти список доступных бакетов и соответствующих им идентификаторов, см. View buckets в документации InfluxData.
- User — имя пользователя для входа в InfluxDB.
- Password — пароль указанного пользователя. Используется с запросами InfluxQL.
- Token — токен аутентификации, используемый для запросов к InfluxDB. Получите его на странице Tokens в интерфейсе InfluxDB.
Для SQL
- Поле Database соответствует базе данных InfluxDB 3.x (эквивалент бакета).
- Используйте database token с доступом на чтение целевой базы данных. Для InfluxDB Cloud Serverless и Cloud Dedicated создайте токен в консоли управления InfluxDB или через CLI.
- Запросы SQL используют протокол FlightSQL (gRPC). Если ваш экземпляр InfluxDB не использует TLS, включите Insecure Connection в разделе Advanced Database Settings.
Для Flux
- В продуктах InfluxDB 2.x используйте токен аутентификации InfluxDB.
- Для InfluxDB 1.8 токен имеет вид
username:password.
Расширенные параметры базы данных
Включите Advanced Database Settings, чтобы развернуть дополнительные параметры, дающие больше контроля над работой с запросами.
- Max series — задаёт лимит на максимальное число серий или таблиц, обрабатываемых Grafana. Установите меньшее значение, чтобы предотвратить перегрузку системы, или увеличьте его, если у вас много небольших временных рядов и нужно отобразить больше из них. Значение по умолчанию —
1000.
Для Flux и InfluxQL
- Min time interval — задаёт минимальный интервал времени для автоматической группировки. Grafana рекомендует устанавливать его в соответствии с частотой записи данных. Например, если данные записываются каждую минуту, рекомендуется установить этот интервал в 1 минуту, чтобы каждая группа содержала данные из каждой новой записи. Значение по умолчанию —
10s. Примеры форматов см. в разделе Min time interval.
Для InfluxQL
- HTTP method — задаёт HTTP-метод, используемый для запросов к источнику данных. Метод POST позволяет выполнять более крупные запросы, которые вернули бы ошибку при использовании метода GET. Метод по умолчанию —
POST. - Autocomplete range — задаёт ограничение диапазона времени для автодополнения в редакторе запросов, чтобы сократить время выполнения запросов фильтрации по тегам. Теги, отсутствующие в заданном диапазоне времени, отфильтровываются. Например, значение
12hвключает только ключи и значения тегов за последние 12 часов. Эта возможность рекомендуется для очень больших баз данных, где можно наблюдать значительное повышение производительности.
Для SQL
- Insecure Connection — переключатель для отключения безопасности gRPC TLS.
Private data source connect
Только для Grafana Cloud. Private data source connect (PDC) позволяет установить приватное защищённое соединение между экземпляром Grafana Cloud и источниками данных, защищёнными внутри частной сети. Дополнительные сведения см. в разделе Private data source connect (PDC).
Нажмите Manage private data source connect, чтобы перейти на страницу подключения PDC, где вы найдёте сведения о конфигурации PDC.
Caution
При использовании PDC не задавайте URL InfluxDB как
127.0.0.1илиlocalhost. PDC туннелирует трафик через прокси SOCKS, который не может разрешать адреса обратной петли. Используйте IP-адрес машины в локальной сети или имя хоста, разрешаемое из сети, в которой работает агент PDC. Дополнительные сведения см. в разделе PDC connection fails with “no such host”.
Развёртывание агента PDC, настройка прокси, а также управление сетью и токенами описываются в документации по PDC, а не здесь. Установку см. в разделе Configure PDC, а ошибки агента, интерпретацию журналов и режимы отказа — в разделе Troubleshoot PDC issues.
Сохранить и проверить
После настройки параметров подключения нажмите Save & test, чтобы проверить подключение источника данных.
Успешная проверка возвращает одно из следующих сообщений в зависимости от языка запросов:
Если проверка не удалась, обратитесь к разделу Troubleshoot InfluxDB data source issues, где описано, как устранить типичные ошибки подключения и аутентификации.
Min time interval
Параметр Min time interval определяет нижнюю границу интервала времени для автоматической группировки.
Это значение должно быть отформатировано как число, за которым следует допустимый идентификатор времени:
Этот параметр также можно переопределить в панели дашборда в разделе параметров её источника данных.
Провижининг источника данных InfluxDB
Вы можете определить и настроить источник данных в файлах YAML в рамках системы провижининга Grafana. Дополнительные сведения о провижининге и доступных параметрах конфигурации см. в разделе Provision Grafana.
Note
Поле
databaseпризнано устаревшим. Grafana рекомендует использовать полеdbNameвjsonData. Менять существующие настройки провижининга не нужно.
Примеры провижининга
Провижининг отличается в зависимости от языка запросов.
Пример для InfluxDB 1.x:
apiVersion: 1
datasources:
- name: InfluxDB_v1
type: influxdb
access: proxy
user: grafana
url: http://localhost:8086
jsonData:
dbName: site
httpMode: GET
secureJsonData:
password: grafana
Пример для InfluxDB 2.x с Flux:
apiVersion: 1
datasources:
- name: InfluxDB_v2_Flux
type: influxdb
access: proxy
url: http://localhost:8086
jsonData:
version: Flux
organization: organization
defaultBucket: bucket
tlsSkipVerify: true
secureJsonData:
token: token
Пример для InfluxDB 2.x с InfluxQL:
apiVersion: 1
datasources:
- name: InfluxDB_v2_InfluxQL
type: influxdb
access: proxy
url: http://localhost:8086
jsonData:
dbName: site
httpHeaderName1: 'Authorization'
secureJsonData:
httpHeaderValue1: 'Token <token>'
Пример для InfluxDB 3.x с SQL:
apiVersion: 1
datasources:
- name: InfluxDB_v3_SQL
type: influxdb
access: proxy
url: http://localhost:8086
jsonData:
version: SQL
dbName: site
httpMode: POST
insecureGrpc: false
secureJsonData:
token: '<api-token>'
Настройка источника данных с помощью Terraform
Источник данных InfluxDB можно настроить с помощью провайдера Grafana для Terraform.
Предварительные требования Terraform
Перед началом вам потребуется:
- Установленный Terraform
- Провайдер Grafana для Terraform, настроенный с соответствующими учётными данными
- Для Grafana Cloud: токен Cloud Access Policy с разрешениями на источники данных
Настройка провайдера
Настройте провайдер Grafana для подключения к вашему экземпляру Grafana:
terraform {
required_providers {
grafana = {
source = "grafana/grafana"
version = ">= 2.0.0"
}
}
}
# For Grafana Cloud
provider "grafana" {
url = "<YOUR_GRAFANA_CLOUD_STACK_URL>"
auth = "<YOUR_SERVICE_ACCOUNT_TOKEN>"
}
# For self-hosted Grafana
# provider "grafana" {
# url = "http://localhost:3000"
# auth = "<API_KEY_OR_SERVICE_ACCOUNT_TOKEN>"
# }
Примеры Terraform
В следующих примерах показано, как настроить источник данных InfluxDB для каждого языка запросов.
InfluxDB 2.x с Flux:
resource "grafana_data_source" "influxdb_flux" {
type = "influxdb"
name = "InfluxDB_Flux"
url = "http://localhost:8086"
json_data_encoded = jsonencode({
version = "Flux"
organization = "<ORGANIZATION>"
defaultBucket = "<DEFAULT_BUCKET>"
tlsSkipVerify = false
})
secure_json_data_encoded = jsonencode({
token = "<API_TOKEN>"
})
}
InfluxDB 1.x с InfluxQL:
resource "grafana_data_source" "influxdb_influxql" {
type = "influxdb"
name = "InfluxDB_InfluxQL"
url = "http://localhost:8086"
basic_auth_enabled = true
basic_auth_username = "<USERNAME>"
json_data_encoded = jsonencode({
dbName = "<DATABASE>"
httpMode = "POST"
})
secure_json_data_encoded = jsonencode({
basicAuthPassword = "<PASSWORD>"
})
}
InfluxDB 2.x с InfluxQL (аутентификация по токену):
resource "grafana_data_source" "influxdb_v2_influxql" {
type = "influxdb"
name = "InfluxDB_v2_InfluxQL"
url = "http://localhost:8086"
json_data_encoded = jsonencode({
dbName = "<DATABASE>"
httpHeaderName1 = "Authorization"
})
secure_json_data_encoded = jsonencode({
httpHeaderValue1 = "Token <API_TOKEN>"
})
}
InfluxDB 3.x с SQL:
resource "grafana_data_source" "influxdb_sql" {
type = "influxdb"
name = "InfluxDB_SQL"
url = "http://localhost:8086"
json_data_encoded = jsonencode({
version = "SQL"
dbName = "<DATABASE>"
httpMode = "POST"
insecureGrpc = false
})
secure_json_data_encoded = jsonencode({
token = "<API_TOKEN>"
})
}
Дополнительные сведения о провайдере Grafana для Terraform см. в документации провайдера Terraform.