Open PostgreSQL Monitoring

Материал из ALT Linux Wiki

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

Ссылки