unoh.github.com

Nagios のログの日付を変換しながら読むには

Mon Sep 06 08:04:12 -0700 2010

こんにちは。kyagi です。

ウノウではサービスの稼働状況を監視するために Nagios を使用しています。ログファイル「/var/log/nagios/nagios.log」には監視活動の履歴が出力されるのですが、最初のカラムの日付フォーマットがエポック秒になっているため、障害発生時の時間を知るためには変換処理を行わなければなりません。この目的を達成する簡単なスクリプト nagioslogview.rb を書いたので、以下に公開しておきます。同様に小さなストレスを抱えている方の解決策になれば幸いです。

http://github.com/kyagi/nagioslogview/blob/master/nagioslogview.rb

使い方は以下になります。-f オプションで tail -f と同じように成長するファイルを追いかけて読むことができます。テスト時などにご活用いただければと思います。(なお tail 機能には rubygem の file-tail(http://flori.github.com/file-tail/) を利用していますので、別途インストールが必要です。)

■使い方(ファイルを指定しない場合はデフォルトの /var/log/nagios/nagios.log が対象になります)
 $ nagioslogview.rb
 $ nagioslogview.rb -f # ファイルを追いかけて読みます。tail -f と同様です。
 $ nagioslogview.rb /var/log/nagios/archives/nagios-09-07-2010-00.log # 指定したファイルを読みます。
■rubygems と file-tail のインストール方法
$ sudo yum install rubygems
$ sudo gem install file-tail
$ gem list | grep file-tail
file-tail (1.0.5)
■変換前(エポック秒のため実際の時間がわかりづらい)
$ less /var/log/nagios/nagios.log
(... snip ...)
[1274194965] Auto-save of retention data completed successfully.
(... snip ...)
■変換後
$ nagioslogview.rb
(... snip ...)
[Wed May 19 00:02:45] Auto-save of retention data completed successfully.
(... snip ...)