Мониторинг PostgreSQL – Дмитрий Васильев #PostgreSQLRussia

Preview:

Citation preview

www.postgrespro.ru

Мониторинг PostgreSQL

Дмитрий Васильев

Мониторинг - система предупреждения и анализа инцидентов посредством снятия и анализа метрик

Мониторинг это ...

Некоторые под мониторингом понимают это:

Помогите объяснить, что изображено на картинке?

Идеальный мониторинг

* Сбор метрик

* Отображение полученых метрик

* Анализ полученых метрик, принятие решения

* Создание инцидента

* История по прошедшим инцидентам

Идеальный мониторинг

Бесконечное совершенствование:

* Успешная эксплуатация системы зависит от понимания того, какие метрики необходимо снимать и как их мониторить.

* Понимание того что, необходимо мониторить, приходит обычно вместе с факапом

* Ваш опыт — это знание метрик и их интерпретация

wiki.postgresql.org

Munin

Zabbix

NewRelic

DataDog

Munin

* Очень богатый набор метрик из коробки

* Плагины PostgreSQL

* Расширяем на любом языке

* Детализация данных оставляет желать лучшего (realtime)

* Подходит только для снятия метрик

DataDog

* Представляется как сервис, не нужно мониторить за самим мониторингом :)

* OpenSource клиент

* Удобные представления, dashboards

* К стабильности клиента есть вопросы

* Нет 'must-have' триггеров

NewRelic

* Представляется как сервис

* OpenSource клиент

* Удобные представления, dashboards

* Создавался изначально как мониторинг приложения, не системы.

* Встроенный плагин PostgreSQL

Zabbix

* В отличие от всех остальных указаных систем, умеет всё что нужно, но не всё хорошо/идеально делает

* Тяжело расширяем по сравнению с другими системами

* Есть сторонние решения для PostgreSQL

* Стандарт де-факто во многих компаниях

Что еще можно упомянуть?

Atop (!!!)

OKMeter.IO

Riemann

PCP.IO

AtopИногда другие клиенты мониторинга не работают или не могут отправить данные —

выручает atop

OKMeter

* Про плюсы раскажет докладчик от OKMeter

* Не OpenSource клиент (пугает самовольное обновление и завышеные привилегии)

* Linux only

* Отсутствие enterprise-версии (self-hosted)

* Слишком простое представление инцидента — можно поучиться у DataDog

Riemann

* Фреймворк для мониторинга: Monitoring as a code :)

* Весело и прикольно делать клиента мониторинга

* Весело и прикольно делать интеграции с дополнительными сервисами: opentsdb и т.д.

* Весело и прикольно делать дашбоард через поток на ws, или на чем напишешь

PCP.IO

* Богатое количество метрик

* Есть плагин PostgreSQL

* Честный realtime

* По заверениям расширяемая система

* Linux-only

* Несмотря на заявления RedHat проект почти не развивается

Winner ?

Zabbix:

* популярность

* умеет всё что необходимо для жизни

* OpenSource, Self-Hosted

Zabbix — сторонние решения

* template + UserParameter (psql -c):pgCayenne, pg_monz и т.д.

* libzbxpgsql: template + zabbix module

libzbxpgsql

Недостатки:

* Отсутвие кроссплатформенность

* Написан на не скриптовом языке (расширяемость)

libzbxpgsql: расширяемость

Mamonsu **

** Слоненок который держит за хвост большого слона

https://github.com/postgrespro/mamonsu

* Активный zabbix agent

* Снимает также метрики системы

* Кросплатформенный

* Расширяемый

Mamonsu: кросплатформенность

* Написан на Pure Python (2/3), не требует libpq

* Работает на linux (упакован в deb, rpm).Метрики системы через /proc, из коробки не требует повышеных привилегий.

* Работает на windows (as a service too), данные через perfomace counter

* Ничего не мешает добавить еще системы, где работает python

Mamonsu: расширяемость

* Есть только supervisor и плагины

* Supervisor — loop + thread.{is_alive,start()}

* Транспорт — тоже плагин

* Плагины могут предоставлять не только метрики, но и темплейт.

Mamonsu plugin

Plugin может написать домохозяин каждый, достаточно описать метод run:

И график / триггер / дисковери / и т.д.

Mamonsu: версия 0.0.6

* Работает у нескольких клиентов на linux **

* Тестируем windows

~ 100 items

~ 30 graphs

~ 5 discovery rules

** Последний нетривиальный баг pgsql.database.size[XXXX] changed: Type of received value [1172591968772.000000] is not suitable for value type [Numeric (float)]

Mamonsu: версия 0.0.6

Mamonsu: версия 0.0.6

Mamonsu: версия 0.0.6

Mamonsu: есть будущее?

Приглашаем:

* тестеры!

* нам нужны идеи, как сделать инструмент лучше

* присоединиться к разработке

www.postgrespro.ru

Спасибо за внимание!Вопросы?

Recommended