USBRHをnagiosで警告メール

muninを使って、USBRHで室内温度の警告をさせていたけど、 警告状態になった時の連続メールがうざいので、 スクリプトを間に入れたけど、動きがおかしいので、 監視を nagios3 にさせてみようと実験。

nagiosであれば、管理画面で警告メールの送信などを、Webで止めたりできる!!

nagios3 でチェックするには、check_XXXX といったプログラムが必要だけど、 USBRH では、自作する必要がある。普通ならperlを使うんだけど、 簡単な処理で、巨大なPerlインタプリタを実行するのは避けたい。 以前から、モジュール機能の無い「組み込み専用Perl」が無いかと、 物色していたけど、Lua というプログラム言語を見つけた。 というわけで、初めての Lua で、check_usbrh を作ってみた。

(( Luaインストール ))
# aptitude install lua50

(( /etc/nagios3/my-plugins/check_usbrh ))
#!/usr/bin/lua

-- arg[1] warning
-- arg[2] critical

if table.getn(arg) < 2 then
    print( "UNKNOWN" )
    os.exit( 3 )
else
    warning  = tonumber( arg[1] )
    critical = tonumber( arg[2] )
end

fh = assert(io.popen("/usr/local/bin/usbrh","r"))
temp = tonumber( fh:read("*n") )
hum  = tonumber( fh:read("*n") )
fh:close()

if temp >= critical then
    print( string.format( "USBRH CRITICAL - %4.2f,%4.2f%%" ,
                          temp , hum ) )
    os.exit( 2 )
elseif temp >= warning then
    print( string.format( "USBRH WARNING - %4.2f,%4.2f%%" ,
                          temp , hum ) )
    os.exit( 1 )
else
    print( string.format( "USBRH OK - %4.2f,%4.2f%%" ,
                          temp , hum ) )
    os.exit( 0 )
end

(( /etc/nagios-plugins/config/usbrh.cfg ))
# 'check_usbrh' command definition
define command{
        command_name    check_usbrh
        command_line    /etc/nagios3/my-plugins/check_usbrh
                           '$ARG1$' '$ARG2$'
        }

(( /etc/nagios3/conf.d/localhost_nagios2.cfg ))
# USBRH
define service{
        use    generic-service
        host_name  localhost
        service_description   USBRH
                check_command  check_usbrh!32!35
        }

Lua 、こりゃ、ほんとに軽そうな言語。数値が絡んだら、awk とか使ったりしてたけど、 これならsh変わりにも使えそう。

 

2017年2月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

ウェブページ

アーカイブ

Webデータ

このブログ記事について

このページは、T-Saitohが2011年7月29日 01:06に書いたブログ記事です。

ひとつ前のブログ記事は「子ども会の壁新聞作り」です。

次のブログ記事は「RT @jun1s: 日本の特許ゴ...(07/27)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。