Тел.: 8 (800) 505-01-57 пн-пт, 8-17 мск
Трудно представить, чем может обернуться для компании сбой в работе СУБД. Но, к сожалению, такое случается. И если база данных стала недоступна, то чем быстрее она будет восстановлена, тем меньшими потерями можно будет обойтись. Именно поэтому очень важно вести мониторинг баз данных и серверов СУБД, своевременно узнавать о сбоях и их характере.
Настроить мониторинг базы данных SQL можно с помощью российской программы «10-Страйк: Мониторинг Сети». Добавьте проверку "MySQL", "MSSQL" или "ODBC" и настройте параметры подключения, указав адрес SQL-сервера базы данных, порт, логин и пароль. Выберите метрику для мониторинга или задайте SQL-запрос, который получать значения из таблиц базы данных. Программа с заданной частотой подключается к базе данных и выполняет тестовый SQL-запрос, удостоверяясь тем самым в нормальной работе СУБД. В случае возвращения базой признака успешного подключения, проверка считается пройденной.
Кроме этого, программа может выполнить произвольный SQL-запрос, получить и оценить значение заданного параметра. Таким образом, можно организовать мониторинг значений, хранящихся в СУБД.
Поддерживаются следующие СУБД:
• MSSQL
• mySQL
• любая другая, поддерживающая подключение через ODBC-интерфейс (MSAccess®, Oracle®, Sybase, FireBird, и многие другие).
Мониторинг состояния базы данных обеспечивает поддержку её высокой производительности и доступности. Мониторинг баз данных включает в себя контроль множества параметров и метрик, которые предоставляет СУБД, а также выявление ошибок в её работе.
На примере MySQL опишем несколько основных метрик, по которым можно судить о состоянии базы данных и организовать мониторинг работы СУБД.
Доступность базы данных можно проверить подключением к ней с удалённых хостов. Ошибка подключения может говорить об остановке сервиса базы данных или блокировке порта БД сторонними программами.
Узнать о быстрых перезапусках базы данных помогает параметр uptime. Такие перезапуски могут не попасть в поле зрения проверки доступности, поэтому имеет смысл проверять, как долго база данных работает без отказов и остановок. К примеру, можно задать порог срабатывания сигнализации при
uptime < 1800
где 1800 — время работы базы данных в секундах с последнего запуска.
Одной из проблем в работе базы данных являются ошибки подключения новых клиентов. Метрика Количество ошибок подключения позволяет определить моменты, когда база данных слишком часто генерирует эти ошибки. В неё входят следующие переменные состояния сервера MySQL (счётчики):
Если в настройках сервера MySQL неверно задан параметр max_connections, то при большом количестве одновременных подключений база данных может давать отказ, увеличивая счётчик Connection_errors_max_connections. Предупредить такую ситуацию можно, отслеживая отношение количества текущих подключений к максимально возможному. С этой целью подойдёт такой запрос:
SELECT ROUND(100 - (100 * Variable_value / [max_connections]), 0) as tc FROM sys.metrics where Variable_name = 'threads_connected'
в котором вместо [max_connections] нужно подставить актуальное значение параметра max_connections (по умолчанию он установлен в 100). Получить его можно запросом в консоли MySQL:
show variables like "max_connections";
Данная команда возвратит примерно такой результат:
Переменная запроса tc покажет процент доступных подключений, и пороговым значением можно установить 30%.
MySQL ведёт журнал медленных запросов. Количество записей в этом журнале можно узнать с помощью метрики slow_queries. Запросить её значение можно простым SQL-запросом:
SELECT Variable_value FROM sys.metrics where Variable_name = 'slow_queries'
Программа может реагировать на изменение этого параметра, сообщая о появлении новых записей в журнале медленных запросов, что может означать проблемы с производительностью.
Используя счётчики выполнения запросов join можно получать уведомления об операциях, которые затрачивают слишком много ресурсов.
MySQL использует кэш в памяти для оптимизации операций чтения и записи на диск. Низкий процент попаданий в кэш (Cache Hit Rate) влияет на производительность базы данных. Этот запрос помогает вычислить значение частоты попаданий в кэш открытых таблиц:
SELECT ROUND((open_cache_hits / (open_cache_hits + open_cache_misses)), 2) * 100 OpenTableFactor FROM (SELECT variable_value open_cache_misses FROM sys.metrics WHERE variable_name = 'table_open_cache_misses') miss, (SELECT variable_value open_cache_hits FROM sys.metrics WHERE variable_name = 'table_open_cache_hits') hits;
Задайте порог OpenTableFactor в 90%, и в случае, если значение будет меньше, программа оповестит вас.
Еще одним показателем падения производительности базы данных является время выполнения запроса. Можно написать тестовый SQL и замерить время его выполнения в нормальных условиях. Полученное значение можно использовать как пороговое для этой проверки. Значительное превышение времени выполнения запроса в течение длительного периода может говорить о том, что база данных сильно загружена, и пользователям приходится долго ждать от неё ответа.
В MySQL большое количество метрик, позволяющих оценить работоспособность базы данных. Большая часть из них находится в системных таблицах INFORMATION_SCHEMA (sys). Таблицы и представления этой схемы доступны для выборки данных. Программа поддерживает выполнение произвольных запросов, позволяя создавать широкий спектр проверок производительности базы данных.
С помощью SQL-запросов к серверу базы данных также можно выполнять мониторинг сторонних сервисов, которые хранят и обновляют в ней свои параметры. В случае, если значение параметра выйдет за допустимые пределы, программа оповестит об этом администратора.
Также, с помощью SQL-запросов можно настроить мониторинг бизнес-процессов компании, обрабатывая хранящиеся в базе данных значения и метрики: количество продаж, выручку, затраты и т.д. Проверки с SQL-запросами можно использовать как по одной, так и объединяя их в формулу, получая более сложное значение. Для этих целей в программе реализована Вычисляемая по формуле проверка. К примеру, мы можете создать две проверки для разных баз данных и использовать полученные параметры для вычисления какого-то другого значения по заданной формуле. Например, СУММА_ПРОДАЖ = ПРОДАЖИ * ЦЕНА.
В этой статье была описана лишь одна из многих областей применения программного комплекса 10-Страйк: Мониторинг Сети, который предназначен для мониторинга сетевого оборудования и служб. Программа позволяет создавать и настраивать несколько десятков видов проверок для мониторинга доступности баз данных, серверов, хостов, служб, параметров производительности, температуры и прочих параметров.
Программа на 100% разработана в России. Специалисты 10-Strike Software всегда помогут вам в настройке программы, быстро устранят недоработки и замечания. Цены на лицензии можно посмотреть на сайте.
Скачайте пробную 30-дневную версию без ограничений и попробуйте. Все компоненты установятся из одного файла.
Наши решения уже используют на тысячах предприятий, включая энергетическую, нефте- и газодобывающую промышленность, телекоммуникационные компании, банки, министерства и ведомства, коммерческие организации, бюджетные и образовательные учреждения, больницы и т.д.
Программа включена в единый реестр российского ПО Минцифры