最近どうっすか?

コンピュータをメインに技術系の話題について書いていけたらいいなぁ。

nagios.logのタイムスタンプ変換

通常、nagiosのログファイルは次のようになっている。

[1445782626] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;hostname;servicename;0;Service running OK

これを見やすくするためにperlで処理するコマンドが紹介されている。

perl -pe 's/(\d+)/localtime($1)/e'

処理した結果

[Sun Oct 25 23:17:06 2015] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;hostname;servicename;0;Service running OK

確かに読みやすくなるんだけど。。。

そこで、こっちを使うと

perl -MPOSIX -pe 's/(\d+)/strftime("%F %X", localtime($1))/e'

こんな風になります。

[2015-10-25 23:17:06] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;hostname;servicename;0;Service running OK

フォーマットが自分で作ることができるので良いんじゃないかなと思う。
とりあえず、人間が読める形になればいいのであれば最初のコマンドでOKですけどね。

ではでは。