アイビスヘッダー

IBS

2012年2月1日水曜日

munin で tomcat7 監視設定

CentOS6.2(x86_64) +  tomcat7.0.25 + munin-node1.4.6(epel) の環境です。

tomcat設定
$TOMCAT_HOME/conf/tomcat-users.xml に2行追加

<role rolename="manager-status"/>
<user username="munin" password="munin" roles="manager-status"/>


munin-node設定
/etc/munin/plugin-conf.d/tomcat ファイルを作成

[tomcat_*]
env.host 127.0.0.1
env.port 8080
env.request /manager/status?XML=true
env.user munin
env.password munin
env.timeout 30
env.connector jk-8009


リンクをはる
# ln -s /usr/share/munin/plugins/tomcat_* /etc/munin/plugins/


確認
# /usr/share/munin/plugins/tomcat_access autoconf
# curl http://munin:munin@127.0.0.1:8080/manager/status?XML=true


必須パッケージに、perl-XML-Simpleが必要なところではまりましたが
/usr/share/munin/plugins/tomcat_access autoconf が教えてくれました。

pluginファイルがそのままでは、tomcat7では利用できませんので編集します。
/etc/munin/plugins/tomcat_access

if($xml->{'connector'}->{'"http-bio-'.$PORT.'"'}->{'requestInfo'}->[0]->{'requestCount'}) {
    print "accesses.value " . $xml->{'connector'}->{'"http-bio-'.$PORT.'"'}->{'requestInfo'}->[0]->{'requestCount'} . "\n";
} else {
    print "accesses.value U\n";
}

/etc/munin/plugins/tomcat_threads

if($xml->{'connector'}->{'"http-bio-'.$PORT.'"'}->{'threadInfo'}->[0]->{'currentThreadsBusy'} &&
    $xml->{'connector'}->{'"http-bio-'.$PORT.'"'}->{'threadInfo'}->[0]->{'currentThreadCount'}) {
    print "busy.value " . $xml->{'connector'}->{'"http-bio-'.$PORT.'"'}->{'threadInfo'}->[0]->{'currentThreadsBusy'} . "\n";
    print "idle.value " .
          ($xml->{'connector'}->{'"http-bio-'.$PORT.'"'}->{'threadInfo'}->[0]->{'currentThreadCount'} -
          $xml->{'connector'}->{'"http-bio-'.$PORT.'"'}->{'threadInfo'}->[0]->{'currentThreadsBusy'}) . "\n";
} else {
    print "busy.value U\n";
    print "idle.value U\n";
}

/etc/munin/plugins/tomcat-volume

if($xml->{'connector'}->{'"http-bio-'.$PORT.'"'}->{'requestInfo'}->[0]->{'bytesSent'}) {
    print "volume.value " . $xml->{'connector'}->{'"http-bio-'.$PORT.'"'}->{'requestInfo'}->[0]->{'bytesSent'} . "\n";
} else {
    print "volume.value U\n";
}

変更内容としては、tomcat6までは connector name が
'http-8080'
で返ってきてたんですが、tomcat7からは
'"http-bio-8080"'
で返ってくるので、それに対応することです。

後は、tomcatの再起動と、munin-nodeの再起動で完成です。

2 件のコメント:

  1. × ln -s /usr/share/munin/plugins/tomat_* /etc/munin/plugins/
    ○ ln -s /usr/share/munin/plugins/tomcat_* /etc/munin/plugins/

    返信削除
    返信
    1. 匿名様、投稿ありがとうございます。
      変更しました。

      削除