помимо установленных плагинов и прописанного в munin-node.conf вот этого:
[postgres_*]
user postgres
env.PGUSER postgres
env.PGPORT 5432
env.PGHOST localhost
env.PGPASSWORD 123
в убунту надо поставить пакет:
libdbd-pg-perl
это перловый драйвер доступа к postgres
также есть проблема вот в этом модуле:
/usr/share/perl5/Munin/Plugin/Pgsql.pm
из-за него в логи сыпятся ошибки вот такого плана:
2012/05/22-11:57:59 [20608] Error output from postgres_transactions_ALL:
2012/05/22-11:57:59 [20608] Unable to detect PostgreSQL version
ну, и графики, соответственно не рисуются.
лечицца так, ищем рутинку:
sub get_version {
my ($self) = @_;
return if (defined $self->{detected_version});
my $r = $self->runquery("SELECT version()");
my $v = $r->[0]->[0];
die "Unable to detect PostgreSQL version\n"
unless ($v =~ /^PostgreSQL (\d+)\.(\d+)\.(\d+) on/);
$self->{detected_version} = "$1.$2";
}
строка
unless ($v =~ /^PostgreSQL (\d+)\.(\d+)\.(\d+) on/);
пытается распарсить селект из базы, который у нас выглядит вот так:
root@1c:~# psql -U postgres -W -h localhost
Password for user postgres:
psql (9.0.4-alt1)
Type "help" for help.
postgres=# select version();
version
----------------------------------------------------------------------------------------------------------------
PostgreSQL 9.0.4-alt1 on x86_64-pc-linux-gnu, compiled by GCC gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
(1 row)
postgres=# \q
т.е вместо 3 цифр версии у нас есть приписка в виде «-alt1», которую скрипт увидеть не ожидает.
правим строчку парсинга просто дописывая недостающий момент:
unless ($v =~ /^PostgreSQL (\d+)\.(\d+)\.(\d+)-alt1 on/);
все работает.