ジョブの実行履歴をテキストファイルへ出力する

この記事は10年以上前に書かれたものです。 情報が古い可能性があります。

ログエスカレーション通知を使用すると、ジョブの実行履歴をSyslog-ng経由でテキストファイルへ出力することができます。

まず、ログエスカレーション通知を作成します。以下は例です。

“メッセージ”欄に定義している内容は、以下のとおりです。

ここでは、固定文字列"hinemos_job_history: "に続けて、重要度、スコープ、そして通知メッセージを出力するよう設定しています。

次に、出力先ホスト上のsyslog-ng.confを設定します。以下は設定例です(Hinemosエージェント向けの設定行より上に設定しないと、うまく機能しないかもしれません)。

 

ログエスカレーション通知で設定した文字列にマッチしたら、それを"jobhist.log_yyyymmdd"というファイルへ出力します。$YEAR$MONTH$DAYはSyslog-ngのマクロで、その時点の年月日に展開されます(つまり、1日で1ファイルです)。

設定ファイル修正後、Syslog-ngを再起動したら、あとはジョブを実行するだけです。

ジョブの実行履歴がテキストファイルへ出力されました。

なお留意点として、通知が行われたものしか出力されないという事が挙げられます。具体的には、ジョブの停止や中断、終了値の変更等の操作は、その操作の結果がHinemosから通知されないため、それらを履歴として出力することができません。あくまで、ジョブ実行に関する基本的なイベントしか出力できませんので、例えば監査等の目的で履歴を残したい、というのには向いていません。

閑話休題。ここでさらにもう一手間加えて、テキストをCSVへ変換してみます。ここでは、”月”、”日”、”時刻”、”ホスト名”、”重要度”、”スコープ”、”ジョブ名”、”ジョブID”、”開始・終了の別”、”終了状態”、”ジョブセッションID”をテキストファイルから抽出します。Perlなら、以下のワンライナーで(少し長いですが)OKです。

 

実行すると、標準出力へ以下のように出力されますので、適宜ファイル等へリダイレクトします。

以上で、ジョブの実行履歴をCSVに変換することができました。


ご意見やお問い合わせについて

この記事へのご意見やお問い合わせについては、こちら(お問い合わせフォーム)もしくは
Hinemos営業担当【hsd-sales@atomitech.jp】までご連絡ください。

※お問い合わせフォームからご連絡の場合には、お問い合わせ内容で「Hinemosについて」を選択し、
 本文の冒頭に「Hinemos研究日記_【タイトル名】」とご記載ください。
※メールアドレスへご連絡の場合には、件名を「Hinemos研究日記_【タイトル名】」でご連絡ください。