Всем привет, в этой статье мы с вами узнаем как настроить мониторинг MSSQL в Zabbix используя Zabbix Agent 2.(В примере использую Zabbix Server v.7.0.3, в других версиях всё выглядит +/- точно так же.)
Поехали. Первым делом вам необходимо скачать и импортировать шаблон MSSQL by Zabbix Agent 2 в Zabbix Server. Стоит обратить внимание что шаблон подходит только для версий 6.0, 6.4, 7.0 Zabbix Server!
Страница шаблона MSSQL by Zabbix Agent: тык
Следующим шагом мы должны установить Zabbix Agent 2 на сервер с MSSQL базой, дополнительно к Zabbix Agent 2 необходимо скачать и установить плагин Zabbix Agent 2 MSSQL. (Ссылка ведёт на скачивание плагина для версии Zabbix Agent 7.0.3, если у вас другая версия агента можете спуститься на ветку ниже и скачать плагин для своей версии).
Скачиваем файлик: zabbix_agent2_plugins-7.0.3-windows-amd64.msi
После скачивания файла запускаем его, нажимаем кнопочки Далее-Далее. В окне с выбором устанавливаемых плагинов можно убрать галочки с установки плагинов MongoDB и PostgreSQL, оставив только MSSQL plugin:
Готово. На текущем этапе у нас должен быть установлен и настроен Zabbix Agent 2, plugin mssql. ВАЖНО: После установки plugin mssql перейдите в «Службы» и перезапустите ваш Zabbix Agent 2.
Теперь приступаем к настройке MSSQL, для настройки нам потребуется войти в SSMS (SQL Server Management Studio), если вдруг на вашем сервере не установлен SSMS, необходимо загрузить его с сайта microsoft. После установки SSMS может потребовать перезагрузку сервера, не обращайте на это внимание, просто закройте окно с просьбой перезагрузки и можете запускать SSMS, всё будет работать.
Открываем SQL Server Management Studio и заходим под административным пользователем. Для мониторинга SQL нам нужно создать пользователя. Раскрываем вкладку Безопасность-Имена для входа (Security-logins), нажимаем правой кнопкой мыши и выбираем «Создать имя для входа» (New login):
В открывшемся окне указываем имя для входа, в моём случае: zabbixusr, ставим галочку «Проверка подлинности SQL Server», задаём пароль пользователя, снимаем галочку «Требовать использование политики паролей» (Пароль для пользователя создавайте всё равно сложный):
Слева переходим на вкладку «Роли Сервера» в данной вкладке у нас должна стоять единственная галочка «public»:
Далее переходим на вкладку «Сопоставление пользователей». На данной вкладке обязательно ставим галочку напротив базы msdb, а так же ставим галочки напротив тех баз, параметры которых вы хотите мониторить в Zabbix (Членство в роли б.д.: public):
Переходим на вкладку «Защищаемые объекты»: нажимаем кнопку «Найти», добавляете свой сервер SQL, , внизу ставим галочки напротив следующих разрешений: «Просмотр любого определения» и «Просмотр состояния сервера». (В англ. версии: View Server State and View Any Definition):
Переходим на вкладку «Состояние», должны быть установлены чекбоксы «Предоставить» и «Включено», (в англ. версии: «Grant» «Enabled»), нажимаем кнопочку «ОК»:
С созданием пользователя закончили. Переходим в Базы данных-Системные базы данных-msdb, кликаем правой кнопкой мыши и нажимаем: «Создать запрос»:
В качестве SQL-запроса вставляем следующее:
USE msdb;
GRANT SELECT ON OBJECT::msdb.dbo.sysjobs TO zabbixusr;
GRANT SELECT ON OBJECT::msdb.dbo.sysjobservers TO zabbixusr;
GRANT SELECT ON OBJECT::msdb.dbo.sysjobhistory TO zabbixusr;
GRANT SELECT ON OBJECT::msdb.dbo.sysjobactivity TO zabbixusr;
GRANT EXECUTE ON OBJECT::msdb.dbo.agent_datetime TO zabbixusr;
GO
Если создавали пользователя отличного от моего «zabbixusr», замените его в SQL-запросе, нажимаем кнопку «Выполнить»:
После выполнения в окне ниже мы должны получить ответ об успешном выполнении:
Последний этап настройки SQL: Кликаем правой кнопкой мыши по SQL Server, переходим на вкладку: «Свойства»:
В открывшемся окне бежим на вкладку «Безопасность» тут должна быть установлена галочка «Проверка подлинности SQL Server и Windows». Если эта настройка у вас уже включена, пропустите следующий шаг:
Если вы только что установили галочку «Проверка подлинности SQL Server и Windows» (Она у вас была не активна до этого), тогда вам необходимо перезапустить MSSQL сервер (Данная настройка вступит в силу только после перезагрузки SQL). Для этого кликаем правой кнопкой мыши по серверу, нажимаем кнопку: «Перезапустить»:
Настройка SQL Server закончена. Теперь нам необходимо узнать на каком порту в данный момент работает SQL Server. Один из простых способов как это посмотреть — зайти в реестр, посетив ветку:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\**Имя вашего SQL Server**\MSSQLServer\SuperSocketNetLib\Tcp
Запомните номер порта вашего SQL-Server. По-умолчанию SQL Server работает на 1433 порту, в этом случае путь до номера порта в реестре будет как на фото ниже:
Если вдруг у вас возникли трудности используя мой метод определения номера порта MSSQL посетите данную статью.
Переходим к настройке со стороны Zabbix Server, импортируем шаблон «MSSQL by Zabbix agent 2», привязываем к хосту с MSSQL сервером и настраиваем макросы, Макросы которые должны быть настроены для мониторинга MSSQL Server:
{$MSSQL.HOST} — указывайте локальный ip-адрес вашего SQL Server
{$MSSQL.USER} — указываем имя пользователя созданного нами ранее в MSSQL. (zabbixusr в моём случае)
{$MSSQL.PASSWORD} — указываем пароль пользователя созданного нами ранее в MSSQL.
{$MSSQL.PORT} — указываем порт MSSQL Server (Данный макрос используется для проверки доступности сервера MSSQL)
{$MSSQL.URI} — тут нам необходимо указать URI адрес до нашего SQL Server, значение должно быть следующим: sqlserver://**ip-address SQL Server**:**порт SQL Server** (** — лишние).
Для большей наглядности посмотрите на фото ниже:
После проделанных настроек можете перейти на вкладку «Discovery» вашего хоста к которому привязан шаблон MSSQL вручную выделить все правила Discovery которые относятся к MSSQL by Zabbix Agent 2 шаблону и нажать кнопочку «Execute Now». После проделанных действий данные должны начать поступать в Zabbix. А в логе Zabbix Agent должно появиться сообщение вот такого плана:
2024/08/28 14:26:00.062049 [MSSQL] Creating new connection to «sqlserver://192.168.252.254:1433», with user «zabbixusr» to database «», with CA certificate «», trust server certificate «», host name in certificate «» encrypt «», TLS min version «»
Надеюсь данная статья помогла реализовать вам мониторинг базы MSSQL используя Zabbix Agent 2. Если вдруг возникли какие-то проблемы с настройкой дайте обратную связь. Форма для отправки комментариев находится ниже под статьей.