Законспектирую еще один момент – как выполняется настройка мониторинга Microsoft SQL в Zabbix. Я буду использовать вот этот шаблон, который доступен уже “из коробки”.
Описание окружения
Версия сервера Zabbix – Zabbix 6.4.8.
Версия MS SQL сервера – SQL Server 2019 CU 23 (15.0.4335.1).
Имя экземпляра SQL – MSSQLSERVER (экземпляр по умолчанию).
Прослушиваемый TCP-порт – 1433.
Настройка мониторинга Microsoft SQL в Zabbix
Выполним настройку:
1. Сначала я создам отдельного SQL пользователя, от имени которого Zabbix будет подключаться к SQL серверу.
2. Также я включу проверку подлинности Windows и SQL в свойствах SQL сервера.
3. После изменения параметров аутентификации потребуется перезапуск сервиса SQL.
4. Назначьте необходимые разрешения для пользователя:
USE msdb;
CREATE USER zabbix FOR LOGIN zabbix;
GRANT SELECT ON OBJECT::msdb.dbo.sysjobs TO zabbix;
GRANT SELECT ON OBJECT::msdb.dbo.sysjobservers TO zabbix;
GRANT SELECT ON OBJECT::msdb.dbo.sysjobactivity TO zabbix;
GRANT EXECUTE ON OBJECT::msdb.dbo.agent_datetime TO zabbix;
USE master;
GRANT VIEW SERVER STATE TO zabbix;
GRANT VIEW ANY DEFINITION to zabbix;
5. Установить ODBC драйвер. На моем сервере Zabbix установлена ОС Ubunt Server 22.04. Соответственно в моем случае команда по установке ODBC драйвера следующая:
if ! [[ "18.04 20.04 22.04 23.04" == *"$(lsb_release -rs)"* ]];
then
echo "Ubuntu $(lsb_release -rs) is not currently supported.";
exit;
fi
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install -y unixodbc-dev
6. Также нужно настроить ODBC подключение.
nano /etc/odbc.ini
Я добавлю следующие параметры подключения:
[SPS01]
Driver = ODBC Driver 18 for SQL Server
Server = 10.10.10.79
Port = 1433
TrustServerCertificate = yes
SPS01 – это имя подключения, которое необходимо будет указать в макросах при настройке шаблона. Можете указать любое. Server – IP-адрес сервера SQL. При необходимости скорректируйте порт для подключения.
7. Теперь соберем весь пазл воедино – добавим хост с MS SQL в Zabbix, привяжем шаблон и скорректируем макросы. Сначала я добавлю хост в мониторинг и привяжу шаблон “MSSQL by ODBC”.
8. Затем я скорректирую следующие макросы:
- {$MSSQL.DSN}
- {$MSSQL.PASSWORD}
- {$MSSQL.USER}
9. Сохраните внесенные изменения.
Проверка
Проще всего перейти в раздел с отображением последних полученных данных и выполнить проверку.
Пример успешного сбора данных с сервера MS SQL:
Настройка мониторинга Microsoft SQL в Zabbix завершена.
Если что-то пошло не так
Не всегда решение получается настроить так быстро, как хотелось бы. Такое бывает.
Первое, что я бы проверим – это доступность порта SQL сервера со стороны Zabbix сервера.
nc -zv 10.10.10.79 1433
Пример успешного подключения:
Connection to 10.10.10.79 1433 port [tcp/ms-sql-s] succeeded!
Также можно выполнить проверку подключения через ODBC драйвер напрямую:
isql -v SPS01 zabbix Qwerty123
Пример неудачного подключения:
[28000][unixODBC][Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Login failed for user 'zabbix'.
[ISQL]ERROR: Could not SQLConnect
Пример удачного подключения:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>