MuninにPostgreSQLを監視させるときにはまったこと

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

画面出て来ました

munin-postgres

ただ、localhostのところへ出てくる…
改良の必要ありです
(Perl覚えようかな)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください