30
www.postgrespro.ru Мониторинг PostgreSQL Дмитрий Васильев

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

Embed Size (px)

Citation preview

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

www.postgrespro.ru

Мониторинг PostgreSQL

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

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

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

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

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

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

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

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

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

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

* Сбор метрик

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

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

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

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

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

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

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

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

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

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

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

wiki.postgresql.org

Munin

Zabbix

NewRelic

DataDog

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

Munin

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

* Плагины PostgreSQL

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

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

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

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

DataDog

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

* OpenSource клиент

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

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

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

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

NewRelic

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

* OpenSource клиент

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

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

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

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

Zabbix

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

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

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

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

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

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

Atop (!!!)

OKMeter.IO

Riemann

PCP.IO

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

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

выручает atop

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

OKMeter

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

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

* Linux only

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

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

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

Riemann

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

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

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

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

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

PCP.IO

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

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

* Честный realtime

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

* Linux-only

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

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

Winner ?

Zabbix:

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

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

* OpenSource, Self-Hosted

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

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

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

* libzbxpgsql: template + zabbix module

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

libzbxpgsql

Недостатки:

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

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

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

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

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

Mamonsu **

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

https://github.com/postgrespro/mamonsu

* Активный zabbix agent

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Mamonsu plugin

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

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

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

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)]

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

Mamonsu: версия 0.0.6

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

Mamonsu: версия 0.0.6

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

Mamonsu: версия 0.0.6

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

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

Приглашаем:

* тестеры!

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

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

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

www.postgrespro.ru

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