Xymon入門書籍を販売中

2.7 Xymon Tips and Tricks

ここではXymonでのよくある問題を解決する情報を提供します.

2.7.1 赤・黄色・緑の異なるアイコンの意味は?

Color 状態 24時間以内の状態変化がない場合 24時間以内の状態変化がある場合
Green 障害無し
Yellow 黄色 軽微な障害
Red 障害
Clear 透明 データ無し
Purple 監視不可
Blue 監視一時停止
不明

2.7.2 クライアント側のテストが表示されない.

クライアントをインストールしましたか? XymonクライアントパッケージはXymonサーバをインストールしたときだけ自動でインストールされ, ほかのシステムには,クライアント側の監視を表示するには, クライアントパッケージを,Xymonのconfigureスクリプトを"--client"オプション付きにしてビルドする必要があります.

クライアントをインストールしたのなら,二つのよくある問題をチェックしてください.

2.7.3 クライアントが古いホスト名を利用している.

hosts.cfgファイルのホストのエントリにCLIENT:clienthostname タグを追加するか,クライアントを正規のホスト名を使うように再設定してください.

2.7.4 bbmv/bbrmコマンドはどこにありますか?

それらはXymonネットワークデーモンに統合されました.次の3つの質問を見てください.

2.7.5 テスト用のステータスを消す方法は?

コマンドを使ってください.(訳注:ホスト名のftpを削除するには下記のようにします.)

~/server/bin/bb 127.0.0.1 "drop ホスト名 ftp"

テストの跡を永遠に削除します."drop ホスト名 ftp"のまわりを引用する必要があることに注意してください.

2.7.6 ホストを消す方法は?

ホストごと消すには,まず, ~/server/etc/hosts.cfg ファイルからホストを消してください.そして,コマンドを使ってください.

~/server/bin/bb 127.0.0.1 "drop ホスト名"

ホストの跡を永遠に削除します."drop ホスト名"のまわりを引用する必要があることに注意してください.

2.7.7 ホストの名前を変える方法は?

まず,~/server/etc/hosts.cfg ファイルを新しい名前に変えてください.そして,履歴情報を新しい名前へ移動します.次を実行してください.

~/server/bin/bb 127.0.0.1 "rename 古いホスト名 新しいホスト名"

2.7.8 Apacheパフォーマンスグラフを取得するには

Charles Jones がXymonメーリングリストサーバに方法を提供しました.

From: Charles Jones
Date: Sun, 06 Feb 2005 21:28:19 -0700
Subject: Re: [hobbit] Apache tag

Okay, first you must make the indicated addition to your apache
httpd.conf (or you can make a hobbit.conf in apaches conf.d directory).
[ed: See the hosts.cfg man-page for the "apache" description]

Then, you must restart apache for the change to take effect
(/etc/init.d/httpd restart).

Then, manually test the server-stats url to make sure it's working, by
using your browser and going to
http://your.server.com/server-status?auto  (you can also go to
http://your.server.com/server-status/ to get some nice extended apache
performance info).  You should get back something like this:

Total Accesses: 131577
Total kBytes: 796036
CPULoad: 1.0401
Uptime: 21595
ReqPerSec: 6.09294
BytesPerSec: 37746.7
BytesPerReq: 6195.16
BusyWorkers: 43
IdleWorkers: 13

Scoreboard: RR__RWR___RR_R_RR_RRRRRRRRR_RRRRRRR__RRR_RRRRCRRRRR_RRRR........................................................................................................................................................................................................

Now, assuming you are getting back the server-status info, time to make
sure your hosts.cfg is correctly configured to collect and graph the
data.  Heres what I have in mine:

1.2.3.4    my.server.com  # conn ssh http://1.2.3.4 apache=http://1.2.3.4/server-status?auto TRENDS:*,apache:apache|apache1|apache2|apache3

 From what you said of your setup, I'm guessing your only problem is
 using the wrong url for the apache tag (you used
 "apache=http://192.168.1.25/xymon/" which just won't work - that's the
 kind of URL you would use for the http tag).

 Hope this helped.

 -Charles

2.7.9 XymonのWebページにMRTGグラフを追加する方法は?

このための専用の文書があります(訳注:未訳). Xymonがネイティブに扱えるデータ形式でMRTGへ保存する方法が説明されています.

(訳注:SNMPで取得する値のグラフ化であれば,devmonが便利です.) (訳注:SNMP以外のグラフ表示ならば,エクステンション+LARRDが便利と思います.グラフの作り方を参照ください.)

2.7.10 もっと頻繁に更新するには?

~/server/etc/tasks.cfg にXymonプログラムのすべての更新間隔が定義されます. ネットワークテストのデフォルトは5分間隔で,Webページの更新間隔は1分に1回です.

bbretest-net.sh をネットワークテストサーバ(Xymonのデフォルトです)で動かしている場合は注意してください, 失敗したネットワークテストは,最初に失敗してから30分後までは毎分実行されます, そのため通常はネットワークテストの間隔を変える必要はあまりありません.

2.7.11 温度を華氏温度でグラフ表示させたい

~/server/etc/graphs.cfg ファイルを編集して,[temperature] 定義を,デフォルトから,その下にある華氏のグラフに変更してください.

2.7.12 アラートのメッセージからHTMLリンクを削除する方法は?

~/server/etc/alerts.cfg の FORMAT=TEXT を FORMAT=PLAINに変更してください.

2.7.13 Webでmanページが見つかりません.

一般に,Apacheは.cgiを含むファイル名がCGIであると誤ります,そのため,CGIのmanページが拒否されます. Stephen Beaudryさんが解決方法を見つけました.

これはデフォルトで引き起こされ,Apacheは.cgiを含むファイル名をCGIスクリプトに関連づけます.
httpd.confを下記に変更することで対応しました.

AddHandler cgi-script .cgi     ->を次のように変更->    AddHandler cgi-script .cgi$

2.7.14 アラートのメールがサブジェクトなしで来ます.

Xymonはデフォルトでは送信にmailコマンドを利用します. SolarisとHP-UXのmailコマンドはXymonが利用している-Sオプションを理解しません. そのため,サブジェクト無しのメールが来ます. この問題は etc/xymonserver.cfg のメールの設定で,mailxコマンドを代わりに利用することで解決します. この変更の後にXymonを再起動させる必要はありません.

2.7.15 XymonはSNMPトラップの受信をサポートしていますか?

直接はしていません. しかしほかのオープンソースのソフトウェアでSNMPトラップの受信を可能にします. Xymonにトラップを接続するエレガントな方法は,Andy Farriorによる記事を見てください(訳注:未訳).

2.7.16 自作の監視スクリプトはどうやって作りますか?

スクリプトやカスタムプログラムで自動的に取得できるものであればどんなものでもXymonに追加できます.

なにかユニークなものを監視する必要があれば,シンプルなエクステンションスクリプトを書きます.いくつかのことを設計する必要があります.

単純なクライアント側のエクステンションはこんな感じです.

リスト 2.1 myscript.sh
#!/bin/sh

COLUMN=mytest           # Name of the column
COLOR=green             # By default, everything is OK
MSG="Bad stuff status"

# Do whatever you need to test for something
# As an example, go red if /tmp/badstuff exists.
if test -f /tmp/badstuff
then
COLOR=red
MSG="${MSG}

`cat /tmp/badstuff`
"
else
MSG="${MSG}

All is OK
"
fi

# Tell Xymon about it
$BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date`

${MSG}
"

exit 0

事前に定義されている環境変数に注意してください. BB, BBDISP, MACHINE は,すべてXymonのxymonlaunch経由でスクリプトを実行するときに提供されます. "Bad stuff status"と出力されるMSG変数がステータスメッセージを表示するのに使われることにも注意してください, 状態がなにであるかを定義したとき,メッセージが追加されます.

これを実行するには,スクリプトを ~xymon/client/ext/ (例:Xymonクライアントをインストールしたディレクトリの下のext/)ディレクトリに保存してください. それから,~xymon/client/etc/clientlaunch.cfg ファイルに下記のように新しいセクションを追加してください.

リスト 2.2 ~xymon/client/etc/clientlaunch.cfg
[myscript]
	ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
	CMD $XYMONCLIENTHOME/ext/myscript.sh
	LOGFILE $XYMONCLIENTHOME/logs/myscript.log
	INTERVAL 5m

サーバ側スクリプトもほとんどは同じです. しかし一般的に,専用タグを定義しているhosts.cfgファイルからホスト名を取得するためにbbhostgrepユーティリティを利用し, それぞれのホストにメッセージを送ります.このように.

リスト 2.3 serverside.sh
#!/bin/sh

BBHTAG=foo           # What we put in hosts.cfg to trigger this test
COLUMN=$BBHTAG	# Name of the column, often same as tag in hosts.cfg

$BBHOME/bin/bbhostgrep $BBHTAG | while read L
do
  set $L # To get one line of output from bbhostgrep

  HOSTIP="$1"
  MACHINEDOTS="$2"
  MACHINE=`echo $2 | $SED -e's/\./,/g'`

  COLOR=green
  MSG="$BBHTAG status for host $MACHINEDOTS"

  #... do the test, perhaps modify COLOR and MSG

  $BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date`

  ${MSG}
  "
done

exit 0

サーバ側の監視では,hosts.cfgファイルに見つかるホストのリストにループして,すべてにステータスメッセージを送ることに注意してください. それ以外はクライアント側の監視が適しています.