Мониторинг баз данных в PRTG
PostgreSQL
MySQL
Oracle SQL
Microsoft SQL
PRTG мониторит производительность баз данных SQL и показатели внутри БД. Вы контролируете и скорость выполнения запросов БД, и бизнес-показатели компании: изменение объема продаж, количества заказов - любые данные из вашей БД.

Настройте оповещения по sms, email, чтобы быть в курсе критичных изменений, которые происходят в вашей БД. Настройте оповещения для руководства и бизнес-подразделений, чтобы они были в курсе, когда снижаются запасы товара на складе, или продажи падают в регионе ниже заданного уровня. Подробнее о настройке системы оповещений по ссылке.
Тестовая лицензия дает доступ к неограниченному количеству сенсоров PRTG на 30 дней. По окончании срока бесплатно и бессрочно можно использовать до 100 сенсоров с полным функционалом. Если понадобится больше сенсоров - можете приобрести коммерческую лицензию

Мониторинг данных из БД SQL в PRTG

Настроим через PRTG возможность отслеживать изменения бизнес-показателей компании: количество заказов продукта, общую и среднюю стоимость заказов. Выведем в отдельное поле в сенсоре названия ключевых клиентов
Источник информации - БД MySQL.

Принцип настройки мониторинга данных из БД SQL прост:
1. Создаете соответствующий SQL-запрос в любом SQL-редакторе.
2. Сохраняете SQL-запрос в файл с расширением .sql в директории PRTG.
3. Создаете сенсор в PRTG.
4. Добавляете сохраненный SQL-запрос в сенсор.
5. Сенсор PRTG будет обращаться с этим запросом к базе данных и возвращать вам показатели.

Данное руководство подходит для настройки мониторинга показателей из любых баз данных SQL.
Результат
  • Сенсор PRTG отображает средний объем закупок c указанием валюты (Average Value, см. скриншот), количество сделок (Total Orders, см. скриншот).
  • Сенсор PRTG отображает максимальное, минимальное и последние значения показателей продаж и сохраняет все изменения в течение года. (см. меню на скриншоте)
  • Название клиентов отражены в текстовом блоке сенсора, который находится вверху, рядом с названием сенсора (см. скриншот).
  • Оранжевый и красный цвет на "спидометре" говорят о настроенных пороговых значениях - как только средний уровень продаж падает ниже порогового значения, сработает оповещение и ответственный получит уведомление.
Как настроить подобный сбор данных - в описании ниже
Этап 1. Создание SQL запроса
  1. Решаем, что хотим мониторить, и создаем соответствующий SQL запрос. Используем консоль управления или любой SQL редактор для создания запроса.
  2. Например создадим такой запрос в SQL: SELECT count(idorder), sum(value), avg(value), GROUP_CONCAT(customer SEPARATOR ', ') from test.order
  3. Требования к формированию SQL запросов для мониторинга в PRTG:
  • PRTG обрабатывает только числовые значения, но способен выводить текстовые данные (string)
  • Запрос должен быть простым. Исполнение запроса не должно занимать несколько минут
  • Количество показателей (каналов), которые будет собирать 1 сенсор не должно превышать 10 штук.
  • Сенсор не может отобразить более одной текстовой строки данных (string). Но с помощью запросов SQL вы можете свести в единую текстовую строку данных (string) в текстовом поле сенсора данные из нескольких горизонтальных строк таблицы (row)
Этап 2. Сохранение SQL-запроса
  1. Вы создали скрипт с соответствующим SQL запросом в любом редакторе SQL. Убедились, что он работает.
  2. Сохраните скрипт с SQL запросом в директории PRTG C:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\sql\mysql
  3. Для сохранения скрипта используйте расширение .sql. Например, называем наш файл Example.sql
  4. Пример на скриншоте выше
Этап 3. Создание сенсора в PRTG
  1. Прежде чем создавать сенсор, проверьте учетную запись устройства. Для этого в дереве устройств PRTG перейдите к устройству, где вы планируете разворачивать сенсор SQL. Кликните на устройство. В окне устройства перейдите в меню Settings. Для настройки учетной записи для системы управления базой данных необходимо указать номер порта, способ аутентификации и время запроса. Сохраните настройки.
  2. Вернитесь в дерево устройств. Выберите устройство, где планируете устанавливать сенсор для мониторинга SQL. Кликните кнопку Add Sensor..
  3. Появится окно с поисковым запросом. Найдите сенсор MySQL v2 sensor. и кликните на него, чтобы перейти в настройки.
  4. В настройках сенсора (см. скриншот) укажите имя сенсора. Добавьте теги, чтобы в дальнейшем проще искать сенсоры.
  5. В поле Database в настройка сенсора укажите базу данных, к которой сенсор будет обращаться. В нашем случае это БД test.
  6. В поле Data в настройках сенсора найдите sql файл, который сохраняли в директории mysql на Этапе 2.
  7. Параметр Data processing установите на Process data table, так как мы будем работать с табличными данными. Появятся дополнительные поля.
  8. Теперь необходимо настроить каналы, где будут отражены значения из таблицы базы данных. Указываем настройки Select Channel Value by значение Colomn number.
  9. По умолчанию активен только один канал. Если вам необходимо отражать несколько показателей. 4, как в нашем случае, необходимо активировать больше каналов. Установите переключатель на Enable. Канал станет активным.
  10. Укажите название канала (Sensor Channel # Name), не обязательно должно соответствовать названию поля в таблице.
  11. Укажите номер столбца, откуда будут браться данные (Sensor Channel Column Number). Нумерация столбцов начинается с 0. Первый столбец - 0, второй - 1 и так далее. В нашем примере мы запрашивали количество заказов, сумму заказов, среднее значение заказов и текстовый показатель - названия клиентов. Для количества заказов номер столбца будет 0, для суммы - 1, для среднего - 2.
  12. Обратите внимание на скриншоте мы не указали номер столбца 1, соответственно значение суммы всех заказов не должно появиться в сенсоре.
  13. Сохраняем. Сенсор должен появиться в дереве устройств. Текстовый блок будет отображаться рядом с заголовком сенсора
Этап 4. Настройки сенсора SQL
  1. Выберите основной канал, который будет отображаться сенсоре, на изменения показаний которого будет настроена система оповещений. Для этого рядом с графическим изображением канала в сенсоре отметьте иконку (Make Primary Channel)
  2. В окне сенсора внизу есть блок с перечнем каналов в виде таблицы. В таблице крайне правая колонка с настройками канала (Edit Channel Setiings). В этих настройках вы сможете установить верхние и нижние границы значений канала, превышение которых будет отображаться как аномальное значение

Мониторинг строковых данных из БД SQL

Выше было описано, как выводить текст (строковые данные string) в результатах мониторинга в системе PRTG.
Данное руководство описывает, как отслеживать изменения строковых данных (string) в БД SQL через PRTG.
Результат
Для примера у нас есть таблица в БД Microsoft SQL, где отражено эмоциональное состояние ряда сотрудников в виде текстовых значений "Sad", "Good", "Angry" и другое. PRTG умеет отслеживать изменение текстовых строк и оповещать об изменении.

На скриншоте выше видим имена сотрудников - в первом столбце (Adams Emotional State ...). Напротив каждого сотрудника - значения текстовых строк "Good" "Sad" "Angry" .
Если у кого-то из сотрудников состояние меняется на "Angry" - система оповещает об этом.

На скриншоте отражена ситуация, когда состояние сотрудника Charlies изменилось на Angry и система оповещает об этом. Обратите внимание, вверху рядом с заголовком выводится текстовое сообщение (Error in Charlies Emotional State:'Angry'), которое сообщает об изменении статуса

О том, как настроить мониторинг изменения текстовых значений, расскажем ниже.
Этап 1. Создание поисковых запросов
  1. Представим, что для примера мы создали запрос SQL который выводит показатели эмоционального состояния сотрудников. Получилась таблица.
  2. PRTG выдаст ошибку при попытке обработать текстовые строки (string). Необходимы числовые значения. Воспользуемся оператором CASE и привяжем текстовые значения к числовым. Теперь PRTG сможет их обрабатывать. Но такой формат не удобен для чтения
  3. Мы используем т.н. поисковые файлы (lookup file), чтобы привязать к числовым параметрам текстовые значения. По сути выполняем обратные действия. И в том же в поисковом файле мы назначаем статусы для каждого текстового значения
  • Статус Up для состояния Good
  • Статус Warning для состояния Sad и других эмоций
  • Статус Down для сотрудников со статусом Angr
В результате имеем:
<?xml version="1.0" encoding="UTF-8"?>
<ValueLookup id="oid.paessler.employee.emotionalstate" desiredValue="1" undefinedState="Warning">
<Lookups>
<SingleInt state="Warning" value="0">Unknown</SingleInt>
<SingleInt state="Ok" value="1">Good</SingleInt>
<SingleInt state="Warning" value="2">Sad</SingleInt>
<SingleInt state="Error" value="3">Angry</SingleInt>
</Lookups>
</ValueLookup>

Сохраняем полученный текст в файле

Этап 2. Сохранение поисковых запросов
  1. Поисковый файл с созданным запросом сохраните в папке \lookups\custom в директории PRTG
  2. Файл с sql запросом в формате .sql сохраните в папке \custom sensors\sql\, которая расположена в директории PRTG
Этап 3. Создание сенсора в PRTG
  1. В дереве устройств (device tree) PRTG выберите устройство, для мониторинга которого планируете устанавливать сенсор. Нажмите кнопку Add Sensor..
  2. Появится окно с поисковым запросом. Найдите сенсор MySQL v2 sensor. и кликните на него, чтобы перейти в настройки.
  3. В настройках сенсора (см. скриншот) укажите имя сенсора. Добавьте теги, чтобы в дальнейшем проще искать сенсоры.
  • В поле SQL Query File укажите название файла с запросом SQL, который мы ранее сохранили в директории PRTG
  • В поле Database укажите базу данных, из которой сенсор будет брать данные для мониторинга
  • Значение параметра Data processing установите на Process data table, так как мы будем работать с табличными данными. Появятся дополнительные поля.
  • Значение параметра Select Channel Value by устанавливаем на Key Value Pair
  • В поле Sensor Channel Name указываем название канала
  • В поле Sensor Channel Key указываем имя сотрудника из таблицы
  • В поле Sensor Channel Unit указываем Value Lookup
  • В поле Sensor Channel Value Lookup указываем название поискового файла, который мы создали на предыдущем этапе
  • Чтобы добавить еще каналы не забываем менять переключатель параметра Sensor Channel # на Enable
  • Сохраняем. Сенсор должен появиться в дереве устройств. Текстовый блок будет отображаться рядом с заголовком сенсора
Сенсоры WMI сильно влияют на производительность системы. Не рекомендуем использовать более 200 WMI сенсоров на одном зонде. Если всё-таки требуется более 200 WMI сенсоров - установите дополнительно удаленные зонды для балансировки нагрузки.

Мониторинг состояния баз данных SQL

PRTG отслеживает данные из БД и состояние самих БД.
В текущем разделе мы покажем, какие показатели состояния баз данных SQL возможно отслеживать с помощью PRTG
Мониторинг производительности PostgreSQL
Сенсор PostgreSQL Sensor контролирует
  • время выполнения всего запроса, включая установление соединения, исполнение запроса, обработка транзакции, отключение
  • время выполнения определенного запроса
  • количество строк в таблице к которым был обращен запрос (включая оператор SELECT если обрабатываете таблицы данных)
  • значения из самих таблиц данных. PRTG может обрабатывать таблицы данных и выводить значения в отдельные каналы
При установке сенсора вы можете выбрать настройку PostgreSQL Secure Sockets Layer (SSL). Соединения PostgreSQL SSL требуют установленного OpenSSL на целевом сервере и на зонде с сенсором. Настройки режима SSL сенсора PRTG должны содержать такие же значения, как параметр sslmode в PostgreSQL.
Мониторинг производительности Microsoft SQL
Сенсор WMI Microsoft SQL Server 2017 собирает показания БД Microsoft SQL через WMI.
В зависимости от выбранных при установке сенсора категорий счетчиков производительности (performance counters) сенсор может собирать данные:
  • Категория General Statistics (на скриншоте):
  • User Connections [Количество соединений пользователей]
  • Logins [Количество начала сеансов подключений к БД в секунду]
  • Logouts [Количество сеансов завершения взаимодействия с БД в секунду]
  • Категория Access Methods:
  • Full Scans [Количество операций полного сканирования таблиц в секунду]
  • Page Splits [Количество разбиений страниц в секунду]
  • Table Lock Escalations [Количество блокировок для таблицы]
  • Категория Buffer Manager:
  • Buffer Cache Hit Ratio [Процент попаданий в кэш буфера]
  • Database Pages [Количество страниц в буферном пуле с контентом базы данных]
  • Stolen Pages [Количество страниц, используемых для различных целей]
  • Page Life Expectancy [Среднее время жизни страниц в буферном кеше]
  • Категория Memory Manager:
  • Connection Memory (KB) [Объем динамической памяти, который использует сервер для поддержания соединений]
  • Optimizer Memory (KB) [Объем динамической памяти, который использует сервер для оптимизации запросов]
  • Total Server Memory (KB) [Объем используемой динамической памяти]
  • Target Server Memory (KB) [Объем динамической памяти, который сервер может потреблять]
  • SQL Cache Memory (KB) [Объем динамической памяти, который сервер использует для SQL кэша]
  • Категория Locks:
  • Lock Requests [Число блокировок и преобразований блокировок в секунду]
  • Deadlocks
  • Average Wait Time [Среднее время ожидание запросов на блокировку]
  • Категория SQL Statistics:
  • Batch Requests [Число пакетов команд Transact-SQL в секунду]
  • SQL Compilations [Число компиляций в секунду]
  • SQL Re-Compilations [Число повторных компиляций в секунду]
Для настроек одного сенсора вы можете выбрать только одну категорию. Если нужно отслеживать показатели нескольких категорий, создавайте дополнительные сенсоры.

Мониторинг производительности Oracle SQL
  1. время выполнения всего запроса, включая установление соединения, исполнение запроса, обработка транзакции, отключение
  2. время выполнения определенного запроса
  3. количество строк в таблице к которым был обращен запрос (включая оператор SELECT если обрабатываете таблицы данных)
  4. значения из самих таблиц данных. PRTG может обрабатывать таблицы данных и выводить значения в отдельные канал
При установке сенсора Oracle потребуется указать тип идентификатора (Identifier type): SERVICE_NAME или SID. По умолчанию сенсор PRTG использует SID. Тип идентификатора указан в конфигурационном файле TNSNAMES.ORA в каталоге Oracle.
    Мониторинг табличных пространств (tablespace) БД Oracle SQL
    Сенсор Oracle Tablespace sensor мониторит показатели:
    • Online status (online, system, recover, sysoff, offline, unknown)
    • Status (available, invalid, unknown)
    • Free disk space in bytes and percent [Объем и доля свободного места на диске]
    • Number of free blocks and free blocks in percent [Число и доля свободных блоков]
    • Current database size [Текущий размер базы данных]
    • Database size on disk (managed tablespace) [Размер базы данных на диске]
    Мониторинг производительности MySQL
    Сенсор MySQL v2 sensor мониторит данные:
    1. время выполнения всего запроса, включая установление соединения, исполнение запроса, обработка транзакции, отключение
    2. время выполнения определенного запроса
    3. количество строк в таблице к которым был обращен запрос (включая оператор SELECT если обрабатываете таблицы данных)
    4. значения из самих таблиц данных. PRTG может обрабатывать таблицы данных и выводить значения в отдельные канал
    Тестирование
    Скачайте бесплатную тестовую лицензию PRTG, чтобы протестировать возможности мониторинга баз данных SQL.
    Тестовый период составляет 30 дней. По окончании тестового периода вы можете приобрести официальную лицензию, либо продолжить бесплатно пользоваться, но с ограничением до 100 сенсоров
    Остались вопросы?
    E-mail
    Имя
    Вопросы и комментарии