Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

構造化ログの設定

InterSystems IRIS では、構造化ログがサポートされています。

InterSystems IRIS では、それぞれの目的に応じた複数のログが作成されます。以前の製品から移行したユーザは、前と同じようにこういったログを利用できますが、すべてのログ情報を単一の一元化された、機械で判読可能なログ・ファイル、つまり構造化ログに送ることもできるようになりました。このファイルは、サードパーティの分析ツールと共に使用することができます。

このページでは、構造化ログ内の情報の概要を示し、構造化ログの例を提示し、構造化ログを有効にする方法について説明します。

構造化ログ内で利用可能な情報

InterSystems IRIS では、構造化ログを有効にすると、システムによって別のログ (どのようなログであるかに関係なく) に書き込まれたものと同じデータが構造化ログにも書き込まれます。例えば、システムによって同じ行が messages.log と構造化ログに書き込まれます。

構造化ログを有効にすると、構造化ログに以下の情報がすべて格納されます。

  • messages.log に書き込まれる情報。これには、注意を要するアラート、システムの起動とシャットダウンに関する情報、ジャーナル・ファイルと WIJ ファイルに関する概要、構成の変更に関する情報 (CPF)、およびライセンスに関する情報が含まれます。"監視ガイド" の “管理ポータルを使用した InterSystems IRIS の監視” の章にある “InterSystems IRIS ログの監視” を参照してください。

  • 監査データベースに書き込まれる情報。詳細は、監査しているイベントによって異なります。"監査ガイド" を参照してください。

出力例

ここでは、構造化ログ・ユーティリティからの、名前と値のペアの形式および JSON 形式の出力例を紹介します。

名前と値のペア

以下の出力では、NVP 形式オプション (名前と値のペア) が使用されています。このサンプルは、表示の都合上、編集されています。実際の出力では、各エントリは 1 行のみで、エントリ間に空白行はありません。

when="2019-08-01 18:43:02.216" pid=8240 level=SEVERE event=Utility.Event 
text="Previous system shutdown was abnormal, system forced down or crashed"

when="2019-08-01 18:43:05.290" pid=8240 level=SEVERE event=Utility.Event 
text="LMF Error: No valid license key. Local key file not found and LicenseID not defined."

when="2019-08-01 18:43:05.493" pid=8240 level=WARNING event=Generic.Event 
text="Warning: Alternate and primary journal directories are the same"

when="2019-08-01 18:46:10.493" pid=11948 level=WARNING event=System.Monitor 
text="CPUusage Warning: CPUusage = 79 ( Warnvalue is 75)."

この形式では、ファイル内の各行に、スペースで区切られた一連の名前と値のペアが含まれます。名前と値の各ペアの形式は、name=value で、value にスペース文字が含まれる場合は、value が括弧で囲まれます。ログ・ファイルの行には、以下の名前と値のペアの一部またはすべてが含まれます。

名前
host ^LOGDMN が実行されているホストの名前 (パイプ・コマンド内に指定されている場合)。
instance ^LOGDMN が実行されているインスタンスの名前 (パイプ・コマンド内に指定されている場合)。
when 常に含まれます。yyyy-mm-dd hh:mm:ss.sss の形式での、エントリのタイム・スタンプ。
pid 常に含まれます。エントリを生成したプロセスの ID。
level 常に含まれます。このエントリのログ・レベル。この値は、以下のいずれかになります。
  • DEBUG2 は、詳細なデバッグ・メッセージ (16 進ダンプなど) の場合に使用されます。

  • DEBUG は、それほど詳細ではないデバッグ・メッセージの場合に使用されます。

  • INFO は、すべての監査イベントを含め、情報メッセージの場合に使用されます。

  • WARNING は、注意が必要な可能性はあるが、処理の中断は生じていない問題を示すために使用されます。

  • SEVERE は、重大なエラーの場合に使用され、処理の中断を招いた問題が発生したことを示します。

  • FATAL は、致命的なエラーの場合に使用され、この問題によってシステムが動作しなくなったことを示します。

event 常に含まれます。エントリを生成したコードの識別子で、通常はクラス名。
text 常に含まれます。エントリを説明する文字列。
source 監査イベントのソースであるコンポーネント。インターシステムズのコンポーネントの場合は、常に %System です。アプリケーション・コードでイベント・ログに書き込みを行う場合、source はアプリケーション・コード内のコンポーネントを表します。
type 監査イベントに関する情報の分類。
group 監査イベントのグループ (存在する場合)
namespace エントリが生成されたネームスペース。これは、アプリケーション・エラーや相互運用プロダクションのアクティビティなど、ネームスペース固有のアクティビティを調べる際に有用です。

JSON

以下の出力では、JSON 形式オプションが使用されています。このサンプルは、表示の都合上、編集されています。実際の出力では、各エントリは 1 行のみで、エントリ間に空白行はありません。

{ "when": "2019-08-07 14:11:04.904", "pid": "8540", "level": "SEVERE", "event": "Utility.Event", 
"text": "Previous system shutdown was abnormal, system forced down or crashed"}

{ "when": "2019-08-07 14:11:08.155", "pid": "8540", "level": "SEVERE", "event": "Utility.Event", 
"text": "LMF Error: No valid license key. Local key file not found and LicenseID not defined."}

{ "when": "2019-08-07 14:11:08.311", "pid": "8540", "level": "WARNING", "event": "Generic.Event", 
"text": "Warning: Alternate and primary journal directories are the same"}

{ "when": "2019-08-07 14:16:13.843", "pid": "10816", "level": "WARNING", "event": "System.Monitor", 
"text": "CPUusage Warning: CPUusage = 84 ( Warnvalue is 75)."}

この形式では、ファイル内の各行が、一連のプロパティを持つ JSON オブジェクトです。プロパティの名前 (およびプロパティに含まれる値) は、前のセクションの名前と値のペアで示したものと同じです。

構造化ログの有効化

構造化ログの管理には、^LOGDMN ルーチンを使用できます。クラスベースの API も使用でき、これについては次のセクションで説明します。

^LOGDMN を使用して構造化ログを有効にする手順は次のとおりです。

  1. ターミナルを開いて以下のコマンドを入力します。

    set $namespace="%sys"
    do ^LOGDMN
    

    これによりルーチンが開始し、以下のプロンプトが表示されます。

     
    1) Enable logging
    2) Disable logging
    3) Display configuration
    4) Edit configuration
    5) Set default configuration
    6) Display logging status
    7) Start logging
    8) Stop logging
    9) Restart logging
     
    LOGDMN option?
    
  2. 4 を押して、構成の詳細を指定します。ルーチンから以下の項目について入力を求められます。

    1. 最小ログ・レベル。以下のいずれかを指定します。

      • -2 — 詳細なデバッグ・メッセージ (16 進ダンプなど)。

      • -1 — それほど詳細ではないデバッグ・メッセージ。

      • 0 — すべての監査イベントを含めた情報メッセージ。

      • 1 (既定値) — 警告。注意が必要な可能性はあるが、処理の中断は生じていない問題を示します。

      • 2 — 重大なエラー。処理の中断を招いた問題が発生したことを示します。

      • 3 — 致命的なエラー。この問題によってシステムが動作しなくなったことを示します。

    2. パイプ・コマンド。システムから構造化ログを送信する宛先を指定します。以下の形式の応答を入力します。

      irislogd -f c:/myfilename.log
      

      ただし、c:/myfilename.log を、宛先ログ・ファイルの完全修飾パス名に置き換えます。このコマンドで、irislogd は、ログ・データを受け取って、指定したファイル (-f オプションによる) にそのデータを書き込むインターシステムズの実行可能ファイルの名前です。

      パイプ・コマンドの場合、最も簡単な方法は、ここで説明している実行可能ファイル (irislogd.exe) を使用することですが、別のターゲットを代わりに使用することもできます。irislogd.exe のその他のオプションについては、最後のセクションを参照してください。

    3. パイプに送信するデータの形式。NVP (既定値) または JSON のいずれかを指定します。オプション NVP を指定すると、スペースで区切られた名前と値のペアで構成されるデータが送信されます。オプション JSON を指定すると、JSON 形式の出力でデータが送信されます。例については、このページで前述の “出力例” を参照してください。

    4. パイプ・コマンドへの連続した呼び出しの間隔 (秒数)。既定値は 10 秒です。

  3. ルーチンからメイン・プロンプト (LOGDMN option?) が再度表示されたら、1 を押してログを有効にします。

  4. 7 を押してログを開始します。

構造化ログに使用するクラスベースの API

構造化ログを管理するには、^LOGDMN ルーチンの代わりに、%SYS ネームスペースで SYS.LogDmnOpens in a new tab クラスを使用できます。詳細は、クラス・リファレンスを参照してください。

irislogd のその他のオプション

^LOGDMN を使用して irislogd.exe 実行可能ファイルを呼び出す際に、この実行可能ファイルに以下の引数を渡すことができます。

引数 目的
-d 診断メッセージとエラー・メッセージを発行します。
-e errfilename 指定されたファイルにエラー・メッセージと診断メッセージを書き込みます。
-f logfilename 指定されたファイルにログ・メッセージを書き込みます。
-h hostname 指定されたホスト名を構造化ログ・ファイルに含めます。
-i irisinstance 指定されたインスタンス名を構造化ログ・ファイルに含めます。
-s ログ・メッセージを Unix® syslog ファシリティに書き込みます (Unix® のみ)。

また、出力を stdout に書き込むこともできます。これを Unix で実行するには、-f-s の両方の引数を省略します。Windows で実行するには、-s 引数を省略します。

FeedbackOpens in a new tab