Перейти к основному содержанию
 

Zabbix шаблон для мониторинга Microsoft SQL Server 2014

Microsoft SQL Server

Делюсь полезным шаблоном для мониторинга Microsoft SQL Server 2014. Ось - Windows Server 2012 R2.

В шаблоне 70 элементов данных и 23 триггера. Плюс 11 прототипов элементов данных и 3 прототипа триггеров.

Скачать шаблон: zabbix шаблон MSSQL 2014.

Ещё полезно: Zabbix шаблон для мониторинга Jobs у Microsoft SQL Server 2014.

Дополнительно может понадобиться добавить в Administration > General > Regular expressions следующее регулярное выражение:

Name: Databases for discovery
Expression: ^(master|model|msdb|ReportServer|ReportServerTempDB|tempdb)$
Type: Result is FALSE

Также на сервере нужно настроить пользовательские параметры и залить ps скрипты для получения данных из базы.

Шаблон был сделан на основе https://share.zabbix.com/databases/microsoft-sql-server/ms-sql-2012-2016-template-for-zabbix-3-2-3-4. Скачать используемую мной версию: zbx-mssql-master.zip.

Мой шаблон имеет некоторые отличия, опишу как я модифицировал шаблон и почему. Также расскажу как добавить в него свои элементы данных.

Установка и модификация шаблона

Сначала скачиваем zbx-mssql-master.zip по ссылке выше или прямо из этой статьи. Возможно, в исходнике будет уже более полная версия. Архив содержит инструкцию по установке, опишу как действовал я. Распаковываем архив.

zabbix mssql 2014

На вашем MSSQL сервере редактируем файл конфигурации zabbix агента zabbix_agentd.win.conf. Добавляем строку 

Include=C:\zabbix\conf\userparameter_mssql.conf

Собственно, вы можете указать свой собственный путь, который вам нужен.

zabbix mssql 2014

Файл userparameter_mssql.conf копируем из архива по указанному в Include пути.

zabbix mssql 2014

Редактируем скопированный userparameter_mssql.conf. В нём есть два пользовательских параметра:

zabbix mssql 2014

Пути к скриптам mssql_basename.ps1 и mssql_version.ps1 меняем на свои.

zabbix mssql 2014

Копируем папку scripts из архива по указанному вами пути.

zabbix mssql 2014

В zabbix добавляем регулярное выражение в Administration > General > Regular expressions:

Name: MS SQL Databases for discovery
Expression: ^(master|model|msdb|ReportServer|ReportServerTempDB|tempdb)$
Type: Result is FALSE

Внимание: на сайте с исходным шаблоном и в инструкции совершена ошибка, название регулярки должно быть "MS SQL Databases for discovery", а не "Databases for discovery"!

zabbix mssql 2014

zabbix mssql 2014

Примечание: Если вы собираетесь использовать мой модифицированный шаблон, то добавлять value mapping нет необходимости. Если же вы планируете использовать исходный шаблон, то добавляйте.

Импортируем value mapping из файла zbx_valuemaps_mssql.xml

zabbix mssql 2014

zabbix mssql 2014

zabbix mssql 2014

zabbix mssql 2014

Дальше импортируем сам шаблон. Или мой модифицированный zbx_mssql_2014.xml или исходный из архива zbx_template_mssql.xml.

zabbix mssql 2014

zabbix mssql 2014

Шаблон появляется в списке. Модифицированный шаблон имеет в названии 2014.

zabbix mssql 2014

Модифицируем файл mssql_basename.ps1. Прописываем пользователя и пароль для доступа к базе данных.

zabbix mssql 2014

Перезапускаем zabbix agent.

zabbix mssql 2014

Своему хосту добавляем свежесозданный шаблон.

zabbix mssql 2014

Если вы используете исходный шаблон, то внесите изменения в несколько элементов данных. Проверьте все элементы шаблона, которые содержат в названии "(KB)".

zabbix mssql 2014

Отредактируйте каждый.

zabbix mssql 2014

Зайдите во вкладку Preprocessing. Если нет Custom multiplier, то добавьте его со значением 1024. Я нашёл три таких "забытых" элемента данных.

zabbix mssql 2014

Я в своём шаблоне уже внёс исправления, иначе будет неверно отределяться размер файлов данных и лога транзакций каждой базы. На рисунке верхний элемент уже исправлен, у него размер исчисляется гигабайтами. А нижние два - не исправлены, размер в мегабайтах и килобайтах, что на порядок неверно. 

zabbix mssql 2014

После исправления:

zabbix mssql 2014

Если вы используете исходный шаблон, то найдите сломанный элемент данных как на рисунке и измените тип на Numeric (float).

zabbix mssql 2014

В моём шаблоне это уже исправлено.

zabbix mssql 2014

zabbix mssql 2014

Я ещё внес несколько изменений в исходный шаблон. В частности, удалил элемент данных и триггер связанный с получением статуса каждой базы данных через ODBC. Ибо нечего заббиксу иметь доступ к базе данных, кто это вообще придумал... Я переживу отсутствие этого элемента данных. Данный шаг позволил грохнуть требуемый value mapping. Если вы со мной согласны - можете его тоже удалить. 

Также я удалил следующие элементы данных и триттеры:

zabbix mssql 2014

Они делают следующее, как только лог базы данных пару раз увеличивается - триггер срабатывает. И всегда висит, потому что это счётчик, он не уменьшается. Зачем был нужен такой триггер - не понимаю. Со сжатием лога - то же самое, только он срабатывал после 15-го сжатия. У меня БД ежедневно жмётся и увеличивается. Для режима FULL это просто необходимо, иначе место на диске закончится. Так что не увидел смысла в этих триггерах.

Свои элементы данных

Я обещал рассказать про возможность добавлять свои элементы данных. Всё очень просто. Данный шаблон использует виндовые счётчики производительности, которые ставятся вместе с MSSQL сервером. Но не все. Вы можете добавлять свои, из списка имеющихся. Список счётчиков производительности и объектов можно увидеть здесь: https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/use-sql-server-objects.

К примеру, прототип элемента данных perf_counter["\SQLServer:Databases({#DBNAME})\Active Transactions"] использует счётчик Active Transactions объекта Databases.

zabbix mssql 2014

Клонируете текущий элемент данных и вписываете из списка требуемый счётчик.

 

Теги

Комментарии