MuninにPotgreSQLの監視をさせてみる
CentosにMunin version 2.0.12
監視したいのはWindows7(win7)のPostgreSQL
の構成です
Windows7のPostgresは外からアクセスできるようにしておきます
vi /etc/munin/plugin-conf.d/munin-node
にwin7へのpostgresqlの設定をかいて
[snmp_win7_postgres_*]
env.dbhost 192.168.1.100
env.dbport 5432
env.dbname postgres
env.dbuser postgres
env.dbpass password
シンボリックリンクをはって
ln -s /usr/share/munin/plugins/postgres_connections_ ./snmp_win7_postgres_connections_All
ためす
munin-run snmp_win7_postgres_connections_All
→ Unable to detect PostgreSQL version
とエラー
エラー箇所のソースをみるとバージョンが取れない様子
下記の482行目を483行目に直してやると動きました
473 sub get_version {
474 my ($self) = @_;
475
476 return if (defined $self->{detected_version});
477
478 my $r = $self->runquery("SELECT version()");
479 my $v = $r->[0]->[0];
480 die "Unable to detect PostgreSQL version\n"
481 # unless ($v =~ /^PostgreSQL (\d+)\.(\d+)(\.\d+|devel) on/);
482 unless ($v =~ /^PostgreSQL (\d+)\.(\d+)\.(\d+)/);
483 $self->{detected_version} = "$1.$2";
484 }
Centosの場合
select version();
-----
"PostgreSQL 8.4.13 on i386-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 32-bit
"
Windows7の場合
select version();
-----
"PostgreSQL 9.1.1, compiled by Visual C++ build 1500, 32-bit"
これで
munin-run snmp_win7_postgres_connections_All
→
active.value 0
idle.value 0
idletransaction.value 0
unknown.value 0
waiting.value 0
取れました。
あとは、画面にグラフが出れば…
なにの出てこない
vi /etc/munin/plugin-conf.d/munin-node
にwin7へのpostgresqlの設定を変えてみる
(snmp_win7_postgres_* → postgres_*)
[postgres_*]
env.dbhost 192.168.1.100
env.dbport 5432
env.dbname postgres
env.dbuser postgres
env.dbpass password
画面出て来ました
ただ、localhostのところへ出てくる…
改良の必要ありです
(Perl覚えようかな)