OSコマンド・コレクションの設定

管理エージェント・ホストでOSコマンド・スクリプトを実行し、Oracle Log Analyticsでログの形式でコマンドの連続出力を収集する場合は、独自のスクリプトを作成します。

トピック:

OSコマンド出力の収集を設定するための前提条件

ログ収集を設定する前に、次の前提条件タスクを完了します。

  • Oracle Log Analyticsでログとして収集できるOSコマンドで構成されるカスタム・スクリプトを作成します。スクリプトのSTDOUTの出力は、エージェントによってペイロードとしてクラウドに送信されます。STDOUTペイロードは、単一のログ・エントリまたは複数のログ・エントリです。Oracle Log Analyticsソースで使用されているパーサーが解析できることを確認します。また、スクリプトでエラー条件を処理し、前提条件を確認できる必要があります。

    カスタム・スクリプトは、エージェント・インストール・フォルダのagent_inst/state/laStorage/os_cmd/scriptsフォルダに格納します。したがって、スクリプトを格納するための絶対パスは次のとおりです。

    • Oracle Management Agentの場合: /opt/oracle/mgmt_agent/agent_inst/state/laStorage/os_cmd/scripts
    • Oracle Cloud Agent- Management Agentプラグインの場合: /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/state/laStorage/os_cmd/scripts
  • スクリプト内の特定のコマンドを実行するには、特殊なファイルアクセス権が必要になる場合があります。このような権限をエージェント・ホストに手動で構成します。スクリプトおよびスクリプトが実行するその他のコマンド/スクリプトには、管理エージェント・ユーザーに対する実行権限が必要です。

OSコマンド・ログを収集するための全体的なフロー

OSコマンド・スクリプトの出力を収集するための大まかなタスクを次に示します。

  • OSコマンド・スクリプトを実行するホストに管理エージェントをインストールし、Oracle Log Analyticsで収集する必要がある出力を生成します。管理エージェントを使用した連続ログ収集の設定を参照してください。

  • Oracle Log Analyticsでエージェント・ホストを識別するエンティティを作成します。エンティティは、スクリプトが実行される管理エージェントと同じホスト上にある必要があります。リモートOSコマンドの実行はサポートされていません。通常、エンティティは管理エージェントのインストール時に自動的に作成されます。「ログ出力リソースを表すエンティティの作成」を参照してください。

  • スクリプトの出力を解析できるパーサーを作成します。このパーサーは、次のステップで識別されるソースで使用する必要があります。パーサーの作成を参照してください。
  • 既存のソースを識別するか、OSコマンド・タイプのログ・ソースを作成します。OSコマンド・ソースの作成を参照してください。
  • OSコマンド収集の収集間隔を設定するようにエージェント収集プロパティcustomized_scheduleを構成するかどうかを確認します。デフォルト値は30 secondsです。エージェント・コレクション・プロパティを使用して、エージェント・レベル、ソース・レベル、エンティティ・レベルまたは関連レベルでスケジュールを更新できます。「変更できるエージェント・プロパティ」および「エージェント・プロパティの変更」を参照してください。
  • 以前に作成したソースにエンティティを関連付けます。新しいソースとエンティティのアソシエーションの構成を参照してください。

    関連付けが完了すると、エージェントはOSコマンドの実行を定期的に開始し、コマンドのSTDOUTがログ・データとして収集され、そのログ・データはOracle Log Analyticsへのフローを開始します。

  • 前に作成したOSコマンド・ソースを選択して、ログ・エクスプローラでログ・データを表示します。ソース属性によるログのフィルタを参照してください。

設定の完了後にログ・データがログ・エクスプローラに表示されない場合は、エージェント収集の警告に問題がないかチェックできます。次の警告は、特にOSコマンドの出力収集に関連しています。

  • 外部アプリケーション実行の失敗: スクリプトの実行中にエラーが発生しました。または、OSコマンドはサポートされていません。

  • 外部アプリケーションが見つかりません: スクリプトが見つかりません。スクリプトに対する読取り/実行権限がありません。

「エージェント収集警告の表示」を参照してください。

OSコマンド・コレクションの設定時に考慮する重要な要素

  • スクリプトでコマンドの完全なパスを使用します。たとえば、sudoのかわりに/bin/sudoを使用します。

  • スクリプトは、管理エージェントが実行しているのと同じユーザーとして実行されます。これは、スクリプト内のファイルの読取りまたは書込み中に重要です。

  • 標準出力(STDOUT)および標準エラー(STDERR)でスクリプトによって生成された出力は、ログ・エントリを抽出するためのテキストとして収集されます。

  • 次の単語または接頭辞は、OSコマンドまたはスクリプト名ではサポートされていません: shbashcshzshkshdashcmd

  • OSコマンドまたはスクリプト名では、次の文字はサポートされていません: |&;><

  • 次の親ディレクトリ・トラバーサル順序は、OSコマンドまたはスクリプト名(/../または\..\)ではサポートされていません。また、OSコマンドは/..または\..で終了できません。

  • 次の環境変数がエージェントからスクリプトに渡されます。この変数は、スクリプトで使用できます。

    • LA_SOURCE_COMMAND_ID: これは、ログ・ソース内のコマンドの内部生成されたパターンIDです。同じスクリプトが複数のコマンドで指定されている場合は、スクリプト・インスタンスを区別するために使用できます。

OSコマンド・ソースの作成

このタイプのソースを作成して、エージェント・ホストでOSコマンド・スクリプトをログの形式で実行することで、出力の継続的な収集を設定します。

  1. ナビゲーション・メニューを開き、「監視および管理」をクリックします。「Log Analytics」で、「管理」をクリックします。

  2. 管理リソースが、左側のナビゲーション・ペインにある「管理」の下にリストされます。「ソース」をクリックします。

    「ソース」ページが開きます。「ソースの作成」をクリックします。

  3. 「名前」フィールドに、ソースの名前を入力します。

    オプションで、説明を追加します。

  4. 「ソース・タイプ」リストから、「OSコマンド」を選択します。

  5. 「エンティティ・タイプ」フィールドをクリックして、このログ・ソースに対するエンティティのタイプを選択します。後で、このソースをエンティティに関連付けて管理エージェントを介したログ収集を有効にする場合、このタイプのエンティティのみがアソシエーションに使用されます。1つのソースは、1つ以上のエンティティ・タイプを持つことができます。エンティティは、スクリプトを実行する管理エージェントと同じホスト上にある必要があることに注意してください。リモートOSコマンドの実行はサポートされていません。

  6. 「パーサー」フィールドをクリックし、ログのフィールドを最も適切に取得するパーサー名を選択します。

    次のパーサー関数はサポートされていません。

    • JSONまたはXMLブロック・サイズが1MBを超え、ヘッダーがブロックの最後またはヘッダーが本文をラップする場合、ヘッダー詳細関数はサポートされません。
    • 時間オフセット
  7. 「コマンド」タブを使用して、OSコマンド・スクリプトと、ログ形式で出力を収集するためにエージェント・ホストで実行する必要がある詳細を含めます。

    • コマンド: エージェント・ホストに格納されているOSコマンド・スクリプトのパスを指定します。パスはカスタム・スクリプト・フォルダに対する相対パスである必要があります。「コマンド」フィールドに、親ディレクトリ・トラバーサル順序/../または\..\を含めることはできません。コマンドは、/..または\..で終了できません。

      パス例:

      カスタム・スクリプトの絶対パスが/opt/oracle/mgmt_agent/agent_inst/state/laStorage/os_cmd/scripts/user1scripts/my_script1.shの場合は、このフィールドにパスuser1scripts/my_script1.shを指定します。

      OSコマンド・カスタム・スクリプトおよびエージェント・ホストに格納する場所の詳細は、OSコマンド出力の収集を設定するための前提条件を参照してください。

    • 引数: オプションで、スクリプトの引数を指定し、各引数を空白文字で区切ることができます。

    • 説明: オプションで、このコマンドおよび引数のセットについてわかりやすい説明を指定します。

    OSコマンド・スクリプトの詳細を指定した後、その行に対応するチェック・ボックスを有効にして、設定を有効にします。

  8. データ・フィルタを追加します。ソースでのデータ・フィルタの使用を参照してください。

  9. 拡張フィールドを追加します。ソースでの拡張フィールドの使用を参照してください。

  10. フィールド・エンリッチメント・オプションを構成します。フィールド・エンリッチメント・オプションの構成を参照してください。

  11. ラベルを追加します。ソースでのラベルの使用を参照してください。

  12. 「保存」をクリックします。