管理エージェントの拡張構成オプション
ここでは、管理エージェント構成を変更してログ収集をカスタマイズできるユースケースを示します。
エージェント・プロパティの変更
コンソールを使用して、様々な階層レベル(テナント・レベルが最高)でLog Analyticsログ収集のエージェント・プロパティを設定できます。
- テナント・レベル: テナンシ・レベルでのエージェント・プロパティの変更
- エージェント・レベル: エージェント・レベルでのエージェント・プロパティの変更
- ソース・レベル: 特定のソースのエージェント・プロパティの変更
- ソース・パターン・レベル: ユーザー作成ソース・パターンのエージェント・プロパティの変更
- エンティティ・レベル: エンティティのエージェント・プロパティの変更
- 関連レベル: ソース- エンティティ・アソシエーション・レベルでのエージェント・プロパティの変更
上位レベルで適用されるプロパティ値は、すべての下位レベルに適用されます。同じプロパティが複数のレベルで設定されている場合は、下位レベルで設定されたエージェント・プロパティが優先されます。
前述のすべてのレベルで、各レベル・タイプの対応するセクションのステップに従って、そのソース・タイプのエージェント・プロパティがリストされるダイアログ・ボックスに移動します。ダイアログボックスのテーブルには、各プロパティーの現在の値が表示されます。情報アイコンの上にカーソルを置くと、デフォルト値が何であるかがわかります。
-
「新しい値」フィールドに、変更するプロパティの新しい値を入力します。値のデータ型が指定したとおりであることを確認します。各ソース・タイプに対して変更できるプロパティのリストおよび対応するデータ型については、「変更できるエージェント・プロパティ」を参照してください。
-
プロパティをデフォルト値に変更するには、
「アクション」メニュー・アイコンをクリックし、「デフォルトにリセット」を選択します。
-
プロパティの現在の値をクリアするには、
「アクション」メニュー・アイコンをクリックし、「現在の値のクリア」を選択します。現在の値をクリアすると、新しい値が継承されます。現在の変更を保存してこのダイアログボックスを再び開くと、新しい値がテーブルに表示されます。
-
変更を保存します。
テナンシ・レベルでのエージェント・プロパティの変更
このレベルで行った変更は、テナンシ全体のエージェントに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「Log Analytics」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「サービス詳細」をクリックします。
-
「グローバル・エージェント収集プロパティ」の横にある「編集」をクリックします。「グローバル・エージェント収集プロパティの編集」ダイアログ・ボックスが開きます。
-
「ソース・タイプ」を選択します。選択したソース・タイプに応じて、変更できるプロパティが表にリストされます。
エージェント・レベルのエージェント・プロパティの変更
このレベルでの変更は、特定のエージェントが管理するエンティティおよびソースに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「Log Analytics」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「エンティティ」をクリックします。
「エンティティ」ページが開きます。タイプを「管理エージェント」として指定して、エンティティをフィルタします。
エージェント・エンティティがリストされます。
-
エージェント・エンティティの名前をクリックします。「エンティティ詳細」ページが開きます。
-
「グローバル・エージェント収集プロパティ」の横にある「編集」をクリックします。「ソース・タイプ」を選択します。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
特定のソースのエージェント・プロパティの変更
このレベルで行った変更は、このソースに関連付けられているすべてのエンティティおよびソース・パターンに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「Log Analytics」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。
「ソース」ページが開きます。ソースの横にある「アクション」メニュー・アイコン
をクリックし、「編集」を選択します。
「ソースの編集」ページが開きます。
-
「エージェント収集プロパティの表示」をクリックします。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
ユーザー作成ソース・パターンのエージェント・プロパティの変更
このレベルでの変更は、ユーザーが作成した特定のソース・パターンを使用する、このソースに関連付けられているすべてのエンティティに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「Log Analytics」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。
「ソース」ページが開きます。ソースの横にある「アクション」メニュー・アイコン
をクリックし、「編集」を選択します。
「ソースの編集」ページが開きます。
-
ソースのユーザー作成パターンの横にある
「アクション」メニュー・アイコンをクリックし、「コレクション・プロパティの編集」をクリックします。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
エンティティのエージェント・プロパティの変更
このレベルで行った変更は、特定のエージェント・エンティティおよびエージェント・エンティティとソースとの関連付けに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「Log Analytics」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「エンティティ」をクリックします。
「エンティティ」ページが開きます。タイプを「管理エージェント」として指定して、エンティティをフィルタします。
エージェント・エンティティがリストされます。
-
エージェント・エンティティの名前の横にある「アクション」メニュー・アイコン
をクリックし、「編集」をクリックします。「エンティティの編集」ダイアログ・ボックスが開きます。
-
「エージェント収集プロパティの表示」をクリックします。「ソース・タイプ」を選択します。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
ソース- エンティティ関連レベルでのエージェント・プロパティの変更
このレベルでの変更は、ソースに関連付けられている特定のエージェント・エンティティに反映されます。
-
ナビゲーション・メニューを開き、「監視および管理」をクリックします。「Log Analytics」で、「管理」をクリックします。「管理の概要」ページが開きます。
-
管理リソースが、左側のナビゲーション・ペインの「リソース」の下にリストされます。「ソース」をクリックします。
「ソース」ページが開きます。ソースの名前をクリックして、ソースの詳細ページを開きます。
ソースに関連付けられたエージェント・エンティティが表にリストされます。
-
エージェント・エンティティの名前の横にある「アクション」メニュー・アイコン
をクリックし、「アソシエーションの編集」をクリックします。「アソシエーションの編集」ダイアログ・ボックスが開きます。
-
「エージェント収集プロパティの表示」をクリックします。そのソース・タイプに対して変更できるエージェント・プロパティが表にリストされます。
変更可能なエージェント・プロパティ
プロパティ | サポートされるソース・タイプ | データ型 | 適用可能なレベル | 説明 | 値範囲 |
---|---|---|---|---|---|
タイムゾーン | ファイル、データベース、Oracle診断ログ(ODL)、REST API | 文字列 | すべてのレベル | java.util.TimeZoneでサポートされている形式のタイムゾーン値。例: GMT 。このプロパティが指定されていない場合、エージェントはログ・ファイルの内容からそのプロパティを特定しようとします。それ以外の場合は、エージェントのタイムゾーン(デフォルトではGMT )が取得されます。
|
サポートされている形式のタイムゾーン値 java.util.TimeZone |
メタデータ | ファイル、データベース、Oracle診断ログ(ODL)、REST API、Syslogリスナー | JSON | すべてのレベル | 各ログ・エントリにアタッチするメタデータ。例: {"accounts":["hr", "finance"], "status":["enabled"]} |
最大1024文字 |
ラージ・ディレクトリ・モニタリングの有効化 | ファイル、Oracle診断ログ(ODL) | ブール | テナント、エージェント | 大きなディレクトリの処理を有効にします。例: false |
- |
文字セット・エンコーディング | ファイル、Oracle診断ログ(ODL) | 文字列 | すべてのレベル | ログ・コンテンツの文字セット。例: UTF-8 。このプロパティが指定されていない場合、エージェントはログ・ファイルの内容からそのプロパティを特定しようとします。
|
Java 8によるjava.nio APIの正規名。Supported Encodingsを参照してください。 |
SQLNET.ALLOWED_LOGON_VERSION | データベース | 文字列 | テナント、エージェント、エンティティ | 例: 12 |
有効な値: 8 、12 |
最大経過日数 | データベース | 整数 | すべてのレベル | 1つのログ収集サイクルでフェッチする最大古い行数。例: 1000000 |
ゼロを含む正の数 |
ステータス・クリーン・アップ時間ウィンドウ | REST API | 整数 | テナント、エージェント | クリーンする古いステータス・ファイルを示す時間ウィンドウ。形式: ISO 8601、例: P7D 。
|
ゼロより大きい |
取得時データ | REST API | 文字列 | テナント、エージェント、エンティティ |
フェッチする古いレコード数を表す時間。形式: ISO 8601、例: 数値のみを指定した場合、エージェントはデフォルトで日数に設定されます。例: 履歴データは、ログ・ルール・レベルでエンティティとして指定できます |
過去30日間のデータを収集する日数を指定するには: |
重複レコードのフィルターを有効化 | REST API | ブール | すべてのレベル | 重複のフィルタリングを有効にします。例: true 。
|
- |
最大ログ・レコード長 | Syslogリスナー | 整数 | すべてのレベル | syslogメッセージ・ログの最大長(KB)。例: 64 。
|
1-640 |
ファイルのタイムゾーンおよび文字エンコーディングの手動指定
エージェント・インストール・フォルダの構成プロパティを編集して、ログ・ファイルのプロパティを手動で指定できます。
このタスクは、Windowsイベント以外のすべてのログに対して実行できます。
-
特定のパターンまたはログ・ソース(あるいはその両方)にプロパティを適用する場合、そのパターンIDとソースIDを書き留めます。エージェント・インストール・フォルダagent_inst/state/laStorage/os_file/os_file.xmlの下のconfig 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の例:
-
agent_inst/config/emd.propertiesの場所にあるプロパティ・ファイルemd.propertiesを編集し、次のプロパティを追加してOracle Log 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 Log Analyticsで定義されたデータベース・ログ・ソースの名前。
いずれか
RECURRENCE_PATTERN_UNIT
これは、分や日など、SQL収集の間隔の単位です。
WEEKおよびMONTHには、
:
で区切られた複数の値を指定できます。- MIN: 分
- 時間: 時間
- DAY: 日
- 週: 週
- 月: 月
RECURRENCE_PATTERN_VALUE
選択したパターン単位の値。
- MIN: 間隔5分、15分
- HOUR: 間隔1時間
- DAY: 毎日1または12で実行
- WEEK: SUN, MON, TUE, WED, THU, FRI, SAT
- 月: 日付1から31、月のLAST日
START_HOUR
SQL収集の開始時間(0100時間、1200時間など)。
この値を指定しない場合、SQL収集はソースとエンティティの関連付けの直後に開始されます。値を指定しない場合でも、スケジュールが有効になるには、先行するカンマが行に存在する必要があります。
1または12。
-
CSVファイルの保存後、エージェントを再起動します。
スケジュール構成の値の例の一部を次に示します。
ソース行コンテンツ | 説明 |
---|---|
|
ソース・エンティティの関連付け時間から5分ごとにSQL問合せをスケジュールします。 |
|
ソース・エンティティの関連付け時間から1時間ごとにSQL問合せをスケジュールします。 |
|
SQL問合せを毎日0100時間のシステム時間にスケジュールします。 |
|
SQL問合せを毎日1200時間のシステム時間にスケジュールします。 |
|
SQL問合せを毎週金曜日のシステム時間0100でスケジュールします。 |
|
システム時間01:00で、毎週水曜日と木曜日の両方にSQL問合せをスケジュールします。 |
|
システム時間0100時間の日付7に毎月SQLクエリをスケジュールします。 |
|
最初にSource1をエンティティに関連付け、ログ収集の開始を待機してから、同じエンティティとのSource2の関連付けを追加して構成を更新します。 |
ラージ・フォルダからのログ収集の有効化
10,000を超えるファイルを含むフォルダは、管理エージェントによって高いリソース(メモリー/ストレージ/CPU)使用率が発生し、ログ収集が遅くなり、管理エージェントの他の機能に影響を及ぼし、ホスト・マシンの速度が低下する可能性があります。
管理エージェントLog Analyticsプラグインで大きなフォルダが検出されると、次の例のようなメッセージが管理エージェント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
です。
agent_inst/config/emd.propertiesの場所にあるプロパティ・ファイルemd.propertiesを編集し、前述のプロパティ値を追加してOracle Log 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ノードが使用可能であることを確認します。これは、使用するログ・ソースおよびパーサーのタイプによって異なります。パーサーがHeader-Detail関数を使用する場合、元のログ・ファイルが存在しているかぎり、エージェントはヘッダーを作成してキャッシュ・ファイルに格納します。
- 開いているファイルの数のオペレーティング・システム設定が、大きいフォルダおよび潜在的に多数の状態ファイルを読み取る管理エージェントをサポートできることを確認します。
ログ・ファイル・パスの大/小文字を区別しない照合にマクロを使用
ログ・ファイル・パス・パターンで大/小文字を区別しない形式で解釈するには、大/小文字を区別しないマクロ(?i)
を使用します。これは、「ファイル」タイプのログ・ソースで提供されるログ・ファイル・パス・パターンに適用されます。
マクロ(?i)
は、パスの要素の先頭にある場合にのみ適用されます。
例を考えてみます。
/tmp/(?i)FOO/*.log
前述の例では、マクロの後のパスの要素はFOO
です。これは、大/小文字を区別しない形式で解釈されます。
プロパティの値にスラッシュ文字/
が含まれている場合は、大/小文字を区別しないマクロを正しく使用するように注意する必要があります。たとえば、エンティティ・プロパティがlogdir=/tmp/logs/
で、ログ・ソース・ファイルのパス・パターンが(?i){logdir}/foo.log
で、大文字小文字を区別しないマクロが適用されている場合、ログ・ソース・ファイルのパス・パターンは目的の結果ではない(?i)/tmp/logs/foo.log
として解釈されます。
このような場合、大/小文字を区別しない複数のプロパティを追加し、無視大/小文字のマクロを使用してログ・パターン・パスを作成します。