[munin]アラートメールが飛ばない

Muninでアラートメール設定を行ったけど、メールが飛ばないサーバーがあったので調査

<環境>
Centos 6.3

rootで作業します
postfixがはいってたので、それを使います(というより使われてる)

# service postfix start
で、OKとはでるが

# service postfix status
postfix master が停止していますが pid ファイルが残っています

ログを見る
# vim /var/log/maillog
open lock file /var/lib/postfix/master.lock: cannot open file: Permission denied

権限がない?

# ls -al /var/lib/postfix/master.lock
-rw——-. 1 munin munin 17 9月 25 10:23 2013 /var/lib/postfix/master.lock

ユーザーがmuninになってるのでpostfixに変えてみる

# chown postfix /var/lib/postfix/master.lock

メール送信テスト
# su – munin
# sh -c “/usr/share/munin/munin-limits –contact email –force”

で、メールが届きました

[munin]アラートメールを送る

muninでしきい値を超えた時にメールを送れるようなので設定してみました。

<環境>
Centos 6.3
Munin version 2.0

ハードディスク容量でテストしてみます

今の状態は


# munin-run df
_dev_vda3.value 2.72093653752988
_dev_shm.value 0.0282237832413447
_dev_vda1.value 21.9097563361532

設定を確認


# munin-run df config
graph_title Disk usage in percent
graph_args --upper-limit 100 -l 0
graph_vlabel %
graph_scale no
graph_category disk
_dev_vda3.label /
_dev_vda3.warning 92
_dev_vda3.critical 98
_dev_shm.label /dev/shm
_dev_shm.warning 92
_dev_shm.critical 98
_dev_vda1.label /boot
_dev_vda1.warning 92
_dev_vda1.critical 98

設定を変えます


# vim /etc/munin/munin.config

+ contact.email.command mail -s "Munin ${var:host}" sample@example.com
+ contact.email.max_messages 10
+ contact.email.always_send warning critical

[localhost]
    address 127.0.0.1
    use_node_name yes
+    df._dev_vda3.warning 1
+    df._dev_vda3.critical 2

テストメールを送ってみる


sudo -u munin sh -c "/usr/share/munin/munin-limits --contact email --force"

下記のようなメールが届きます


localhost :: localhost :: Disk usage in percent
	OKs: /boot is 21.91, /dev/shm is 0.03, / is 2.72.

localhost :: localhost :: Connections through firewall
	OKs: Total is 14.00.

localhost :: localhost :: Inode usage in percent
	OKs: /boot is 0.07, /dev/shm is 0.04, / is 1.62.

localhost :: localhost :: File table usage
	OKs: open files is 1184.00.

localhost :: localhost :: Disk latency per device :: Average latency for /dev/vda
	OKs: Read IO Wait time is 0.02, Write IO Wait time is 0.00.

localhost :: localhost :: eth0 errors
	OKs: errors is 0.00, errors is 0.00.

しきい値は、いい値に変更してください

MuninでApache監視時のメモ

muninでApacheを監視するときのメモ

munin : centos
監視するApache環境 : Windows7、Apache2.2

http://localhost/server-status
が見れるようにする

http.conf
Include conf/extra/httpd-info.conf
→ 有効に(コメントアウトを外す)

LoadModule info_module modules/mod_info.so
→ 有効に(コメントアウトを外す)

LoadModule status_module modules/mod_status.so
→ 有効に(コメントアウトを外す)

httpd-info.conf

SetHandler server-status
Order deny,allow
Deny from all
Allow from .localhost

→ .localhostを環境に合わせる

ExtendedStatus On
→ 有効に(コメントアウトを外す)


SetHandler server-info
Order deny,allow
Deny from all
Allow from .localhost

→ .localhostを環境に合わせる

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覚えようかな)