リモート監視 nagios-nrpe を使ってみる
Raspberry-Pi で WiFi スキャンをさせたいけど、警告を出すために raspberry-pi 側に nagios4 のような本格的な監視システムを入れるのは資源のムダに思えたので、軽量な監視とすべく、リモート監視用の nagios-nrpe-server を使ってみた。
メインサーバ port=5666 リモート 監視プラグイン nagios4 ----> check_nrpe ------------> nrpe ----> check_root nagios-nrpe-plugin nagios-nrpe-server
nrpe は リモートの監視プラグインを check_nrpe と nagios-nrpe-server が経由して呼出してくれる。
リモートの監視側
nagios-nrpe-server をインストールして、監視サーバからの接続を許可する。インターネット経由で監視するなら、5666 ポートが通るようにファイアウォールの設定が必要。
((( 必要パッケージのインストール ))) $ sudo aptitude install nagios-nrpe-server ((( /etc/nagios/nrpe.cfg ))) # 監視サーバからの接続を許可 allowed_hosts=127.0.0.1,::1,192.168.xx.00/24 ~~~~~~~~~~~~~~~~~(追加) ((( /etc/nagios/nrpe.d/enabled.cfg ))) # 監視するためのチェック処理を登録。nrpe.cfg から nrpe.d/*.cfg に設定を移動 command[check_root]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p / command[check_load]=/usr/lib/nagios/plugins/check_load $ARG1$ ((( /etc/default/nagios-nrpe-server ))) # 自宅内のような閉じた中でSSLが不要の場合 NRPE_OPTS="-n" ((( nagios-nrpe-server を再起動 ))) $ sudo systemctl restart nagios-nrpe-server
メインの監視サーバ側
nrpe用のプラグインをインストールすると、/etc/nagios-plugins/config/check_nrpe.cfg や /usr/lib/nagios/plugins/check_nrpe を入れてくれる。
((( 監視側にnrpe用のプラグインを追加 ))) $ sudo aptitude install nagios-nrpe-plugin # nagios or icinga はインストール済み ((( nrpe の入ったリモートが呼び出せるか確認 ))) $ /usr/lib/nagios/plugins/check_nrpe -H リモート -c check_root DISK OK - free space: / 21321 MB (74% inode=86%);| /=7363MB;23944;26937;0;29930 ((( /etc/nagios-plugins/config/check_nrpe.cfg ))) # nagios/icingaなどのcommand設定の確認 # this command runs a program $ARG1$ with no arguments and enables SSL support define command { command_name check_nrpe command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } # this command runs a program $ARG1$ with no arguments and disables SSL support define command { command_name check_nrpe_nossl command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -n } ((( nagios4 のサービス監視に check_nrpe を呼出す設定を追加 ))) define service{ use local-service host_name リモート service_description DISK check_command check_nrpe!check_root # check_command check_nrpe_nossl!check_root # SSLなしで設定した場合 } ((( nagios4 を再起動 ))) $ sudo systemctl restart nagios4
nagios4 で監視ができるようになったので、温湿度センサーや空気品質センサーの確認も nrpe 経由に変更してみた。
WiFiスキャンをさせてみた
自宅内のネットワークに繋がらない時があって悩んだら、外で使っていたモバイルルータがつけっぱなしで、自宅内ネットワークのサービスに接続できないのが原因だったりする。パケットも無駄に消費するので、自宅内でモバイルルータが動いていたら警告させるようにしたい。
wifi scan
メインサーバは有線だけなので、有線LAN接続で WiFi が空いている Raspberry-Pi で監視させてみた。
$ sudo iw dev wlan0 scan | grep "SSID: ルータのSSID"
最初は homebridge の homebridge-cmdswitch2 の state_cmd に仕込んでみたけど、モバイルルータが動いていたら警告してほしい。Siri のオートメーション経由で警告することもできるかもしれないけど、スマホに頼る形になるなぁ。
nagios で警告させたいけど、raspberry-pi に nagios を入れるのは資源のムダに思える。ということで、Raspberry-Pi には nagios の監視をリモートで呼び出す nagios-nrpe-server を 入れて、上記 iw コマンドを動かす check スクリプトを書いてみた。
check_iwscan
nagios-nrpe-server から呼出す際に、Raspberry-Pi で動かすのもあるし、OS 負荷が軽くなるように Lua で書いてみた。
#!/usr/bin/lua -- 見つけるべきSSID local check_list = {} check_list[ "tsaitoh.net" ] = "ok" check_list[ "tsaitoh.net_e5785" ] = "warning" check_list[ "tsaitoh.net_hwd14" ] = "critical" -- 見つけたSSID毎の数 local count = {} count[ "ok" ] = 0 count[ "warning" ] = 0 count[ "critical" ] = 0 -- スキャン結果を処理 local handle = io.popen( "/usr/bin/sudo /sbin/iw dev wlan0 scan" , "r" ) if handle then for line in handle:lines() do -- SSID を抽出 ssid = string.match( line , "^%s*SSID: (.+)$" ) if ssid then -- SSID のカウント local lv = check_list[ssid] if lv then count[lv] = count[lv] + 1 end -- print( ssid ) ; end end handle:close() end -- カウント結果に応じたexit値を決める local status = 0 local st_mess = "Ok" if count["critical"] > 0 then status = 2 st_mess = "Critical" elseif count[ "warning" ] > 0 then status = 1 st_mess = "Warning" end -- 結果の表示 print( string.format( "IWSCAN %s - ok:%d/warn:%d/critical:%d" , st_mess , count["ok"] , count["warning"] , count["critical"] ) ) os.exit( status )
@TohruSaitoh-23/03/03
- 03/03 書きなれない様式の文書で、語尾がマンネリ化していたので、ChatGPT に違う言い回しを教えてもらう。
- 03/01 仕事がひと段落して今夜は「祝杯」のはずだったのだが、とある連絡で「やけ酒」に変更になった。
- 02/24 あかん、ボケてる。
祝日空けなのに月曜日の日程チェックしてた。
金曜やんけ。 - 02/22 2枚目中央の黒にゃん https://twitter.com/muRata_PR/status/162…
ウォーキング
この記事は@TohruSaitohのつぶやきのまとめです。
@TohruSaitoh-23/02/16
- 02/16 いちゃもん付けてる人は、番号表示なしのクレジットカード増えてるの知らないんだろうな。チップ内のデータはそのまんまで番号や顔写真印刷なしバージョンが作られるだけ。ということで、マイナカードの表面にシール貼ってもよさそうだな。 https://twitter.com/YahooNewsTopics/stat…
- 02/07 バカな動画を上げるのは昔はバカッターって言ってたけど、今はInstagramかtiktokだよなぁ。 今なら「バカ映え」とかいうのはどうかな?
- 02/02 今日2/2はネコの節句です。 https://twitter.com/TohruSaitoh/status/1…
Thunderbird
- 01/31 Microsoft 365 のメールを #Thunderbird の #OAuth2 認証で使っていたんだけど、数日前に再認証の画面がでてから、色々設定しなおしても、365メールが読めなくなった。MS365の認証が厳しくなったのかな?
この記事は@TohruSaitohのつぶやきのまとめです。