Spongのインストールと基本設定
ネットワーク監視ツールSpongのインストールと基本的な設定を調査してみた.
SpongはSNMPによらない,TCPベースのシンプルなネットワーク監視ツールである.以下のようなことができる.
- pingによる死活監視.
- http,ssh,ntpなど,各種ネットワークサービスの監視.
- cpu,disk,memory使用率の監視.
$ apt-cache search spongとすると,以下の4つのパッケージが出て来た(※).
- spong-client
- クライアントプログラム.
- spong-server
- サーバプログラム.spong-clientは各監視対象のデータを収集し,spong-serverに渡す.
- spong-www
- WEBインタフェースプログラム.
- spong-common
- 共通ライブラリ
※ 2004/12/19 Debian GNU/Linux unstable
まず監視サーバにて以下を実行する.
# apt-get install spong-serverすると,spong-commonの設定情報として,spong-serverのサーバ名を聞かれるので入力する.インストールの最後に以下が出力された.
Modify /etc/default/spong-server to start the spong daemon upon startup従う./etc/default/spong-serverは
# Change the below to 1 if you want to run spong-server run_spong=0となっているので,run_spongの値を1に修正する.
run_spong=1起動.
# /etc/init.d/spong-server start
まず監視対象サーバにて以下を実行する.
# apt-get install spong-clientやはり,spong-commonの設定情報として,spong-serverのサーバ名を聞かれるので入力する.インストールの最後のメッセージを見ると,以下が分かる.
- 設定ファイル
/etc/default/spong-client
にて,spong-client,spong-networkそれぞれを起動するか否かの設定ができる.$ cat /etc/default/spong-client # Change the below to 1 if you want to run spong-client/-network run_client=1 run_network=0
spong-serverの場合と同様に,起動したければ値を1に変更する.デフォルトではspong-clientのみ起動するようになっている. - spong-clientはデフォルトでは,ディスク空容量,ロードアベレージ,syslog,klog,cron実行状況のみチェックする.
- チェック項目を修正するには,
/etc/spong/
配下の設定ファイルを修正する.設定の詳細については後述.
まずapacheをインストールする.詳細は割愛.次に監視サーバにて以下を実行する.
# apt-get install spong-serverするといくつか質問される.
- spong-wwwにて監視情報をグラフ表示できるが,そのためにはspong-rrdスクリプトを実行する必要がある.それをインストールするかどうかを聞かれるので,Yesと答える.
- apacheをインストール済だと,それを検知して,spong-wwwのためapacheの設定を更新してよいか聞かれる.恐ければバックアップをとってからYesとする.
Setting up spong-www (2.7.7-7) ... cp: `/usr/share/spong/Spong/plugins': specified destination directory does not exist Try `cp --help' for more information.こんな感じで対応できるだろうか.
# mkdir /usr/share/spong/Spong/plugins # apt-get install spong-www...できた?apacheの設定を確認すると,/etc/apache/httpd.confの末尾に
Include /etc/spong/apache.confが追記されている.apacheを再起動して確認してみる.
http://localhost/spong/ページが表示されればOK(※).
※ 現時点ではspong-serverに監視対象のサーバを登録していないので,つまらない表示になっている.
現在の状態では,spong-clientを起動したものの,サーバ側で設定していないので,spong-serverがエラーログを吐いている.
Sun Dec 19 17:49:18 2004 Error: save_status: undefined host [spong-client.example.com]spong-server側で監視対象の設定を追加していく(※).まず,設定ファイルは
/etc/spong/spong.hostsである.この設定ファイルでは主に以下の2種類の設定を行う.
- システムの関係者と,その人への連絡方法
- モニタリング対象のシステムと監視内容
%HUMANS = (
'root' => { name => 'The local super-user',
email => 'root@localhost' },
);
ハッシュのハッシュである.追加すると,以下のようになる.
%HUMANS = (
'root' => { name => 'The local super-user',
email => 'root@localhost' },
'hoge' => { name => 'hoge',
email => 'hoge@example.com' },
);
内側のハッシュのキーには以下がある.
- name
- 名前.必須.
- e-mailアドレス
- skytel
- skytelページャーの番号
- alltelsms
- Slltel Communications社のSMSサービス(?)の電話番号.
- teletouch
- teletouchページャーの番号
- teletouch_short
- teletouchページャー(small alpha pagers)の番号
- group
- 該当エントリをグループとして登録する際の,グループメンバーのキー.すなわち連絡先グループを設定する際に使用する.以下にhoge,fugaをメンバとするグループadminsを設定する例を示す.
%HUMANS = ( 'hoge' => { name => 'Hoge', email => 'hoge@example.com', }, 'fuga' => { name => 'Fuga', email => 'fuga@example.com', } 'admins' => { name => 'Admins Group', group => 'hoge,fuga' }, );
%HOSTS = ( # Leave this alone on this line );これに以下のように追加する.
%HOSTS = ( # Leave this alone on this line
'hoge.example.com' => { services => 'ftp smtp http',
contact => 'root' },
);
内側のハッシュのキーには以下がある.
- services
- ホスト上で稼働しているネットワークサービス.必須項目.複数ある場合は空白区切りで指定する.デフォルトでサポートされているのは以下.
- dns
- ftp
- smtp
- http
- imap
- pop3
- nntp
- nfs
- ntp
- ssh
%HOSTS = ( # Leave this alone on this line 'hoge.example.com' => { services => 'ping: http' }, ); - contact
- 該当ホストの担当者の連絡先.%HUMANSのエントリのキーを指定する.
- down | down:services
- 運用上,サーバ(後者の指定方法(down:services)の場合は特定のサービス)がダウンすると分かっている時間帯を設定する.設定しておくと該当時間にサーバ(あるいは特定のサービス)がダウンしても問題として認識されない.設定値は配列である([]で囲み,要素はカンマで区切る).時刻は以下のフォーマットで指定する.
d:hh:mm-hh:mm
頭のdは曜日(0から6で0は日曜,6は土曜)で*を指定すると毎日となる.残りの二つのhh:mmは(ダウンの)開始時刻と終了時刻である.hhは24時間で指定する.以下に例を示す.%HOSTS = ( # Leave this alone on this line 'hoge.example.com' => { services => 'ftp smtp http', down => [ "*:05:30-06:30", "0:00:00-04:00" ] }, ); - ip_addr
- 該当ホストが複数のネットワークインタフェースを持っているときに設定する.設定値は配列である([]で囲み,要素はカンマで区切る).
%HOSTS = ( # Leave this alone on this line 'hoge.example.com' => { services => 'ftp smtp http', ip_addr => [ "123.45.67", "123.45.68" ], contact => 'root' }, ); - skip_network_checks
- ネットワークチェックのスイッチ.0はチェックする(スキップしない),1はチェックしない(スキップする).spong-clientからのステータス更新は受け付けるホスト名やネットワーク構成の一時的な構成変更に対応するのに便利である.
※ 本節で説明する
/etc/spong/spong.hosts及び次節で説明する
/etc/spong/spong.groupsは,spong-serverにて設定すればよいと思う(spong-client側にも同名のファイルがあるが設定は不要...だと思う).
先述の
/etc/spong/spong.hostsにて設定した監視対象をグルーピングすることができる.設定ファイルは
/etc/spong/spong.groupsこの設定ファイルもまた,Perl文法にしたがう.デフォルトでは以下のように,全ホスト(監視対象)を含むグループが記述されている.
%GROUPS = (
'all' => { name => 'All Systems',
summary => "This groups contains all hosts monitored by spong" },
);
やはりハッシュのハッシュである.%HOSTSの場合と同様にエントリを追加していく.
%GROUPS = (
'all' => { name => 'All Systems',
summary => "This groups contains all hosts monitored by spong" },
'mytargets' => { name => "mytargets",
summary => "group setting test",
members => [
'hoge.example.com'
] },
);
上記はグループmytargetsを設定している.内側のハッシュの各項目は以下.
- name
- グループ名
- summery
- サマリ
- members
- グループのメンバ.%HOSTSに登録した対象をホスト名(FQDN)で指定する.
- compress
- Webインタフェースのテーブルの見栄えの設定である.監視していないサービス欄を除去するか否か.0は除去しない.1は除去する.デフォルトは0.
- display
- Webインタフェースのテーブルの見栄えの設定である.グループ表示画面でグループとして表示するか否かを指定する.0は表示しない.1は表示する.デフォルトは1.
Spongを運用する際には,cronなどを使用して毎日一回spong-cleanupコマンドを実行する必要がある.これにより,spongのデータファイルの退避や,監視サービス変更などに伴うゴミファイルの削除などが行われる.
spong-wwwを使用するとWebインタフェースにて各機器の状態を監視できるが,spong-clientをインストールすることによって使用できるspongを使用して機器状態を確認することもできる.オプションによりさまざまなデータを取得できるが,そのうちのいくつかを紹介する.オプションなしで実行すると,各機器の項目毎の状態が確認できる.
# spong
---------------------------------------------------
Key: . = green, ? = purple e
Y = yellow, R = red p d h j m
B = blue, o = clear i c i t o o s
n p s t b r s
Host: g u k p s y h
---------------------------------------------------
hoge.example.com . . . . . . .
fuga.example.com . . . . . . .
memobryがemoryになっているのはご愛敬.次に--briefにより,spong-serverに登録されている機器のステータス概要(問題有無レベル)が表示される.
# spong --brief green hoge.example.com green fuga.example.com次に-hostの後にホスト(監視対象機器)を指定することで,該当ホストの詳細情報を閲覧できる.
# spong -host hoge.example.com Services ============================================================================== Name Color Updated Summary ------- -------- ---------- -------------------------------------------------- memory green 23:32 14% phys mem used, 6% virt mem used jobs green 23:32 processes ok ping green 23:35 ping ok cpu green 23:32 up 3 days, load = 0.00, 1 users, 31 jobs disk green 23:32 largest filesystem /boot at 9% History ============================================================================== Monday, 12/20/04 ------------------------------------------------------------------------------ green S 01:43 hoge ping ping ok green S 01:42 hoge disk largest filesystem /boot at 9% green S 01:42 hoge cpu up 2 days, load = 0.00, 1 users, 31 jobs green S 01:42 hoge jobs processes ok green S 01:42 hoge memor 13% phys mem used, 6% virt mem used

