Я использую входной плагин Telegraf для SQL Server (https://github.com/influxdata/telegraf/tree/master/plugins/inputs/sqlserver) для сбора метрик и создания отчетов для InfluxDB. Он хорошо работает для SQL Server, но, хотя он поддерживает базу данных SQL Azure, документация немного скудна.
Пользователь базы данных должен быть создан так:
CREATE LOGIN [telegraf] WITH PASSWORD = N'password';
GRANT VIEW SERVER STATE TO [telegraf];
GRANT VIEW ANY DEFINITION TO [telegraf];
Это работает на SQL Server, но в Azure происходит сбой:
Защищаемый класс 'server' не поддерживается в этой версии SQL Server.
Интересно, что мне нужно вместо этого дать, чтобы решить это наилучшим образом? У нас есть большое количество баз данных, работающих на одном и том же сервере в эластичном пуле, поэтому, если это возможно, я бы хотел использовать одного пользователя, который подключается к мастеру и собирает метрики для всех баз данных одновременно (как это работает) с SQL Server). Если это невозможно, я могу настроить несколько входов в систему и обрабатывать одну базу данных одновременно.
Возможно, я могу предоставить VIEW DEFINITION
на уровне базы данных, но VIEW SERVER STATE
, похоже, вообще не поддерживается.
Итак, как мне настроить логин базы данных SQL для Telegraf с помощью плагина SQL Server, чтобы он работал?
РЕДАКТИРОВАТЬ:
- Запуск от имени суперпользователя на сервере работает без ошибок, но создает метрики только для master и tempdb. Мне нужны показатели для многих баз данных приложений, и они отсутствуют. Плюс работа в качестве супер пользователя не идеальна.
- Запуск с правами суперпользователя на сервере, но подключение к конкретной базе данных приложения (добавление базы данных в строку подключения) приводит к сбою с разыменованием нулевого указателя, и журнал жалуется на то, что разрешение VIEW DATABASE STATE отклонено в хозяине базы данных (у суперпользователя есть доступ, но, по-видимому, не при подключении к специальной базе данных).
- Предоставление VIEW DATABASE и VIEW DEFINITION телеграфу в базе данных приложения и прямое подключение к этой базе данных в случае сбоя телеграфа с разыменованием нулевого указателя и в журнале говорится, что соединение было закрыто.
РЕДАКТИРОВАТЬ 2:
Создан отчет об ошибке https://github.com/influxdata/telegraf/issues/4222.
РЕДАКТИРОВАТЬ 3:
Начиная с последней версии плагин работает, если используется учетная запись администратора сервера, поэтому проблема была решена. В базе данных Azure по-прежнему нет возможности работать с менее привилегированной учетной записью.