2007年 9月 26日 水曜日
やっぱり Sun がスキ!
ILOM の syslog 転送に挑戦!〜へっぽこ SE 奮闘記〜
前回は ZFS を USB メモリーでフル活用する方法をお伝えいたしましたが
へっぽこ SE たるもの独自路線で強行突破するべし!・・・・
ということで今回もキワモノ系のネタですみません!m(_ _)m
皆さんは Sun x64 Server に搭載されている ILOM というモジュールを ご存じでしょうか?小さなハガキサイズほどの基盤に独立した CPU・メモリを 搭載したモジュールでシステムの監視・管理をネットワーク経由で行うことが できます。 他社のサーバと違い標準で本体に搭載され、なんら追加のコストも必要 ございません! 簡単設定でフル活用できるかなりお得な機能です。

【Integrated Lights Out Manager (ILOM) のマニュアルはこちら】
特に ILOM がシステムとは独立したコンポーネントで構成されている事の 恩恵は大きくシステム側で H/W 等の障害が発生してシステムが昇天して しまっても ILOM は生きているので ILOM から障害の状況把握が可能という メリットがあります。
今回はこの便利な ILOM の機能の中でもひっそりとマニュアルに記述が 掲載されているだけなので、思わず見過ごしてしまいそうな超マイナーな機能、 「 ILOM で拾ったイベント情報を syslog 情報として転送する機能」 を試してみたいと思います。

まずは syslog 転送先の IP アドレスを ILOM に設定するところからスタートです。
【1】 ILOM 側の syslog 転送設定
(1)ILOMにログインして /SP/clients/syslog/ ディレクトリに移動します。-> cd /SP/clients/syslog/
/SP/clients/syslog(2) show コマンドにて現在の設定を確認。
※(none)表示は未設定を示しています。-> show
/SP/clients/syslog
Targets:Properties:
destination_ip1 = (none)
destination_ip2 = (none)Commands:
cd
set
show(3) set コマンドにて転送先 IP アドレスを設定します。
※転送先 IP アドレスは二つまで設定できます。-> set destination_ip1=xxx.xxx.xxx.xxx
Set 'destination_ip1' to 'xxx.xxx.xxx.xxx'(4) show コマンドで設定内容を確認する。
-> show
/SP/clients/syslog
Targets:Properties:
destination_ip1 = xxx.xxx.xxx.xxx
destination_ip2 = (none)Commands:
cd
set
show
これで ILOM 側の設定は完了です。ILOM 内で発生したイベント情報は ILOM 内部に
ログ保存されると同時に syslog 形式で転送先のログサーバに転送されているはず
です・・・・(^o^)/
【2】送信される syslog 情報のファシリティとレベルを探る
まずは受け取りサーバー側で snoop コマンドを活用してパケット
送信の状況を読み取り、確認してみようと思います。(^o^)
# と言うのもへっぽこ SE は過去に転送先の IP アドレスの記入をミスって違う
# IP アドレスに転送してしまい・・かなりの時間を浪費した経験が有るため (汗
以下は snoop コマンドを張った状態で ILOM 側へのログインを行った際の
パケット情報です。
--- snoop コマンドによりパケット送受信を確認 -- # snoop -d nge0 xxx.xxx.xxx.xxx between yyy.yyy.yyy.yyy Using device /dev/nge0 (promiscuous mode) xxx.xxx.xxx.xxx -> yyy.yyy.yyy.yyy SYSLOG R port=514 local0.warn: <132>logmgr: ID = 15
☆ snoop コマンドの結果から正しくパケットが流れていることを確認できた
だけでなく、以下のことも分かりました。(^o^)
・ILOM はファシリティ「 local0 」を使用するらしい!
※ ILOM 側での設定で割り当てた値は「送信先の IP」情報のみであったので
このファシリティ「local0」は変更できない固定の値と推測されます。
【3】受け取り syslog サーバ側の設定
では【2】で得られた情報を元に受け取り側の syslog 設定を行いましょう。
(1) 設定ファイルである /etc/syslog.conf に以下の行を付け加えます。
※レベル設定でログ情報の取りこぼしが無いようにレベルを「info」以上としています。
local0.info /var/log/ilomlog
# 「ファシリティ.レベル記述」と「ログ出力先記述」の間は”タブ”で空白を記入します♪
# スペースで記入してしまうと・・・へっぽこ SE と同じく時間を浪費する羽目に(^_^;;
(2) 空のログファイルを作成しておきます。
# touch /var/log/ilomlog
(3) syslogd も Solaris 10 では SMF の管理下に取り込まれていますので
svcadm コマンドにてサービスインスタンスのリスタートを行います。
(※乱暴に行うなら「 # pkill -HUP syslogd 」でも OK かも?(笑))
# svcadm restart svc:/system/system-log
これで受け取り側のサーバ設定も完了です!
テストがてらに Web ブラウザ経由でのログイン、SSH 経由でのログインを行った際のログ記録です。
# cat /var/log/ilomlog Sep 21 16:34:18 [xxx.xxx.xxx.xxx.x.x] logmgr: ID = 1537 : Fri Sep 21 16:34:16 2007 : Audit : Log : minor : root : Open Session : object = /session/type : value = www : success Sep 21 16:35:36 [xxx.xxx.xxx.xxx.x.x] logmgr: ID = 1538 : Fri Sep 21 16:35:34 2007 : Audit : Log : minor : root : Open Session : object = /session/type : value = shell : success
同じ情報は ILOM 内部には以下のように保存されていました。
-> show /SP/logs/event/list
ID Date/Time Class Type Severity
----- ------------------------ -------- -------- --------
1567 Fri Sep 21 17:20:11 2007 Audit Log minor
root : Open Session : object = /session/type : value = shell : success
1566 Fri Sep 21 17:18:15 2007 Audit Log minor
root : Open Session : object = /session/type : value = shell : success
さてシステムの H/W に障害が発生した場合はどのような情報が飛ぶのでしょうか?
思い切ってフロントファンと電源ケーブルを外してみました♪ (^o^)
(1) ILOM 内のイベントログには以下のようにイベント情報が保存されます。
-> show /SP/logs/event/list
ID Date/Time Class Type Severity
----- ------------------------ -------- -------- --------
1590 Fri Sep 21 17:52:54 2007 IPMI Log critical
ID = 2f2 : 09/21/2007 : 17:52:54 : Power Supply : ps1.pwrok : State Deasserted
1589 Fri Sep 21 17:52:50 2007 IPMI Log critical
ID = 2f1 : 09/21/2007 : 17:52:50 : Power Supply : ps1.vinok : State Deasserted
1588 Fri Sep 21 17:52:33 2007 IPMI Log critical
ID = 2f0 : 09/21/2007 : 17:52:33 : Fan : ft0.fm0.f1.speed : Lower
Non-recoverable going low : reading 2600 < threshold 3000 RPM
1587 Fri Sep 21 17:52:31 2007 IPMI Log critical
ID = 2ef : 09/21/2007 : 17:52:31 : Fan : ft0.fm0.fail : Predictive Failure Asserted
1586 Fri Sep 21 17:52:28 2007 IPMI Log critical
ID = 2ee : 09/21/2007 : 17:52:28 : Fan : ft0.fm0.f0.speed : Lower
Non-recoverable going low : reading 2600 < threshold 3000 RPM
(2) syslog 転送先のシスログサーバには以下のような情報が保存されました。
# cat /var/log/ilomlog Sep 21 17:52:28 [xxx.xxx.xxx.xxx.2.2] logmgr: ID = 1586 : Fri Sep 21 17:52:28 2007 : IPMI : Log : critical : ID = 2ee : 09/21/2007 : 17:52:28 : Fan : ft0.fm0.f0.speed : Lower Non-recoverable going low : reading 2600 < threshold 3000 RPM Sep 21 17:52:31 [xxx.xxx.xxx.xxx.2.2] logmgr: ID = 1587 : Fri Sep 21 17:52:31 2007 : IPMI : Log : critical : ID = 2ef : 09/21/2007 : 17:52:31 : Fan : ft0.fm0.fail : Predictive Failure Asserted Sep 21 17:52:32 [xxx.xxx.xxx.xxx.2.2] logmgr: ID = 1588 : Fri Sep 21 17:52:33 2007 : IPMI : Log : critical : ID = 2f0 : 09/21/2007 : 17:52:33 : Fan : ft0.fm0.f1.speed : Lower Non-recoverable going low : reading 2600 < threshold 3000 RPM Sep 21 17:52:50 [xxx.xxx.xxx.xxx.2.2] logmgr: ID = 1589 : Fri Sep 21 17:52:50 2007 : IPMI : Log : critical : ID = 2f1 : 09/21/2007 : 17:52:50 : Power Supply : ps1.vinok : State Deasserted Sep 21 17:52:54 [xxx.xxx.xxx.xxx.2.2] logmgr: ID = 1590 : Fri Sep 21 17:52:54 2007 : IPMI : Log : critical : ID = 2f2 : 09/21/2007 : 17:52:54 : Power Supply : ps1.pwrok : State Deasserted
電源ケーブルの異常も、ファンの異常も「critical」表示であることから
どうやら H/W 障害系のイベント情報は「crit」のレベルで送信されるようです。
ILOM 内に保存されるイベント情報とほぼ同じ内容のメッセージに発信元の
IP アドレスが加えられて記録されます。 複数の ILOM からメッセージを
受け取ったとしても、この IP アドレスでソートすれば問題なさそうです!
ILOM には NTP クライアントとしての機能もあるのでシスログサーバの参照先と
同じ NTP サーバを指定すればログに記録された時刻のズレを心配する必要もなく
なるかと思います。
これで簡易 H/W 監視システムの出来上がりですね♪(^o^)
Posted at 11:15午前 9 26, 2007 by moridenki in Sun | 投稿されたコメント[1]
ILOMのNTPは設定すると表示がUTC時間になってしまって少々使いづらいかもしれません。
#今の2.0系は大丈夫なのかしら?
Posted by yas on 7月月 15日, 2008年 at 09:56 午後 JST #