管理エージェントの拡張構成オプション
ここでは、管理エージェント構成を変更してログ収集をカスタマイズできるユースケースを示します。
エージェント・プロパティの変更
コンソールを使用して、ロギング・アナリティクスのログ・コレクションのエージェント・プロパティを様々な階層レベル(テナント・レベルが最高)で設定できます。
- テナント・レベル: テナンシ・レベルでのエージェント・プロパティの変更
- エージェント・レベル: エージェント・レベルでのエージェント・プロパティの変更
- ソース・レベル: 特定のソースのエージェント・プロパティの変更
- ソース・パターン・レベル: ユーザー作成ソース・パターンのエージェント・プロパティの変更
- エンティティ・レベル: エンティティのエージェント・プロパティの変更
- アソシエーション・レベル: ソースとエンティティのアソシエーション・レベルでのエージェント・プロパティの変更
上位レベルで適用されるプロパティ値は、すべての下位レベルに適用されます。同じプロパティが複数のレベルで設定されている場合、下位レベルで設定されたエージェント・プロパティが優先されます。
前述のすべてのレベルで、各レベル・タイプの対応するセクションのステップに従って、そのソース・タイプのエージェント・プロパティがリストされるダイアログ・ボックスに移動します。ダイアログボックスのテーブルには、各プロパティーの現在の値が表示されます。情報アイコンにカーソルを置くと、デフォルト値が何であるかがわかります。
-
「新しい値」フィールドに、変更するプロパティの新しい値を入力します。値のデータ型が指定どおりであることを確認します。各ソース・タイプおよび対応するデータ型について変更できるプロパティのリストは、変更可能なエージェント・プロパティを参照してください。
-
プロパティをデフォルト値に変更するには、「アクション」メニュー・アイコンをクリックし、「デフォルトにリセット」を選択します。
-
プロパティの現在の値をクリアするには、「アクション」メニュー・アイコンをクリックし、「現在の値のクリア」を選択します。現在の値をクリアすると、新しい値が継承されます。現在の変更を保存してこのダイアログ・ボックスを再開すると、新しい値が表に表示されます。
-
変更を保存
テナンシ・レベルのエージェント・プロパティの変更
このレベルで行った変更は、テナンシ全体のエージェントに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「サービス詳細」をクリックします。
-
「グローバル・エージェント・コレクションのプロパティ」の横にある「編集」をクリックします。「グローバル・エージェント・コレクション・プロパティの編集」ダイアログ・ボックスがオープンします。
-
「ソース・タイプ」を選択します。選択したソース・タイプに応じて、変更可能なプロパティが表にリストされます。
エージェント・レベルでのエージェント・プロパティの変更
このレベルで行った変更は、特定のエージェントによって管理されるエンティティおよびソースに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「エンティティ」をクリックします。
「エンティティ」ページが開きます。タイプを管理エージェントとして指定して、エンティティをフィルタします。
エージェント・エンティティがリストされます。
-
エージェント・エンティティの名前をクリックします。「エンティティ詳細」ページが開きます。
-
「グローバル・エージェント・コレクションのプロパティ」の横にある「編集」をクリックします。「ソース・タイプ」を選択します。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
特定のソースのエージェント・プロパティの変更
このレベルで行った変更は、このソースとソース・パターンに関連付けられているすべてのエンティティに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。
「ソース」ページが開きます。ソースの横にある「アクション」メニュー・アイコンをクリックし、「編集」を選択します。
「ソースの編集」ページが表示されます。
-
「エージェント・コレクション・プロパティの表示」をクリックします。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
ユーザー作成ソース・パターンのエージェント・プロパティの変更
このレベルで行った変更は、このソースに関連付けられている、ユーザーが作成した特定のソース・パターンを使用するすべてのエンティティに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。
「ソース」ページが開きます。ソースの横にある「アクション」メニュー・アイコンをクリックし、「編集」を選択します。
「ソースの編集」ページが表示されます。
-
ソースのユーザー作成パターンの横にある「アクション」メニュー・アイコンをクリックし、「コレクション・プロパティの編集」をクリックします。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
エンティティのエージェント・プロパティの変更
このレベルで行った変更は、特定のエージェント・エンティティと、エージェント・エンティティとソースの関連付けを反映します。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「エンティティ」をクリックします。
「エンティティ」ページが開きます。タイプを管理エージェントとして指定して、エンティティをフィルタします。
エージェント・エンティティがリストされます。
-
エージェント・エンティティの名前の横にある「アクション」メニュー・アイコンをクリックし、「編集」をクリックします。「エンティティの編集」ダイアログ・ボックスが開きます。
-
「エージェント・コレクション・プロパティの表示」をクリックします。「ソース・タイプ」を選択します。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
ソース・エンティティ・アソシエーション・レベルのエージェント・プロパティの変更
このレベルで行った変更は、ソースに関連付けられた特定のエージェント・エンティティに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「ログ・アナリティクス」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。
「ソース」ページが開きます。ソースの名前をクリックして、ソースの詳細ページを開きます。
ソースに関連付けられたエージェント・エンティティが表にリストされます。
-
エージェント・エンティティの名前の横にある「アクション」メニュー・アイコンをクリックし、「アソシエーションの編集」をクリックします。「アソシエーションの編集」ダイアログ・ボックスが開きます。
-
「エージェント・コレクション・プロパティの表示」をクリックします。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
変更できるエージェント・プロパティ
プロパティ | サポートされているソース・タイプ | データ型 | 適用可能レベル | 説明 | 値の範囲 |
---|---|---|---|---|---|
タイムゾーン | ファイル、データベース、Oracle Diagnostic Log (ODL)、REST API | 文字列 | すべてのレベル | java.util.TimeZoneでサポートされている形式のタイムゾーン値。例: GMT 。このプロパティが指定されていない場合、エージェントはログ・ファイルの内容からそのプロパティを特定しようとします。それ以外の場合は、エージェントのタイムゾーン(デフォルトではGMT )が選択されます。
|
サポートされる形式のタイムゾーン値 java.util.TimeZone |
メタデータ | ファイル、データベース、Oracle Diagnostic Log (ODL)、REST API、Syslogリスナー | JSON | すべてのレベル | 各ログ・エントリにアタッチするメタデータ。例: {"accounts":["hr", "finance"], "status":["enabled"]} |
最大1024文字 |
大規模ディレクトリ監視の有効化 | ファイル、Oracle Diagnostic Log (ODL) | Boolean | テナント、エージェント | 大きなディレクトリの処理を有効にします。例: false |
- |
文字セット・エンコーディング | ファイル、Oracle Diagnostic Log (ODL) | 文字列 | すべてのレベル | ログ・コンテンツの文字セット。例: UTF-8 。このプロパティが指定されていない場合、エージェントはログ・ファイルの内容からそのプロパティを特定しようとします。
|
Java 8によるjava.nio APIの正規名。Supported Encodingsを参照してください。 |
SQLNET.ALLOWED_LOGON_VERSION | Database | 文字列 | テナント、エージェント、エンティティ | 例: 12 |
有効な値: 8 、12 |
最大経過日数 | Database | Integer | すべてのレベル | 1つのログ収集サイクルでフェッチする古い行の最大数。例: 1000000 |
ゼロを含む正数 |
ステータス・クリーンアップ時間ウィンドウ | REST API | Integer | テナント、エージェント | クリーニングする古いステータス・ファイルの量を示す時間ウィンドウ。書式: ISO 8601。例: P7D 。
|
ゼロより大きい |
履歴データ | REST API | 文字列 | テナント、エージェント、エンティティ |
フェッチする古いレコードの数を表す時間。書式: ISO 8601。例: 数値のみを指定した場合、エージェントはデフォルトで日数に設定されます。例: 履歴データは、ログ・ルール・レベルでエンティティとして指定できます |
過去30日間のデータ収集の日数を指定するには: |
重複レコードのフィルタ使用可能 | REST API | Boolean | すべてのレベル | 重複のフィルタリングを有効にします。例: true 。
|
- |
最大ログ・レコード長 | Syslogリスナー | Integer | すべてのレベル | syslogメッセージの最大ログ長(KB)。例: 64 。
|
1-640 |
ファイルのタイムゾーンおよび文字エンコーディングの手動指定
エージェント・インストール・フォルダの構成プロパティを編集して、ログ・ファイルのプロパティを手動で指定できます。
このタスクは、Windowsイベント以外のすべてのログに対して実行できます。
-
特定のパターンまたはログ・ソース(あるいはその両方)にプロパティを適用する場合、そのパターンIDとソースIDを書き留めます。エージェント・インストール・フォルダagent_inst/state/laStorage/os_file/os_file.xmlの下の構成xmlファイルを開きます。
- パターンIDの例:
<Pattern id="495071102827757094" name="/tmp/w*.mgr" include="true">
- ソースIDの例:
<LogSource id="-2574377491167724513" name="SS Concurrent Manager Logs" sourceType="os_file"/>
エージェントのインストール・フォルダの場所は、ソース・タイプによって異なります。たとえば、SQLデータベースの場所はagent_inst/state/laStorage/database_sql/database_sql.xmlです。
- パターンIDの例:
-
プロパティ・ファイルemd.propertiesをagent_inst/config/emd.propertiesの場所で編集し、次のプロパティを追加してOracle Logging Analyticsのデフォルト構成をオーバーライドします:
loganalytics.src.override_config=true
-
次のいずれかの例から選択して、ファイルemd.propertiesでタイムゾーンの
tz
および文字エンコーディングのenc
プロパティを指定します:-
すべてのソースおよびパターンにプロパティを適用します:
loganalytics.src.addl_src_ptn_configs=tz=UTC,enc=EUC-JP
-
特定のログ・ソースにのみプロパティを適用します:
loganalytics.src.addl_src_ptn_configs=srcid=-2574377491167724513,tz=UTC,enc=EUC-JP;srcid=-2574377491167724512,enc=UTF-8
この例で、タイムゾーンの
UTC
および文字エンコーディングのEUC-JP
プロパティはソース-2574377491167724513
に適用され、文字エンコーディングのプロパティUTF-8
はソース-2574377491167724512
に適用されます。 -
特定のパターンにのみプロパティを適用します:
loganalytics.src.addl_src_ptn_configs=ptnid=495071102827757094,tz=UTC,enc=EUC-JP;ptnid=495071102827757095,enc=UTF-8
この例で、タイムゾーンの
UTC
および文字エンコーディングのEUC-JP
プロパティはパターン495071102827757094
に適用され、文字エンコーディングのプロパティUTF-8
はパターン495071102827757095
に適用されます。 -
特定のパターンとソースの組合せにのみプロパティを適用します:
loganalytics.src.addl_src_ptn_configs=srcid=-2574377491167724513,ptnid=495071102827757094,tz=UTC,enc=EUC-JP;srcid=-2574377491167724513,ptnid=495071102827757095,enc=UTF-8
この例で、タイムゾーンの
UTC
および文字エンコーディングのEUC-JP
プロパティはパターン495071102827757094
とソース-2574377491167724513
を含むログに適用され、文字エンコーディングのプロパティUTF-8
はパターン495071102827757095
とソース-2574377491167724513
を含むログに適用されます。
-
データベースSQL収集スケジュールの構成
次に示す形式でCSVファイルに周期を指定することで、各データベース・ログ・ソースのSQL収集スケジュールをカスタマイズできます。
-
データベース・ホストの管理エージェントまたはOracle Cloud Agentのインストール・ディレクトリ(
agent_inst
など)に移動します。エージェント・インストール・ディレクトリにディレクトリlaconfig
を作成します。 -
laconfig
ディレクトリに、CSVファイルlogan_schedule_database_sql_*.csv
を作成します。これはスケジュール構成ファイルです。 -
スケジュール構成ファイルで、次の形式でソース・スケジュールの詳細を指定します。
NAME,RECURRENCE_PATTERN_UNIT,RECURRENCE_PATTERN_VALUE,START_HOUR <Source-Name>,DAY,1,1
ヘッダー行には、規定のコンテンツ(
NAME,RECURRENCE_PATTERN_UNIT,RECURRENCE_PATTERN_VALUE,START_HOUR
)が必要です。後続の行で、ソースごとに行ごとに1つずつスケジュールを指定します。
ヘッダー行パラメータとその値:
ヘッダー行パラメータ 説明 許可された値 NAME
Oracle Logging Analyticsで定義されたデータベース・ログ・ソースの名前。
任意
RECURRENCE_PATTERN_UNIT
これは、分や日など、SQLコレクションの間隔の単位です。
WEEKおよびMONTHには、
:
で区切られた複数の値を指定できます- MIN: 分
- HOUR: 時間
- DAY: 日数
- WEEK: 週数
- MONTH: 月
RECURRENCE_PATTERN_VALUE
選択したパターン単位の値。
- MIN: 間隔5分、15分
- HOUR: 間隔1時間
- DAY: 日次実行(1または12)
- WEEK: SUN, MON, TUE, WED, THU, FRI, SAT
- MONTH: 日付1から31、月のLAST日
START_HOUR
SQL収集の開始時間(0100時間、1200時間など)。
この値を指定しない場合、SQLコレクションはソースとエンティティの関連付けの直後に開始されます。値が指定されていない場合でも、スケジュールが有効になるには、前述のカンマが行に存在する必要があります。
1または12。
-
CSVファイルを保存した後、エージェントを再起動します。
スケジュール構成の値の例を次に示します。
ソース行コンテンツ | 説明 |
---|---|
|
ソースとエンティティの関連付け時間から5分ごとにSQL問合せをスケジュールします。 |
|
SQL問合せは、ソースとエンティティの関連付け時間から1時間ごとにスケジュールします。 |
|
SQL問合せを毎日0100時間のシステム時間にスケジュールします。 |
|
SQL問合せを毎日1200時間のシステム時間にスケジュールします。 |
|
SQL問合せを毎週金曜日のシステム時間0100時間にスケジュールします。 |
|
SQL問合せを毎週水曜日と木曜日のシステム時間0100時間にスケジュールします。 |
|
SQL問合せを毎月日付7の0100時間のシステム時間にスケジュールします。 |
|
最初にSource1をエンティティに関連付け、ログ収集の開始を待機してから、同じエンティティとのSource2の関連付けを追加して構成を更新します。 |
ラージ・フォルダからのログ収集の有効化
10,000を超えるファイルを含むフォルダでは、管理エージェントによるリソース(メモリー/ストレージ/CPU)使用率が高いことが原因で、ログ収集が遅くなり、管理エージェントの他の機能に影響し、ホスト・マシンの速度が低下する可能性があります。
管理エージェント・ログ・分析プラグインで大きなフォルダが検出されると、次の例のようなメッセージが管理エージェントmgmt_agent_logan.log
ファイルに追加されます:
2020-07-30 14:46:51,653 [LOG.Executor.2388 (LA_TASK_os_file)-61850] INFO - ignore large dir /u01/service/database/logs. set property loganalytics.enable_large_dir to enable.
大きなフォルダは避けることをお薦めします。クリーン・アップ・メカニズムを利用して、収集後すぐにファイルを削除し、管理エージェントがファイルを再度収集するのに十分な時間を持つようにします。
ただし、大きなフォルダのログのモニタリングを続行する場合は、次の変更を加えてサポートを有効にできます。
エージェント・インストール・フォルダの構成プロパティloganalytics.enable_large_dir
をtrue
に手動で編集して、10000を超えるファイルを持つフォルダからのログの収集を有効にできます。デフォルトでは、プロパティ値はfalse
です。
プロパティ・ファイルemd.propertiesをagent_inst/config/emd.propertiesの場所で編集し、前述のプロパティ値を追加してOracle Logging Analyticsのデフォルト構成をオーバーライドします:
sudo -u mgmt_agent echo "loganalytics.enable_large_dir=true" >> INSTALL_DIRECTORY/agent_inst/config/emd.properties
INSTALL_DIRECTORY
をagent_inst
フォルダのパスに置き換えます。ファイルemd.propertiesの編集後に管理エージェントを再起動します。
このサポートを有効にするには、ホスト・エージェントでいくつかの構成変更を行う必要がある場合があります。本番環境で新しい設定を作成する前に、開発環境またはテスト環境で新しい設定を試してください。代表的な環境を使用して、次の要因の増大を確認します。実際の必要な増加は、ファイル数、ファイル作成率、管理エージェントが実行しているその他のタイプの収集などの要因によって異なります。
- 管理エージェントのヒープ・サイズを増やします。ファイル数が多いディレクトリの場合、必要なヒープ・サイズはファイル数とともに増加します。管理エージェントのドキュメントを参照してください。
- 管理エージェントが保持する必要がある多数の状態ファイルの処理に十分なディスク領域およびiノードが使用可能であることを確認します。これは、使用されるログ・ソースおよびパーサーのタイプによって異なります。パーサーがヘッダー詳細関数を使用する場合、元のログ・ファイルが存在するかぎり、エージェントはヘッダーを作成してキャッシュ・ファイルに格納します。
- 開いているファイルの数のオペレーティング・システム設定で、大きいフォルダおよび多数の状態ファイルの読取りを管理エージェントがサポートできることを確認します。
ログ・ファイル・パスの大/小文字を区別しない照合にマクロを使用
ログ・ファイル・パス・パターンでignore-caseマクロ(?i)
を使用して、大/小文字を区別しない形式で解釈します。これは、「ファイル」タイプのログ・ソースで提供されるログ・ファイル・パス・パターンに適用されます。
マクロ(?i)
は、パスの要素の先頭にある場合にのみ適用されます。
次の例を考えてみます。
/tmp/(?i)FOO/*.log
前述の例では、マクロに続くパスの要素はFOO
です。これは、大文字と小文字を区別しない形式で解釈されます。
プロパティの値にスラッシュ文字/
が含まれている場合は、大文字と小文字を区別しないマクロを正しく使用するように注意する必要があります。たとえば、エンティティ・プロパティがlogdir=/tmp/logs/
で、ログ・ソース・ファイルのパス・パターンが(?i){logdir}/foo.log
で、大/小文字の区別なしマクロが適用されている場合、ログ・ソース・ファイルのパス・パターンは(?i)/tmp/logs/foo.log
として解釈され、これは目的の結果ではありません。
このような場合は、大文字と小文字を区別しない複数のプロパティーを追加し、ignore-caseマクロを使用してそれらのプロパティーからログパターンパスを構築します。