Мониторинг баз данных ХостТрекером

Сегодня мы бы хотели написать об очередной фиче нашего сервиса — мониторинге баз данных.Существует множество различных сервисов и метрик, которые помогают собирать информацию о количествах посещений сайта, сумме продаж и других важных для бизнеса показателей. Но если нужно эти показатели как-то между собой сравнить? Или же возникнет необходимость проверять более «технические» значения, например, прирост базы? image

ХостТрекер предлагает функцию для решения подобных задач — мониторинг БД.

Настройка запросаЭта функция позволяет при каждой проверке исполнять определенный запрос к базе данных, и заданным образом обрабатывать ее результат. Если запрос не задать — будет тестироваться возможность подключения к базе. Самое интересное — возможность с заданным интервалом исполнять определенный запрос, сохранять и сравнивать результат. Запрос может быть любой — от простых выборок до регулярных апдейтов таблиц, запуска процедур (вместо планировщика), разнообразных сравнений и логических операций. Единственное ограничение — он должен выполняться за 30 секунд, иначе будет возвращена ошибка (таймаут). Каким образом эти данные можно анализировать? image

Рекомендуется писать такие запросы, которые возвращают нужное значение в первой колонке первой строки результата. Именно это значение можно анализировать. Для запросов типа UPDATE, INSERT, DELETE фиксируется количество обработанных строк.

Например, график результата выполнения DELETE по определенным параметрам:

image

Каждый результат запроса записывается, последний показывается в таблице заданий на интерфейсе. Если значение числовое — по нему строится график и можно отследить его поведение. Есть возможность выбрать условия для сравнения этого результата — оно может быть равно/не равно определенному значению, превышать его, находиться в заданном диапазоне или вне его.Если условие не выполнено, или же запрос не прошел по причине таймаута, или же нет связи с БД — Вам придет оповещение (напомним, ХостТрекер поддерживает СМС, E-mail, Skype, Gtalk, голосовой звонок).

Пример использования Сценарий для отслеживания размера файлов БД и получения уведомлений при достижении определенного критического значения.1. Пишем запрос чтобы вытащить нужные нам данные о свободном месте в табличном пространстве: SELECT convert (DECIMAL (12,2), round (sysfile.size/128.000,2)) AS 'FileSize/mb' , convert (DECIMAL (12,2), round (fileproperty (sysfile.name,'SpaceUsed')/128.000,2)) AS 'Used/mb' , convert (DECIMAL (12,2), round ((sysfile.size-fileproperty (sysfile.name,'SpaceUsed'))/128.000,2)) AS 'Free/mb' , filegroup.groupname AS 'File-group' , sysfile.[name], sysfile.[filename] FROM dbo.sysfiles sysfile (NOLOCK) inner join dbo.sysfilegroups filegroup (NOLOCK) ON filegroup.groupid = sysfile.groupid UNION ALL SELECT convert (DECIMAL (12,2), round (sysfile.size/128.000,2)) AS 'FileSize/mb' , convert (DECIMAL (12,2), round (fileproperty (sysfile.name,'SpaceUsed')/128.000,2)) AS 'Used/mb' , convert (DECIMAL (12,2), round ((sysfile.size-fileproperty (sysfile.name,'SpaceUsed'))/128.000,2)) AS 'Free/mb' , (CASE WHEN sysfile.groupid = 0 THEN 'Log' END) AS 'File-group' , sysfile.[name], sysfile.[filename] FROM dbo.sysfiles sysfile (NOLOCK) WHERE groupid = 0 ORDER BY [File-group], sysfile.[name]2. Получаем такую картинку: image3. Выбираем нужные параметры: Результат запроса — «значение в первой колонке первой строки»

Проверка результата — «меньше, чем» и вводим в поле значения »1000».

Результат — если лог файл превысит 1 Гб, мы получим оповещение. Кроме того, можно просмотреть историю — как быстро и когда именно наблюдается прирост.

Настройка мониторинга imageПри настройке, необходимо задать адрес сервера, порт, название базы, логин и пароль пользователя, под которым будет исполняться запрос. Строго рекомендуется создать отдельного пользователя с ограниченными правами, на всякий случай. И в то же время не забыть дать ему права на те действия, которые ему предполагается совершать. Также необходимо добавить адреса серверов ХостТрекера, откуда будут проводиться проверки, в белый список файрвола и сервера БД, чтобы обеспечить доступ к базе. Адреса указаны тут же, они постоянные.

© Habrahabr.ru