Перейти до основного вмісту

Моніторинг Баз Даних за допомогою ХостТрекера

Від Bogdan Lepiavko

  • guide

Моніторинг Баз Даних за допомогою ХостТрекераВ даній статті ми б хотіли познайомити вас ще з однією цікавою та корисною функцією нашого сервісу - Перевірка баз даних (далі - БД).

Існує багато різних сервісів і метрик для збору та аналізу інформації про роботу ресурсу, як-от кількість відвідувачів, тривалість сесій, розподіл аудиторії за регіонами тощо. Але під час роботи з даними виникає потреба в порівнянні даних показників, а особливо більш «технічних» їх характеристик, наприклад, приросту бази.

Саме для отримання та оцінки таких параметрів, команда розробників та аналітиків ХостТрекера розробила простий для розуміння та використання інструмент – Перевірка БД.

Моніторинг Баз Даних за допомогою ХостТрекера

Налаштування запиту

Як правило, налаштування даного запиту не займає багато часу. Функція Перевірка БД дозволяє кожного разу при перевірці виконувати певний запит до бази даних, і відповідним чином обробляти результат. У разі, якщо запит не визначено – буде перевірятися можливість підключення до бази. Найцікавіше в даному інструменті - можливість з заданим часовим інтервалом виконувати певний запит, при цьому зберігаючи та порівнюючи його результати. Запит може бути будь-який - від простих вибірок до більш складніших, як-от (регулярних) апдейтів таблиць, запуску процедур (замість планувальника), різноманітних порівнянь і логічних операцій. Єдине обмеження – такий запит повинен виконуватися за 30 секунд, інакше - буде повернуто помилку по таймауту. Яким же чином ці дані можна аналізувати?

Моніторинг Баз Даних за допомогою ХостТрекера

По-перше, запит має бути написаний таким чином, щоб потрібне значення поверталося в першу колонку першого рядка результуючого набору. Саме це отримане значення можна аналізувати. По-друге, для запитів з використанням операторів маніпулювання даними (UPDATE, INSERT, DELETE) ще додатково буде фіксуватися кількість оброблених рядків.

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

Моніторинг Баз Даних за допомогою ХостТрекера

Відповідно, кожне таке спостереження фіксується, а останній результат запиту завжди доступний в таблиці завдань інтерфейсу. При цьому, якщо значення числове - по ньому буде побудовано графік, за допомогою якого можна прослідкувати динаміку змін відповідного параметру (параметрів). На даному етапі також можна задавати умови відбору – тобто значення може бути рівним/нерівним, перевищувати задане, перебувати у визначеному проміжку/поза ним тощо.

У випадку, якщо умова не буде виконуватися - запит не пройшов перевірку через таймаут або відсутнє з’єднання з БД - вам буде надіслано повідомлення (нагадаємо, ХостТрекер підтримує SMS, E-mail, Viber, Telegram, Push, Slack сповіщення та голосовий дзвінок).

Приклад використання

Для прикладу продемонструємо сценарій для відстеження розміру файлів БД і отримання повідомлень при досягненні певного критичного значення.

  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.  Отримуємо таку картину:

Моніторинг Баз Даних за допомогою ХостТрекера

      3.  Обираємо потрібні параметри:

             1.  Результат запиту - «значення в першій колонці першого рядка».

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

Отримуємо: якщо лог-файл перевищить 1 Гб, нам надійде сповіщення.

Крім того, можна завжди переглянути історію завдання – для розуміння як швидко і коли саме спостерігався приріст.

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

Моніторинг Баз Даних за допомогою ХостТрекера

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

Ще з блогу