Как не превратиться в стрекозу, если у вас много разных баз данных
На фотографии макрофото глаз стрекозы. Они имеют фасеточное строение и состоят примерно из 30000 шестиугольных фасетов, что позволяет стрекозе смотреть практически на 360 градусов (за исключением направления «прямо назад»). Полезное умение, если ты стрекоза.
Когда в организации «зоопарк» баз данных, а их унификация на горизонте даже не просматривается, нужно прилагать усилия, чтобы успевать управлять и следить за их работой. Посмотрите ещё раз на стрекозу.
В статье расскажем об инструменте мониторинга Foglight for Databases, который объединяет в одной консоли мониторинг SQL Server, Oracle, MySQL, PostgreSQL, DB2, SAP ASE, MongoDB и Cassandra. В нём также есть лёгкий налёт DevOps в части логирования изменений в конфигурации баз данных. Обо всём по порядку. Под катом много скриншотов.
Почему до ката мы упомянули DevOps? Одна из приглянувшихся фишек Foglight — возможность в ручном режиме отмечать на таймлайне релизы и вообще любые изменения. Разработчики сами могут вносить данные об изменениях и через некоторое время здесь же получать обратную связь в виде снижения или повышения производительности. В автоматическом режиме отслеженные изменения тоже отмечаются: изменения в Execution Plan или конфигурации БД — всё это будет присутствовать на графике.
Примеры изменений.
Отсюда же можно перейти в другое представление и сравнить изменения в Execution Plan.
Вот тоже пара неплохих способов аудита изменений, но на регулярной основе выполнение таких отчётов не очень удобно.
Насколько хорошо налажен канал общения между разработчиками и администраторами БД? Обо всех ли изменениях вовремя узнают коллеги из эксплуатации? Что если новый релиз породил спорадическую проблему, которая начала проявляться на регулярной основе и замедляет работу приложения?
Мы не хотим сказать, что этот инструмент окончательно наладит контакт между разработчиками и эксплуатацией, однако добавит разработчикам дополнительный канал получения обратной связи.
Дальше в статье покажем возможности мониторинга для каждой из поддерживаемых баз данных.
Microsoft SQL Server
Ключевая особенность мониторинга SQL Server в Foglight for Databases — наличие инструмента Performance Investigator, который выполняет многомерный анализ производительности БД в разрезах по базам данных, долгим запросам, сессиям, пользователям, исполнимым скриптам, рабочим станциям и приложениям.
Другая особенность — поддержка технологий SSIS, SSRS и SSAS. Например, ниже обзорное представление с метриками SSIS.
Из представления выше можно «провалиться» на уровень с детализацией до пакетов и выявить проблемные.
Дополнительно в Foglight есть представление с переменными конфигурации, где можно отследить изменения значения конкретной переменной.
Многие представления дублируют отчёты, которые можно построить в Management Studio. Мониторинг ведётся удалённо, и суммарный оверхед не превышает 2%. В актуальной версии Foglight поддерживаются версии SQL Server от 2005 до 2017.
Oracle
Для мониторинга БД Oracle в Foglight также предусмотрен инструмент Performance Investigator. Концепция его работы во многом аналогична подходам для мониторинга SQL Server, в основе — многомерный анализ производительности БД.
Поддерживаются технологии RAC, Exadata, ASM и Data Guard.
My SQL
Мониторинг My SQL охватывает основные показатели (в том числе и репликацию как один к одному, так и один ко многим) и отслеживает изменения в конфигурации БД аналогично SQL Server и Oraсle. Можно создавать свои шаблоны конфигурации, соответствие которым будет также отслеживаться.
Foglight умеет контролировать параметры выполнения запросов в БД. Делает это методом explain. Есть специальные представления по таблицам различных БД My SQL на едином экране. Из единой точки можно контролировать сотни баз данных и с небольшим оверхедом (не более 2%).
Postgre SQL
В модуле для мониторинга Postgre SQL есть представления а«ля helicopter view для обзора ключевых показателей производительности БД, обзор показателей таблиц.
Поддерживается мониторинг репликации и контроль выполнения WAL (Write-Ahead Logging) как на стороне отправителя, так и получателя.
В консоли Foglight можно настроить представление с метриками производительности критичных запросов и на одном экране сравнивать их с аналогичными на другой базе данных. Для каждого такого запроса можно также выполнять explain analyze и контролировать соответствующие показатели.
Мониторинг баз PostgreSQL выполняется также удалённо, и оверхед не превышает 2%.
DB2
После настройки мониторинга основные метрики DB2 можно сразу же увидеть на агрегирующем дашборде.
Мониторинг БД DB2 выполняется безагентским способом с оверхедом, в среднем не превышающем 2%.
В одном из интерфейсов можно контролировать нагрузку на агенты приложениями, которые работают через эти агенты.
На скриншоте ниже дашборд с блокировками. Из каждого дашборда можно сделать отчёт. В том числе и на регулярной основе.
При необходимости можно отслеживать тяжёлые запросы.
C помощью модуля для СУБД DB2 можно контролировать конфигурацию и выполнять автоматическую постановку на мониторинг новых БД.
SAP ASE
По каждой БД SAP ASE, поставленной на мониторинг, есть агрегирующее представление для просмотра основных метрик здоровья.
По каждому database engine доступны более подробные данные. Переключаясь между вкладками, можно посмотреть связанные процессы и сравнить производительность.
На соответствующем представлении можно отслеживать показатели производительности в многомерном виде по запросам, процедурам, пользователям, блокировкам и прочим связанным элементам.
Модуль для SAP ASE поддерживает удалённый мониторинг. На основе всех собираемых данных можно создавать собственные дашборды и отчёты.
MongoDB
Как и с предыдущими СУБД, мониторинг MongoDB выполняется удалённо. После настройки мониторинга будет доступно агрегирующее представление с основными метриками мониторинга.
В верхней части дашборда есть ссылки на дополнительные представления, на которых можно просматривать метрики по базам данных, операциям, журналам и т.д… Например, ниже представление по операциям.
При включённом в настройках СУБД профилировании можно селектить и выводить на дашборд все соответствующие метрики. Если у БД есть реплика, Foglight будет контролировать также вещи вроде member status, health и прочие.
Дополнительный полезный функционал — мониторинг конфигурации нод, сравнение со стандартной и алерт в случае изменений.
Cassandra
Установка агента на ноды не требуется, всё происходит удалённо и с минимальным оверхедом. После настройки мониторинга Cassandra в Foglight появляется набор дашбордов с показателями производительности БД.
Foglight поддерживает контроль keyspace для нод в кластере, их сравнение по производительности (количество обращений к объектам, показатели read/write, задержку). Ноды можно также сравнивать по конфигурациям, количеству обработанных сообщений, сообщений с ошибками и т.д.
На скриншоте ниже интерфейс Foglight for Cassandra и представление по производительности JVM.
Из всех собранных метрик можно конструировать собственные дашборды и отчёты.
Заключение
Спасибо, что дочитали и досмотрели до этого места. Подытожим.
- Foglight for Databases поддерживает мониторинг SQL Server, Oracle, MySQL, PostgreSQL, DB2, SAP ASE, MongoDB и Cassandra.
- Кроме производительности самих БД Foglight также контролирует их конфигурацию.
- Данные по разным СУБД можно комбинировать на одном дашборде (а вдруг надо?).
- Мониторинг всех СУБД выполняется удалённо с оверхедом, не превышающим 2%. Из одной точки можете контролировать все базы.
- У Foglight for Databases есть REST API, из которого можно забирать метрики или события во внешние системы дашбординга, отчётинга или алертинга. Если есть зонтичная система мониторинга, в неё тоже можно будет встроиться.
- Кроме СУБД Foglight умеет и виртуализацию (VMware, Hyper-V, Openstack), СХД, серверы, AD, Exchange.
С Foglight for Databases можно познакомиться поближе. Заявку на пилотный проект или получение дистрибутива и тестовых лицензий (если захотите сделать всё сами) вы можете оставить через форму обратной связи на сайте.