SlideShare a Scribd company logo
1 of 22
Download to read offline
Zabbix
Улучшаем организацию
мониторинга
Андрей Денисов
Апрель,2017
Москва
Так поддерживался мониторинг раньше
…
ПодразделенияКомпании
Подразделение
поддержки
мониторинга
Очередьзапросов
на мониторинг
Андрей Денисов
anjey.denisov@gmail.com
2
Нас не устроил традиционный подход…
…
ПодразделенияКомпании
Подразделение
поддержки
мониторинга
Очередь запросов
на мониторинг
Андрей Денисов
anjey.denisov@gmail.com
3
… и мы создали у себя Zabbix Community!
Core
Team
Super Admins
Admins
Users
П1
П2
ПN
…
… …
… …
Community
П1 … ПN – подразделения
эксплуатации ИТ
Компании
R1
R2
R3
R1 … R4 – подмножества
представителей
подразделений
эксплуатации ИТ
Компании
Users – внешние
потребителиданных
системы мониторинга
Андрей Денисов
anjey.denisov@gmail.com
4
Мы поддерживаем крупный экземпляр
10k
7k
NVPS Hosts
900k
300k
Items Triggers
Андрей Денисов
anjey.denisov@gmail.com
5
Мы пробовали штатный Zabbix-мониторинг БД
odbc.ini на Zabbix Proxy
Андрей Денисов
anjey.denisov@gmail.com
6
Пришли к такой схеме
Zabbix
Server
База данных
X
База данных
Y
…
Zabbix ProxyA
Pollers
ODBC
drivers
Sender
DB
Zabbix ProxyB
…
База данных M
База данных N
…
Conf
syncer
Андрей Денисов
anjey.denisov@gmail.com
7
Обнаружили особенности Zabbix-мониторинга БД
 Низкоуровневое обнаружение
 SQL-запросы – в веб интерфейсе Zabbix
 Отображение ошибок в веб интерфейсе Zabbix
− Один запрос = одна метрика
− Отсутствие пулов соединений
− Одна метрика = подключение + отключение
− Высокое взаимное влияние баз данных
− Слабый контроль над числом сессий/соединений к БД
− Ненастраиваемые таймауты для запросов
Андрей Денисов
anjey.denisov@gmail.com
8
Стали искать решение и родилась идея!
− Вклиниться в ODBC?
− Доработать код Zabbix Proxy?
 Самим стать Zabbix Proxy!
Андрей Денисов
anjey.denisov@gmail.com
9
Нашли и допилили DBforBIX
Zabbix
Server База данных
X
База данных
Y
…
База данных
M
База данных
N
…
DBforBIX = Zabbix ProxyB
JDBC
drivers
JVM
Zabbix ProxyA
Pollers
ODBC
drivers
Sender
DB
Conf
syncer
Андрей Денисов
anjey.denisov@gmail.com
10
DBforBIX теперь умеет
 Низкоуровневоеобнаружение
 Многострочныезапросы
 Контроль пула соединений итаймаутов
 JDBC (широкий спектр баз данных)
 Java – приложение(быстраяразработка)
+
 Поддерживаетмногоколоночные запросы (целыетаблицы одним select’ом)
 Активный Zabbix Proxy
 SQL из веб интерфейсаZabbix
 Ошибки - в веб интерфейс Zabbix
 Обновляет конфигурацию«на лету»
 Поддерживает пользовательскиемакросы
Андрей Денисов
anjey.denisov@gmail.com
11
Мы скромно делимся им с вами…
Андрей Денисов
anjey.denisov@gmail.com
12
https://github.com/vagabondan/DBforBIX
Так выглядит файл конфигурации DBforBIX
DBforBIX.UpdateConfigTimeout=120
Pool.LoginTimeOut=15
ZabbixServer.Zabbix1.Address=<zabbix_server_host>
ZabbixServer.Zabbix1.Port=10051
ZabbixServer.Zabbix1.ProxyName=ProxyB
ZabbixServer.Zabbix1.ConfigSuffix=DB4bix.config
ZabbixServer.Zabbix1.DBList=MYSQLDB1,ORADB1
DSN
Андрей Денисов
anjey.denisov@gmail.com
13
Так в DBforBIX задаются СУБД
DB.ORADB1.Type=oracle
DB.ORADB1.Instance=<instance_name>
DB.ORADB1.Url=jdbc:oracle:thin:@<oracle_DB_host>:<oracle_DB_port>:<instance_name>
DB.ORADB1.User=<oracle_user>
DB.ORADB1.Password=<oracle_password>
DB.ORADB1.MaxActive=10
DB.ORADB1.MaxWaitMillis=10000
DB.ORADB1.QueryTimeout=15
DB.ORADB1.MaxIdle=1
Андрей Денисов
anjey.denisov@gmail.com
14
Так настраивается web интерфейс
Item конфигурации:
oracle.discovery.DB4bix.config[…]
Item-приемник данных
Андрей Денисов
anjey.denisov@gmail.com
15
Так DBforBIX сообщает об ошибках
Андрей Денисов
anjey.denisov@gmail.com
16
Так выглядит поле SQL конфигурации
<parms type="oracle" prefix="oracle.">
<server>
<discovery>…</discovery>
<query>…</query>
<multiquery>…</multiquery>
</server>
</parms>
Андрей Денисов
anjey.denisov@gmail.com
17
Обнаружение
Наборы пар имя - значение
Фильтры и таблицы
Обнаружение и простые запросы
Андрей Денисов
anjey.denisov@gmail.com
18
<discovery time="120" item="discovery.DB4bix.config[instanceid,{$DSN}]" names="INST_ID">
SELECT inst_id FROM gv$instance
</discovery>
<query time="60" item="procnum[%1]">
SELECT inst_id, COUNT(*) procnum
from gv$process group by inst_id
</query>
{“data”:[
{“{#INST_ID}”:”1”},
{“{#INST_ID}”:”2”}
]}
oracle.discovery.DB4bix.config[instanceid,{$DSN}]
…
{“oracle.procnum[1]”:”60”},
{“oracle.procnum[2]”:”61”},
…
Фильтры и загрузка целых таблиц
Андрей Денисов
anjey.denisov@gmail.com
19
<multiquery time="300"
items="tablespace.bytes[%1]|tablespace.maxbytes[%1]" type="column">SELECT tablespace_name,
SUM(NVL(bytes,0)) AS bytes, SUM(maxbytes) AS maxbytes FROM dba_data_files GROUP BY
tablespace_name
</multiquery>
…
{“oracle.tablespace.bytes[SYSTEM]”:”12345”}, {“oracle.tablespace.maxbytes[SYSTEM]”:”54321”},
{“oracle.tablespace.bytes[USERS]”:”6789”}, {“oracle.tablespace.maxbytes[USERS]”:”9876”},
<multiquery time="600" items="join_buffer_size|long_query_time" type="list">
SHOW VARIABLES
</multiquery> …
{“mysql. join_buffer_size”:”12345”}, {“mysql. long_query_time”:”54321”},
…
Фильтруемстроки,отбираем тольконужные
Загружаемцелую таблицузначений
Развитие идеи
• Повысить интуитивность и удобство конфигурации: уйти от XML
• Ввести новый тип агента в Zabbix: DBforBIX
• Расширить спектр поддерживаемых типов баз (Timesten,
noSQL,…)
• Расширить область применения DBforBIX: XforBIX
• Backend API Zabbix для внешних расширений с возможностью
управления из веб интерфейса Zabbix
• Давайте искать вместе?
Андрей Денисов
anjey.denisov@gmail.com
20
Спасибо!
Андрей Денисов
Skype: andrey_denisov
E-mail: anjey.denisov@gmail.com
Github: https://github.com/vagabondan

More Related Content

What's hot

Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)Ontico
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)Ontico
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаSQALab
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow Vadim Nesterov
 
Антон Галицын
Антон ГалицынАнтон Галицын
Антон ГалицынCodeFest
 
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
«Взломать за 60 секунд», Артем Кулаков, RedmadrobotMail.ru Group
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС2ГИС Технологии
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановCodeFest
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоOntico
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...Ontico
 
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Ontico
 
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИСКак мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС2ГИС Технологии
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Anton Baranov
 
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновсервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновOntico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 

What's hot (20)

Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
 
Тестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях ИнтернетаТестируем мобильное приложение в суровых реалиях Интернета
Тестируем мобильное приложение в суровых реалиях Интернета
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
 
Антон Галицын
Антон ГалицынАнтон Галицын
Антон Галицын
 
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
 
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИСЭволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
Эволюция процесса деплоя в проекте — Денис Яковлев, 2ГИС
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий Левченко
 
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
LuaJIT как основа для сервера приложений - проблемы и решения / Игорь Эрлих (...
 
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
 
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИСКак мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновсервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 

Similar to Андрей Денисов – В ожидании мониторинга баз данных

Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Badoo Development
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parseryalegko
 
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем RemotingOleg Nenashev
 
Zabbix 3.0 что дальше
Zabbix 3.0 что дальше Zabbix 3.0 что дальше
Zabbix 3.0 что дальше Badoo Development
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)Roman Dvornov
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Tanya Denisyuk
 
Zabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discoveryZabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discoveryBadoo Development
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Ontico
 
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
 Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере" Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"MskDotNet Community
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10OdessaFrontend
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...it-people
 
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)Ontico
 
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС2ГИС Технологии
 
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionVladimir Malinin
 
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011Sergey Schadnyh
 
Front days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoFront days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoAnastasia Goryacheva
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиGonchik Tsymzhitov
 

Similar to Андрей Денисов – В ожидании мониторинга баз данных (20)

Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
 
So Your WAF Needs a Parser
So Your WAF Needs a ParserSo Your WAF Needs a Parser
So Your WAF Needs a Parser
 
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
SPb Jenkins Meetup #6. Тёмная сторона Jenkins. Стабилизируем Remoting
 
Zabbix 3.0 что дальше
Zabbix 3.0 что дальше Zabbix 3.0 что дальше
Zabbix 3.0 что дальше
 
My Open Source (Sept 2017)
My Open Source (Sept 2017)My Open Source (Sept 2017)
My Open Source (Sept 2017)
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
Денис Колошко, Пример нагруженной системы на базе продуктов Microsoft, Amazon...
 
Zabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discoveryZabbix в badoo, от lld к super discovery
Zabbix в badoo, от lld к super discovery
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
 
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
 Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере" Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
Перепись приложения. Нативного. На JS. Done. | Odessa Frontend Meetup #10
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
 
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)
 
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
«Тестируем мобильное приложение в суровых реалиях Интернета» – Андрей Усов, 2ГИС
 
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с ProductionThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
ThinkJavaKharkiv#1 Шеф, все пропало. Проблемы с Production
 
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
Veeam Backup in CV PROTEK for VMware vForum Almaty 2011
 
Front days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов AvitoFront days Фронтенд для миллионов Avito
Front days Фронтенд для миллионов Avito
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
 
Управление версиями TFS 2010
Управление версиями TFS 2010Управление версиями TFS 2010
Управление версиями TFS 2010
 

More from Badoo Development

Viktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel AutomationViktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel AutomationBadoo Development
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальBadoo Development
 
Григорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUГригорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUBadoo Development
 
Андрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.БраузерАндрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.БраузерBadoo Development
 
Филипп Уваров, Avito
Филипп Уваров, AvitoФилипп Уваров, Avito
Филипп Уваров, AvitoBadoo Development
 
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magicCocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magicBadoo Development
 
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature developmentCocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature developmentBadoo Development
 
Alex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityAlex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityBadoo Development
 
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ruTechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ruBadoo Development
 
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooTechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooBadoo Development
 
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma Badoo Development
 
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoTechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoBadoo Development
 
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»  Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов» Badoo Development
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL Badoo Development
 
Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Badoo Development
 
5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоадаBadoo Development
 
Git хуки на страже качества кода
Git хуки на страже качества кодаGit хуки на страже качества кода
Git хуки на страже качества кодаBadoo Development
 
Versioning strategy for a complex internal API
Versioning strategy for a complex internal APIVersioning strategy for a complex internal API
Versioning strategy for a complex internal APIBadoo Development
 
Как мы готовим MySQL
Как мы готовим MySQLКак мы готовим MySQL
Как мы готовим MySQLBadoo Development
 

More from Badoo Development (20)

Viktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel AutomationViktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel Automation
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
Григорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUГригорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RU
 
Андрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.БраузерАндрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.Браузер
 
Филипп Уваров, Avito
Филипп Уваров, AvitoФилипп Уваров, Avito
Филипп Уваров, Avito
 
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magicCocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
 
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature developmentCocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
 
Alex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityAlex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High Availability
 
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ruTechLeads meetup: Андрей Шелёхин, Tinkoff.ru
TechLeads meetup: Андрей Шелёхин, Tinkoff.ru
 
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooTechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, Badoo
 
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma
 
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoTechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, Erlyvideo
 
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»  Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL
 
Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo
 
5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада
 
ChromeDriver Jailbreak
ChromeDriver JailbreakChromeDriver Jailbreak
ChromeDriver Jailbreak
 
Git хуки на страже качества кода
Git хуки на страже качества кодаGit хуки на страже качества кода
Git хуки на страже качества кода
 
Versioning strategy for a complex internal API
Versioning strategy for a complex internal APIVersioning strategy for a complex internal API
Versioning strategy for a complex internal API
 
Как мы готовим MySQL
Как мы готовим MySQLКак мы готовим MySQL
Как мы готовим MySQL
 

Андрей Денисов – В ожидании мониторинга баз данных

  • 2. Так поддерживался мониторинг раньше … ПодразделенияКомпании Подразделение поддержки мониторинга Очередьзапросов на мониторинг Андрей Денисов anjey.denisov@gmail.com 2
  • 3. Нас не устроил традиционный подход… … ПодразделенияКомпании Подразделение поддержки мониторинга Очередь запросов на мониторинг Андрей Денисов anjey.denisov@gmail.com 3
  • 4. … и мы создали у себя Zabbix Community! Core Team Super Admins Admins Users П1 П2 ПN … … … … … Community П1 … ПN – подразделения эксплуатации ИТ Компании R1 R2 R3 R1 … R4 – подмножества представителей подразделений эксплуатации ИТ Компании Users – внешние потребителиданных системы мониторинга Андрей Денисов anjey.denisov@gmail.com 4
  • 5. Мы поддерживаем крупный экземпляр 10k 7k NVPS Hosts 900k 300k Items Triggers Андрей Денисов anjey.denisov@gmail.com 5
  • 6. Мы пробовали штатный Zabbix-мониторинг БД odbc.ini на Zabbix Proxy Андрей Денисов anjey.denisov@gmail.com 6
  • 7. Пришли к такой схеме Zabbix Server База данных X База данных Y … Zabbix ProxyA Pollers ODBC drivers Sender DB Zabbix ProxyB … База данных M База данных N … Conf syncer Андрей Денисов anjey.denisov@gmail.com 7
  • 8. Обнаружили особенности Zabbix-мониторинга БД  Низкоуровневое обнаружение  SQL-запросы – в веб интерфейсе Zabbix  Отображение ошибок в веб интерфейсе Zabbix − Один запрос = одна метрика − Отсутствие пулов соединений − Одна метрика = подключение + отключение − Высокое взаимное влияние баз данных − Слабый контроль над числом сессий/соединений к БД − Ненастраиваемые таймауты для запросов Андрей Денисов anjey.denisov@gmail.com 8
  • 9. Стали искать решение и родилась идея! − Вклиниться в ODBC? − Доработать код Zabbix Proxy?  Самим стать Zabbix Proxy! Андрей Денисов anjey.denisov@gmail.com 9
  • 10. Нашли и допилили DBforBIX Zabbix Server База данных X База данных Y … База данных M База данных N … DBforBIX = Zabbix ProxyB JDBC drivers JVM Zabbix ProxyA Pollers ODBC drivers Sender DB Conf syncer Андрей Денисов anjey.denisov@gmail.com 10
  • 11. DBforBIX теперь умеет  Низкоуровневоеобнаружение  Многострочныезапросы  Контроль пула соединений итаймаутов  JDBC (широкий спектр баз данных)  Java – приложение(быстраяразработка) +  Поддерживаетмногоколоночные запросы (целыетаблицы одним select’ом)  Активный Zabbix Proxy  SQL из веб интерфейсаZabbix  Ошибки - в веб интерфейс Zabbix  Обновляет конфигурацию«на лету»  Поддерживает пользовательскиемакросы Андрей Денисов anjey.denisov@gmail.com 11
  • 12. Мы скромно делимся им с вами… Андрей Денисов anjey.denisov@gmail.com 12 https://github.com/vagabondan/DBforBIX
  • 13. Так выглядит файл конфигурации DBforBIX DBforBIX.UpdateConfigTimeout=120 Pool.LoginTimeOut=15 ZabbixServer.Zabbix1.Address=<zabbix_server_host> ZabbixServer.Zabbix1.Port=10051 ZabbixServer.Zabbix1.ProxyName=ProxyB ZabbixServer.Zabbix1.ConfigSuffix=DB4bix.config ZabbixServer.Zabbix1.DBList=MYSQLDB1,ORADB1 DSN Андрей Денисов anjey.denisov@gmail.com 13
  • 14. Так в DBforBIX задаются СУБД DB.ORADB1.Type=oracle DB.ORADB1.Instance=<instance_name> DB.ORADB1.Url=jdbc:oracle:thin:@<oracle_DB_host>:<oracle_DB_port>:<instance_name> DB.ORADB1.User=<oracle_user> DB.ORADB1.Password=<oracle_password> DB.ORADB1.MaxActive=10 DB.ORADB1.MaxWaitMillis=10000 DB.ORADB1.QueryTimeout=15 DB.ORADB1.MaxIdle=1 Андрей Денисов anjey.denisov@gmail.com 14
  • 15. Так настраивается web интерфейс Item конфигурации: oracle.discovery.DB4bix.config[…] Item-приемник данных Андрей Денисов anjey.denisov@gmail.com 15
  • 16. Так DBforBIX сообщает об ошибках Андрей Денисов anjey.denisov@gmail.com 16
  • 17. Так выглядит поле SQL конфигурации <parms type="oracle" prefix="oracle."> <server> <discovery>…</discovery> <query>…</query> <multiquery>…</multiquery> </server> </parms> Андрей Денисов anjey.denisov@gmail.com 17 Обнаружение Наборы пар имя - значение Фильтры и таблицы
  • 18. Обнаружение и простые запросы Андрей Денисов anjey.denisov@gmail.com 18 <discovery time="120" item="discovery.DB4bix.config[instanceid,{$DSN}]" names="INST_ID"> SELECT inst_id FROM gv$instance </discovery> <query time="60" item="procnum[%1]"> SELECT inst_id, COUNT(*) procnum from gv$process group by inst_id </query> {“data”:[ {“{#INST_ID}”:”1”}, {“{#INST_ID}”:”2”} ]} oracle.discovery.DB4bix.config[instanceid,{$DSN}] … {“oracle.procnum[1]”:”60”}, {“oracle.procnum[2]”:”61”}, …
  • 19. Фильтры и загрузка целых таблиц Андрей Денисов anjey.denisov@gmail.com 19 <multiquery time="300" items="tablespace.bytes[%1]|tablespace.maxbytes[%1]" type="column">SELECT tablespace_name, SUM(NVL(bytes,0)) AS bytes, SUM(maxbytes) AS maxbytes FROM dba_data_files GROUP BY tablespace_name </multiquery> … {“oracle.tablespace.bytes[SYSTEM]”:”12345”}, {“oracle.tablespace.maxbytes[SYSTEM]”:”54321”}, {“oracle.tablespace.bytes[USERS]”:”6789”}, {“oracle.tablespace.maxbytes[USERS]”:”9876”}, <multiquery time="600" items="join_buffer_size|long_query_time" type="list"> SHOW VARIABLES </multiquery> … {“mysql. join_buffer_size”:”12345”}, {“mysql. long_query_time”:”54321”}, … Фильтруемстроки,отбираем тольконужные Загружаемцелую таблицузначений
  • 20. Развитие идеи • Повысить интуитивность и удобство конфигурации: уйти от XML • Ввести новый тип агента в Zabbix: DBforBIX • Расширить спектр поддерживаемых типов баз (Timesten, noSQL,…) • Расширить область применения DBforBIX: XforBIX • Backend API Zabbix для внешних расширений с возможностью управления из веб интерфейса Zabbix • Давайте искать вместе? Андрей Денисов anjey.denisov@gmail.com 20
  • 21.
  • 22. Спасибо! Андрей Денисов Skype: andrey_denisov E-mail: anjey.denisov@gmail.com Github: https://github.com/vagabondan