Nagios の check_vnc を設定する。


★ピノ イチゴ味



※写真と本文は関係ありません。


もう少し調べたいけどとりあえず書いとこう。


Nagios の check_vnc


中身は python スクリプトですね。

VNCSnapshot をインストール(解凍して /usr/local/bin にコピー。動作確認 → VNC のスクリーンショットの保存が出来る!!)
で、check_vnc スクリプトを動作させる。ちょっと古くて心配だったけど下記修正で動作する。

こんな感じでエラー。



UNKNOWN: 'vncsnapshot' cannot be found in path. Please install the vncsnapshot program or fix your PATH environment variable


vncsnapshot への PATH が通ってない?

os.environ[‘PATH’] = ‘/usr/local/bin’ で PATH を設定。


修正箇所


[root@nagios libexec]# diff -Nur  check_vnc_org check_vnc
--- check_vnc_org   2010-01-12 17:34:09.000000000 +0900
+++ check_vnc   2010-01-12 17:40:58.000000000 +0900
@@ -43,6 +43,8 @@
 __title__       = "Nagios Plugin for VNC"
 __version__     = 0.4
 
+os.environ['PATH'] = '/usr/local/bin'
+
 DEFAULT_TIMEOUT = 10
 # The standard VNC port
 DEFAULT_PORT    = 5900


この修正で動作しました。


nagios ユーザで Login してシェルからスクリプトを実行するとエラーなし。nagios ユーザで実行してるつもりなのに、うーん。
スクリプト内で PATH と ユーザを表示するようにちょっと手を加える。


[root@nagios libexec]# diff -Nur check_vnc_org check_vnc
--- check_vnc_org   2010-01-12 17:34:09.000000000 +0900
+++ check_vnc   2010-01-14 11:51:04.000000000 +0900
@@ -26,7 +26,8 @@
 CRITICAL = 2
 UNKNOWN  = 3
 
-import os
+#import os
+import pwd, os
 import re
 import sys
 import signal
@@ -43,6 +44,8 @@
 __title__       = "Nagios Plugin for VNC"
 __version__     = 0.4
 
+#os.environ['PATH'] = '/usr/local/bin'
+
 DEFAULT_TIMEOUT = 10
 # The standard VNC port
 DEFAULT_PORT    = 5900
@@ -65,6 +68,9 @@
     else:
         # This one is intentionally different
         print "UNKNOWN: %s" % message
+        print os.environ['PATH']
+        print pwd.getpwuid(os.getuid())[0]
+
         sys.exit(UNKNOWN)


と、こんなメッセージが出るので。


UNKNOWN: 'vncsnapshot' cannot be found in path. Please install the vncsnapshot program or fix your PATH environment variable
/sbin:/usr/sbin:/bin:/usr/bin
nagios


PATH → /sbin:/usr/sbin:/bin:/usr/bin
user → nagios
ということらしい。

nagios ユーザはともかく、この PATH ってどこで設定してるんだろうか…。


/etc/rc.d/rc.sysinit の中で定義、
/etc/init.d/functions

# Set up a default search path.
PATH=”/sbin:/usr/sbin:/bin:/usr/bin”
export PATH

で定義してあるっぽいけどなぁ。


python と PATH 。
あとで調べよう。みんなのPython に載ってるかしら。。