Open PostgreSQL Monitoring
Open PostgreSQL Monitoring (OML) позволяет, как и конкурентные решения, строить динамические графики и диаграммы, создавать произвольный набор данных для мониторинга, проводить аналитику производительности, следить за «здоровьем» сервера, управлять командой и т.д.
При использовании несколько рабочих серверов с PostgreSQL, OPM отлично подойдёт для мониторинга активности БД с применением DBA-ориентированных наборов данных: размер БД, показатель хитов, задержки репликации, загрузка системы, раздувание страниц (page bloat), длительные запросы, генерация WAL-файлов, блокировки, состояние бекэндов и т.д. OPM состоит из удалённых агентов, системы хранения статистики и графического веб-интерфейса. Большая часть кода написана на Perl, сбор данных создан на базе Nagios, но вся система рассчитана на расширение и встраивание в другие системы, а также перевод на другие языки.
Установка OML в ALT Linux Sisyphus
Поскольку пакеты только что собраны, в ALT Linux p7 их ещё нет, значит ставить мы будем всё в систему, обновлённую до Сизифа (ну или просто ставя нужные пакеты в p7).
В принципе, всё делается по инструкции от разработчиков, за исключением того, что весь код мы ставим из пакетов.
Минимальное количество узлов, на которые будем разворачивать систему:
- узел с веб-интерфейсом OML
- узел с postgresql9.3 (для хранения базы OML обязательна версия 9.3 или выше)
- узел с nagios (сейчас мониторинг возможен только поверх nagios)
- узел с postgresql, который мы мониторим
Узел с OML и PostgreSQL 9.3
Поскольку в p7 ещё нет PG 9.3, мне пришлось выделить контейнер, в котором локально установлен PG 9.3, и в нём же развернуть веб-интерфейс OML (разработчики в инструкции тоже подразумевают, что PG с базой OML локален.
Ставим следующие пакеты:
- opm-core-2.3-alt1
- opm-wh_nagios-2.3-alt1
и расширения для postgresql:
- opm-wh_nagios-postgresql-2.3-alt1
- opm-core-postgresql-2.3-alt1
Для работы OML UI нужно следующее:
- perl-Mojolicious (4.50 или новее, но меньше 5.0)
- perl Mojolicious-Plugin-I18N (подтянется по зависимостям)
В Сизифе perl-Mojolicious-5.17-alt1, а в p7 — perl-Mojolicious-3.57-alt1 Поэтому пакет-то подтянулся по зависимостям, но я скачал код 4.6.0 с https://metacpan.org/release/MRAMBERG/Mojolicious-4.60 и заменил каталоги /usr/share/perl5/Mojo, /usr/share/perl5/Mojolicious и файлы /usr/share/perl5/Mojo.pm /usr/share/perl5/Mojolicious.pm
После этого в /etc/opm редактируем конфиг (доступ к PG для хранения базы OMP) и запускаем сервер: Вписываем в /etc/sysconfig/hypnotoad
#USER="nobody" APP="/usr/share/opm-core/ui/script/opm"
и
# service hypnotoad start
Если я забыл указать какие-то зависимости в пакете, то он будет ругаться при запуске :)
В /etc/cron.d положил файл с
* * * * * root psql -U postgres -c 'SELECT wh_nagios.dispatch_record()' opm >/dev/null
(не знаю, что делает ;))
Узел с PostgreSQL
На узел, который мы будем мониторить, надо поставить
- nagios-plugins-check_pgactivity-1.13-alt1
добавить строку
command[check_pgactivity]=/usr/lib/nagios/plugins/check_pgactivity -h localhost --status-file /tmp/check_pgactivity.$ARG1$.data -s $ARG1$
в
/etc/nagios/nrpe.cfg
и перезапустить
# service nrpe reload
Узел с nagios
Ставим
- opm-nagios_dispatcher-2.3-alt1.noarch.rpm
и настраиваем согласно инструкции.
Не забываем добавить опрос статистики, ради которой всё затевалось. Например,
define service { use local-service host_name corppgsql service_description PostgreSQL-hit_ratio check_command check_nrpe_arg!check_pgactivity!hit_ratio notifications_enabled 1 }
На этом всё. Вопросы можно задавать разработчикам :) По поводу упаковки — http://bugs.altlinux.org или по почте lav@etersoft.ru