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

    Сьогодні ми б хотіли написати про чергову фиче нашого сервісу — моніторингу баз даних .
Існує безліч різних сервісів і метрик, які допомагають збирати інформацію про кількості відвідувань сайту, суми продажів та інших важливих для бізнесу показників. Але якщо потрібно ці показники якось між собою порівняти? Або ж виникне необхідність перевіряти більш «технічні» значення, наприклад, приріст бази?
 
 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. Отримуємо таку картинку:
 image
3. Вибираємо потрібні параметри:
 
Результат запиту — «значення у першій колонці першого рядка»
 
Перевірка результату — «менше, ніж» і вводимо в поле значення «1000».
 
 Результат — якщо лог файл перевищить 1 Гб, ми отримаємо оповіщення. Крім того, можна переглянути історію — як швидко і коли саме спостерігається приріст.
 
 

Налаштування моніторингу

 image
 
При налаштуванні, необхідно задати адресу сервера, порт, назва бази, логін і пароль користувача , під яким буде виконуватися запит. Строго рекомендується створити окремого користувача з обмеженими правами , на всякий випадок. І в той же час не забути дати йому права на ті дії, які йому передбачається здійснювати. Також необхідно додати адреси серверів ХостТрекера, звідки будуть проводитися перевірки, в білий список файрволу і сервера БД , щоб забезпечити доступ до бази. Адреси вказані тут же, вони постійні.
 
 
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.