中央集中型ログ管理 UI を使用すると、ソースルールを使用してログデータソースを設定できます。  

ソースルールを定義したら、特定のソースルールをエージェントスコープに関連付けることによって、どの分析エージェントがルールを使用するかを指定します。エージェントスコープは、ユーザが定義する分析エージェントのグループです。エージェントスコープを使用すると、複数のエージェントに対するログソース設定の展開が簡単になります。

ログ分析ソースルール

分析エージェントは、コントローラで定義したログソースルールに基づいてロギング情報を収集します。 

ソースルールの主な機能は、ログファイルの場所とタイプ、ログファイルからレコードをキャプチャするためのパターン、およびキャプチャされたレコードのデータの構造を指定することです。また、フィールドマスクや機密データの削除を指定したり、キャプチャされたレコードのタイムゾーンを管理したりすることもできます。 

ログソースルールが有効になっていて、エージェントスコープに関連付けられている場合、分析エージェントは次のように設定されたログの収集を自動的に開始します。

  • 分析エージェントは起動時にコントローラに登録されます。
  • 分析エージェントはログソースルールをダウンロードしてログ収集を設定します(登録後)。
  • ログソースルールはコントローラデータストアに保存され、中央集中型ログ管理 UI を使用して設定できます。
  • 分析エージェントは、5 分以内にログソースルールの変更に従って処理を開始します(ネットワーク通信の問題がある場合はこれよりも長くなる可能性があります)。

権限

ログ分析ソースルールを設定するには、次の権限が必要です。

  • 中央集中型ログ設定の管理権限
  • 設定する特定のソースタイプに対する表示アクセス権

詳細については、分析およびデータのセキュリティを参照してください。

分析エージェントのプロパティ

中央集中型ログ管理(CLM)を使用している場合は、analytics-agent.properties ファイルで追加のプロパティを設定する必要があります。詳細については、「エージェント側のコンポーネントのインストール」の統合ログ管理のプロパティの設定を参照してください。

ソースルールの管理

ソースルールを作成して保存すると、ルールは最初は無効になっています。これは、ソースルールのリストページの [Status] カラムに表示されます。

ソースルールを有効または無効にするには、次のスクリーンショットに示すように、そのルールを選択し、[Source Rules] メニューから該当するオプションを選択します。 

 

また、特定のエージェントスコープを使用するソースルールを確認することもできます。分析エージェントは、ソースルールが有効になり、アクティブな分析エージェントを含むエージェントスコープに割り当てられるまで、ログデータを収集しません。

ソースルール作成の開始点

ソースルールは次のいずれかの開始点から作成できます。

  • AppDynamics テンプレート。一般的なログファイル形式の複数のテンプレートを使用できます。
  • 既存のソースルール。新しいルールの開始点として、既存のソースルールを使用できます。
  • 新しいソースルール。ログファイルが使用可能なテンプレートの 1 つとも一致しない場合は、最初から開始します。

サンプルログファイルを使用した抽出されたログデータのプレビュー 

ログメッセージのデータ収集と解析の検証を改善するために、ログ分析設定 UI でローカルログファイルを使用して、目的のフィールド抽出をプレビューすることができます。3 種類のフィールド抽出を使用できます。

  • Grok パターンとキーと値のペアの抽出
  • 正規表現を使用した自動抽出
  • 正規表現を使用した手動抽出

ソースルールの設計のベストプラクティス

ソースルールを作成する際には、いくつかの推奨事項が適用されます。

可能な限り最も単純な正規表現と grok の一致パターンを使用してください。コントローラ UI の応答が遅くなる可能性があるため、ワイルドカードや量指定子の過剰な使用は避けてください。https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html では、このような過度の量指定子の例を確認できます。

正規表現パターン(grok を含む)をログ行と照合するのに 5 秒を超える場合、それらのフィールドの抽出とさらなる処理は停止します。これが発生すると、コントローラで表示されるときに一部のフィールドがそのログ行で欠落する場合があります。他のログ行は影響を受けません。ただし、これは多くの場合、最初の箇所での一致パターンが無効または不良である結果のため、すべてのログ行の処理に長い時間がかかる可能性があります。この動作は、[Centralized Log Analytics Configuration] ページの動的なプレビュー画面にも該当します。

コントローラは、ログ分析のソースルールにより、取得するレコードのサイズを 32 KB に制限します。この制限により、システムリソースの過剰な負荷が軽減されます。これには、ソースルールパターンの問題に起因する過剰なデータ収集によって生じる可能性のあるリソースの負荷が含まれます。

ソースルールの作成

  1. コントローラの上部のナビゲーションバーから、[Analytics] をクリックします。
  2. 左側のナビゲーションパネルで、[Configuration > Log Analytics] をクリックします。
    2 つのタブが表示されます。1 つはソースルール用、もう 1 つはエージェントスコープ用です。 
  3. [Source Rules] タブで、[+ Add .] をクリックします。
    [Add Source Rule] パネルが表示されます。 
  4. [Add Source Rule] パネルで、ソースルールの開始点を選択します。ソースルールの開始点としてジョブファイルを使用することもできます。詳細については、ソースルールへのログ分析ジョブファイルの移行を参照してください。
  5. [Collection Type] を使用して、ソースログファイルがローカルファイルシステムに存在するか、またはネットワーク接続から収集されるのかを示します。

    ネットワーク接続からの収集は、TCP を介して {{syslog}} メッセージからログ分析フィールドを抽出する TCP ソースルールにのみ使用されます。「Syslog メッセージからのログ分析データの収集」を参照してください。

  6. [Browser] ボタンを使用して、設定の結果をプレビューするサンプルログファイルを特定して指定します。また、サンプルファイルは後でフィールド抽出手順の設定プロセスで指定することもできます。 

     

  7. [Next] をクリックし、[Add Source Configuration] ページを表示します。AppDynamics テンプレートまたは既存のソースルールのいずれかを開始点として選択した場合、一部のフィールドにデータが事前入力されていることがあります。次の 4 つのタブがあります。
    • 一般
    • Field Extraction
    • Field Customization
    • Agent Mapping
  8. [General] タブで、ルールに名前を付け、その場所、タイムスタンプ処理、およびその他の一般的な特性を指定します。「一般的な設定」を参照してください。
  9. [Field Extraction] タブで、ログファイルからキャプチャするフィールドを設定します。このサブタブのフィールドの詳細については、Field Extraction を参照してください。自動フィールド抽出の使用に関する詳細な手順については、「ソースルールのフィールド抽出」を参照してください。

    最も単純な正規表現と grok の一致パターンを使用してください。コントローラ UI の応答が遅くなる可能性があるため、ワイルドカードや量指定子の過剰な使用は避けてください。高コストな過度の量指定子の例については、https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html を参照してください。

  10. [Field Management] タブでは、機密データのマスク、フィールドの名前変更、データ型の変更など、さまざまな方法でフィールドの処理をカスタマイズできます。「フィールド管理」を参照してください。
    Mask Value:社会保障番号またはクレジットカード番号など、機密データの値をマスクするにはこのオプションを使用します。[Mask Value] を選択し、開始インデックスと終了インデックス(以下の例ではそれぞれ 1 と 4)、表示でマスクに使用する文字(* アスタリスクなど)を入力します。
     
    Replace Value:データフィールド全体を静的文字列に置き換えるには、このオプションを使用します。[Replace Value] を選択し、使用する文字列を入力します。
  11. [Agent Mapping] タブで、ソースルールを特定のエージェントスコープに割り当てます。
  12. 完了したら、[Save] をクリックします。ソースルールは無効な状態で保存されます。

中央集中型ログ管理 UI の詳細

[General] 設定タブ

フィールド説明必須
ソース名(Source Name)このソースルールの名前。この名前は一意である必要があります。定義されたソースルールのリストに表示されます。あり
送信元タイプ(Source Type)ログソースファイルのイベントタイプを指定します。このフィールドは、AppDynamics テンプレートまたは既存のソースルールから開始するときに事前入力されます。新しいソースルールを最初から作成する場合は、任意の値を指定できます。この値は、この特定のタイプのログイベントを識別するために使用され、収集されたログデータの検索とフィルタリングに使用できます。値は、ログデータのフィールドリストに表示されます。あり
ソース ファイル

ログソースとして機能するログファイルの場所と名前。場所は、analytics-agent と同じマシン上にある必要があります。

ワイルドカードを使用できます。また、1 レベル深いファイルと照合するか、パスディレクトリ構造内のすべてのログファイルと照合するかどうかを指定できます。

  • 複数レベルの照合の例:

    path: /var/log/**/*.log
    これは、/var/log/apache2/logs/error.log と /var/log/cassandra/system.log の両方と一致します。

  • 1 レベルの照合の例:
    path: /var/log/*/*.log
    これは、/var/log ディレクトリ内を 1 レベルの深さで .log ファイルを検索します(/var/log/cassandra/system.log と一致しますが、/var/log/apache2/logs/error.log とは一致しません)。

収集タイプがローカルファイルシステムからの場合に必須です。
Exclude Files

定義されたソースルールからファイルを除外(ブラックリストに登録)します。除外するファイルの相対パスを入力します。ワイルドカードを使用すると、複数のファイルを除外します。

  • 単一ファイルの例:
    Source File:/var/log/**/*.log
    Exclude Files:cassandra/system.log

  • 複数ファイルの例:
    Source File:/var/log/**/*.log
    Exclude Files:*/system.log
なし
TCPポートanalytics-agent がネットワーク接続からログファイルを収集するためのポートを指定します。収集タイプが [From local file system] の場合、このフィールドは表示されません。

ポート番号が指定されていない場合は、ポート 514 が使用されます。syslog ユーティリティと analytics-agent の両方が、ポート 514 にログを送信するためにルートアクセスを持っている必要があります(1024 未満のポートへのバインドにはルートアクセスが必要です)。

収集タイプがネットワーク接続からの場合に必須です。
Enable path extraction

このチェックボックスをオンにすると、パス名からフィールドを抽出できます。テキストボックスに grok パターンを追加します。

grok パターンの構文は {%{SYNTAX:SEMANTIC} です。たとえば、AdminSever/opt/apps/oracle/middleware/user_projects/domains/ouaf_domain1/servers/AdminServer/logs/AdminServer.log から抽出するには、次の GROK パターンを入力します。servers/%{DATA:servername}/%{GREEDYDATA},。ここで、%{DATA:server} はサーバ名をフィルタ処理し、%{GREEDYDATA} はログパスから残りのメッセージをフィルタ処理します。

なし
Start collecting from

追跡(ログレコードの収集)を開始する場所を指定します。次のオプションがあります。

  • ログファイルの先頭から
  • ログファイルの末尾から
  • 特定の時間範囲(時間単位):たとえば、これを 4 時間に設定した場合、ルールを有効にすると、分析がログデータの追跡を開始し、直近の 4 時間のデータのみが取り込まれます。追跡が開始されると、そのファイルではウォーターマークの状態が維持されます。エージェントが停止して再起動されると、古いファイルでオフになっていた場所から追跡が開始されます。新しいファイルの場合、直近の 4 時間のデータのみが追跡されます。
デフォルトでは、ログレコードはファイルの先頭から収集されます。
Override time zone

ログイベントの eventTimestamp のタイムゾーンを上書きするには、これを使用します。ログイベントにタイムゾーンが割り当てられておらず、上書きされない場合は、ホストマシンのタイムゾーンがログイベントに割り当てられます。[pickupTimestamp] フィールドのタイムゾーンを上書きすることはできません。
タイムゾーンを上書きする場合は、タイムスタンプの形式を指定する必要があります。タイムゾーンの形式は、「Joda-Time Available Time Zones」に準拠する必要があり、タイムスタンプの形式は Joda-Time フォーマットシステムを使用して作成する必要があります。

なし
Override timestamp format

必要に応じて、形式を上書きできます。タイムゾーンの形式は、「Joda-Time Available Time Zones」に準拠する必要があり、タイムスタンプの形式は Joda-Time フォーマットシステムを使用して作成する必要があります。

必須。
ログファイルから時間を正しく抽出するには、タイムスタンプ形式の上書きが必要です。このフィールドが指定されていない場合、eventTimestamp は、ログ行にタイムスタンプが設定されていたとしても pickupTimestamp と同じになります。 
Auto-Correct duplicate Timestampsメッセージに重複するタイムスタンプが含まれている場合に元のログメッセージの順序を維持するには、このオプションを有効にします。これにより、順序を保持するためのカウンタが追加されます。なし
Collect Gzip files指定されたパス内の gzip ファイルも検出するには、これを有効にします。なし


[Field Extraction] タブ

次の表では、このタブのフィールドおよびアクションについて説明します。自動または手動でのフィールド抽出の使用に関する詳細な手順については、「ソースルールのフィールド抽出」を参照してください。

セクション/フィールドまたはアクション説明
Add Grok Pattern
メッセージ パターンこれは、ログメッセージからフィールドを抽出するために使用される grok パターンです。パターンは、AppDynamics テンプレートまたは既存のソースルールを開始点として使用する場合に事前入力されていることがあります。必要に応じて、grok パターンを追加または削除できます。
Multiline Format複数行にまたがる(複数の改行を含む)ログレコードが含まれているログファイルの場合は、このフィールドを使用し、ログファイル内の個々のレコードを識別する方法を指定します。次の 2 つのオプションから選択できます。
  • startsWith:複数行のログレコードの先頭に一致する単純なプレフィックス。 

  • regex:複数行のログレコードに一致する正規表現。

ネットワーク接続からログデータを収集している場合、複数行の形式はサポートされません。

Extract Key-Value Pairs
フィールドキーと値のペア設定用に選択されたフィールドを示します。
分割キーを値から区切るために使用される区切り文字。"key=value" の例では、分割区切り文字は等号「=」です。複数のカンマ区切り値を追加できます。
[セパレータ(Separator)]2 つのキーと値のペアを区切るために使用される区切り文字。"key1=value1;key2=value2" の例では、区切り文字はセミコロン「;」です。複数のカンマ区切り値を追加できます。
Trim保存される前に、キーまたは値の先頭または末尾から削除する文字のリスト。「_ThreadID_」の例では、「ThreadID」になるように、トリム文字としてアンダースコア「_」を指定できます。複数のカンマ区切り値を追加できます。
含める「source」からキャプチャするキー名のリスト。[include] フィールドでキーを入力する必要があります。[include] フィールドを空白のままにすると、キーと値のペアは収集されません。
Actions
Upload Sample fileサンプルログファイルをアップロードするローカルファイルを参照します。
プレビュープレビューグリッドを更新して、指定したフィールド抽出パターンの結果を表示する場合に使用します。
Auto Field Extraction
Definer Sample

ログレコードから抽出するフィールドを代表するメッセージをプレビューグリッドから選択します。ソースルールごとに 1 つの definer サンプルのみを選択できます。

Refiner Samples元の definer サンプルに含まれていなかった値を含める正規表現を改良します。
Counter Sampleこれは無視するものを指定します。元の definer または絞り込み条件のサンプルによって含まれていた値を除外する正規表現を改良します。
Manual Field Extraction
正規表現抽出するフィールドを定義する正規表現を追加します。
フィールド タイプフィールドのタイプを指定します。
フィールド名正規表現パターン内で自動的に生成されます。この名前は、分析検索 UI の [Fields] リストに表示されます。
Actions
フィールドの追加より多くのフィールドを抽出するために正規表現を追加する場合に使用します。20 を超えるフィールドは追加できません。

プレビュー

  • すべて
  • メリットと
  • Non-Matching
プレビューグリッドで表示可能な結果をフィルタリングするには、これらのボタンを使用します。
Upload Sample Fileプレビューグリッドで使用するためにローカルファイルシステムからサンプルファイルをアップロードします。

[Field Management] タブ

フィールド/アクション説明
Select Any Field to Customizeカスタマイズを追加するフィールドを選択します。1 つのフィールドに複数のカスタマイズを追加できます。
フィールド名このカラムには、カスタマイズがあるフィールドが一覧表示されます。
カスタマイズこのカラムには、特定のカスタマイズが表示されます。静的フィールドの場合は、表示名が表示されます。静的フィールドをさらにカスタマイズすることはできません。
マスク値このカスタマイズオプションは、収集されたデータの値をマスクします。データ内の開始位置と終了位置、およびマスク値として使用する文字を指定します。
Replace Valueこのカスタマイズオプションでは、フィールドの値全体が静的文字列に置き換えられます。
名前の変更このカスタマイズオプションを使用すると、フィールドの名前をよりわかりやすい表示名に変更できます。
フィールド タイプ

フィールドのデータ型を変更する場合に使用します。たとえば、文字列から番号などです。使用可能な型は、String、Boolean、および Number です。

指定したデータ型のフィールドを使用してソースルールが保存されてから、後でそのフィールドのデータ型を変更することはできません。分析データベースでフィールドがインデックス化されてから新しい型を指定しようとすると、検証エラーが発生します。

削除このカスタマイズにより、フィールドのデータ収集がオフになります。後で元に戻すことができます。
Add Static Fieldこのアクションにより、このソースから収集されたすべてのログイベントに静的フィールドを追加できます。このフィールドを使用して、ログデータを検索してフィルタリングすることができます。たとえば、これを使用して、ログデータにティア、ノード、およびアプリケーション名を追加します。