Настройка мониторинга Microsoft SQL в Zabbix

Законспектирую еще один момент – как выполняется настройка мониторинга 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> 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *