System Center Operations Manager での Linux ログ ファイルの監視

Note

System Center Operations Manager は、2024 年 8 月に予定されている OMS エージェントの提供終了時に fluentD ベースのログ ファイルの監視をサポートしません。

System Center Operations Manager では、Fluentd を使用する最新バージョンのエージェントを使用して、Linux サーバーのログ ファイル監視機能が強化されました。 この更新プログラムにより、以前のログ ファイルの監視に次のような改良が加えられています。

  • ログ ファイル名とパスのワイルドカード文字。
  • 単純一致、排他的な一致、相関性のある一致、反復される相関関係、排他的な相関関係などの、カスタマイズ可能なログ検索の新しい一致パターン。
  • Fluentd コミュニティによって公開された汎用 Fluentd プラグインのサポート。

基本的な操作

Linux でのログ ファイル監視の基本的な操作には、次の手順が含まれます。

  1. レコードは Linux エージェントのログに書き込まれます。
  2. Fluentd はレコードを収集し、パターン一致時にイベントを作成します。
  3. イベントは管理サーバー上の OMED サービスに送信され、 System Center OMED サービス 管理サーバーのイベント ログに記録されます。 ( System Center OMED サービス イベント ログは、Fluentd エージェントからイベントが正常に送信されたときにのみ作成されます)
  4. カスタム管理パックのルールとモニターは、Operations Manager でイベントを収集し、アラートを作成します。

構成の概要

ログ ファイルの監視には、次の手順が必要です。 詳細については、次のセクションで説明します。

  1. 最新の System Center Operations Manager 2019 Linux 管理パックをインポートします。
  2. 監視対象の各 Linux コンピューターに最新バージョンの Linux エージェントをインストールします。
  3. 監視対象の各 Linux コンピューターに最新の OMSAgent をインストールします。
  4. Fluentd 構成ファイルを作成してログを収集します。
  5. 構成ファイルを Linux エージェントにコピーします。
  6. サンプル管理パックを使用してルールとモニターを作成し、ログからイベントを収集し、アラートを作成します。
  1. 最も新しい System Center Operations Manager 2022 Linux 管理パックをインポートします。
  2. 監視対象の各 Linux コンピューターに最新バージョンの Linux エージェントをインストールします。
  3. 監視対象の各 Linux コンピューターに最新の OMSAgent をインストールします。
  4. Fluentd 構成ファイルを作成してログを収集します。
  5. 構成ファイルを Linux エージェントにコピーします。
  6. サンプル管理パックを使用してルールとモニターを作成し、ログからイベントを収集し、アラートを作成します。

ログ監視管理パックをインストールする

Microsoft.Linux.Log.Monitoring 管理パックをインストールして、Linux ログ ファイルの監視を有効にします。

Note

OMS エージェントが構成されていて、コンソールから UNIX および LINUX エージェントをアンインストールしようとすると、OMS コンポーネントはエージェントからアンインストールされません。

Linux ログ ファイルの監視を構成する

Linux ログ ファイルの監視を構成するには、次の手順に従います。

  1. 管理パック インストールするための標準プロセスを使用して 最新の System Center Operations Manager 2019 Linux 管理パックをインポートします。

  2. 新しい Linux エージェントを Linux サーバーに手動でインストールするか、[検出ウィザードを使用](/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console) を使用してインストールします。

  3. 監視する各 Linux コンピューターに最新の OMSAgent をインストールします。 次のコマンドを使用します。

    # Download latest OMS Agent from GitHub
    wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh
    
    # Run onboarding script
    sh onboard_agent.sh
    

    Linux エージェントで次の手順を実行します。

  1. 管理パック インストールするための標準プロセスを使用して 最も新しい System Center Operations Manager 2022 Linux 管理パックをインポートします。

  2. 新しい Linux エージェントを Linux サーバーに手動でインストールするか、[検出ウィザードを使用](/system-center/System Center Operations Manager/manage-deploy-crossplat-agent-console) を使用してインストールします。

  3. 監視する各 Linux コンピューターに最新の OMSAgent をインストールします。 次のコマンドを使用します。

    # Download latest OMS Agent from GitHub
    wget https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/master/installer/scripts/onboard_agent.sh
    
    # Run onboarding script
    sh onboard_agent.sh
    

    Linux エージェントで次の手順を実行します。

  1. 次のコマンドを使用して、次のパスにフォルダーを作成します。

    # Create omsagent.d folder
    mkdir -p /etc/opt/microsoft/omsagent/scom/conf/omsagent.d
    
    # Create certs folder
    mkdir /etc/opt/microsoft/omsagent/scom/certs
    
    # Create log folder
    mkdir -p /var/opt/microsoft/omsagent/scom/log
    
    # Create run folder
    mkdir /var/opt/microsoft/omsagent/scom/run
    
    # Create state folder
    mkdir /var/opt/microsoft/omsagent/scom/state
    
    # Create tmp folder
    mkdir /var/opt/microsoft/omsagent/scom/tmp
    
    # Create fluent-logging folder (used for log file position file, this location is flexible)
    mkdir -p /home/omsagent/fluent-logging
    
  2. 上記の各フォルダーの所有権を omsagent:omiusersに設定します。

    # Change owner of System Center Operations Manager folder
    chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom
    
    # Change owner of log folder
    chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/log
    
    # Change owner of run folder
    chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/run
    
    # Change owner of state folder
    chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/state
    
    # Change owner of tmp folder
    chown omsagent:omiusers /var/opt/microsoft/omsagent/scom/tmp
    
    # Change owner of fluent-logging folder (used for log file position file, this location is flexible)
    chown omsagent:omiusers /home/omsagent/fluent-logging
    

    ログ ファイルの監視のスクリーンショット。

  3. omsagent ファイルと omsconfig ファイルを作成します。

    # Create omsadmin.conf file
    touch /etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf
    
    # Create omsagent.conf file
    touch /etc/opt/microsoft/omsagent/scom/conf/omsagent.conf
    
  4. 上記の各ファイルの所有権を omsagent:omiusersに設定します。

    # Change owner of omsadmin.conf file
    chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/conf/omsadmin.conf
    
    # Change owner of omsagent.conf file
    chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/conf/omsagent.conf
    
  5. ファイル /etc/opt/microsoft/omsagent/scom/conf/omsadmin.confを編集し、強調表示された情報を変更した後、次の情報を追加します。

    WORKSPACE_ID=scom
    System Center Operations Manager_ENDPOINT=https://<mark>\<MSFQDN\></mark>:8886
    MONITORING_ID={274F8D7B-DBCA-8FC3-1451-8DCD55092156}
    
  6. OMSAgent を再起動します。

    /opt/microsoft/omsagent/bin/service_control restart
    
  7. omsagent ログの状態を確認します。

    tail -100 /var/opt/microsoft/omsagent/scom/log/omsagent.log
    

OMED サービスを有効にする

Linux エージェントを管理して、リソース プール内の各管理サーバーで OMED サービスを有効にします。

OMED サービスは Fluentd からイベントを収集し、Operations Manager イベントに変換します。 カスタム管理パックをインポートすると、Linux サーバーから受信したイベントに基づいてアラートを生成できます。

OMED サービスは、オペレーション コンソールから有効にすることも、管理サーバーまたはゲートウェイ サーバーで手動で有効にすることもできます。

  1. オペレーション コンソールから、 Monitoring>Operations Manager>Management Server>Management サーバーの状態に移動します。
  2. 管理サーバーの状態で管理サーバーを選択します。
  3. Tasks から、ヘルス サービスタスク>Enable System Center OMED Server を選択します。

OMED ファイアウォール規則の追加

OMED ファイアウォール規則を有効にするには、PowerShell を使用してポート (TCP/8886) を自動的に追加するか、手動で追加する 2 つのオプションがあります。

PowerShell を使用して規則を自動的に追加するには、次の手順に従います。

次のコマンドを使用すると、ファイアウォール規則を自動的に追加できます。

Set-NetFirewallRule -DisplayName "System Center Operations Manager External DataSource Service" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8886

OMSAgent のクライアント証明書を割り当てる

OMSAgent のクライアント証明書を割り当てる場合は、2 つのオプションがあります。

  1. OMI エージェントから署名された証明書にリンクします。
  2. OMS エージェントのクライアント証明書を手動で生成します。

OMI エージェントから署名された証明書にリンクするか、OMS エージェントからクライアント証明書を手動で生成する手順に必要なタブを選択します。

  1. omi.pemファイルとomikey.pem ファイルの所有権をomsagent:omiusersに設定します。

    # Change owner of System Center Operations Manager-cert.pem file
    chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/certs/scom-cert.pem
    
    # Change owner of System Center Operations Manager-key.pem file
    chown omsagent:omiusers /etc/opt/microsoft/omsagent/scom/certs/scom-key.pem
    
  2. Linux マシンで次のコマンドを実行して、OMS エージェント クライアント証明書を OMI 証明書 (Operations Manager Linux エージェント証明書に設定します。

    # Link file omi.pem to System Center Operations Manager-cert.pem
    ln -s /etc/opt/omi/ssl/omi.pem /etc/opt/microsoft/omsagent/scom/certs/scom-cert.pem
    
    # Link file omikey.pem to System Center Operations Manager-key.pem
    ln -s /etc/opt/omi/ssl/omikey.pem /etc/opt/microsoft/omsagent/scom/certs/scom-key.pem
    

Fluentd 構成ファイルを作成する

Fluentd 操作は、構成ファイルを使用して構成します。 ログ監視を利用するには、構成ファイルを作成する必要があります。 構成ファイルには、収集するデータを定義するためのソース ログ ファイル名、パス、フィルターなどの情報が含まれています。

マスター Fluentd 構成ファイル omsagent.conf は、 /etc/opt/microsoft/omsagent/scom/conf/にあります。 ログ ファイルの監視構成をこのファイルに直接追加できますが、別の構成ファイルを作成して、さまざまな設定をより適切に管理する必要があります。 次に、マスター ファイルで @include ディレクティブを使用して、カスタム ファイルを含めます。

たとえば、/etc/opt/microsoft/omsagent/scom/conf/omsagent.dlogmonitoring.conf を作成した場合は、次のいずれかの行を omsagent.d ファイルに追加します。

# Include all configuration files
@include omsagent.d/*.conf

または

# Include single configuration file
@include omsagent.d/logmonitoring.conf

Fluentd 構成ファイルの詳細については、「 Fluentd 構成ファイルの構文を参照してください。

次のセクションでは、ログ ファイルの監視に固有の構成ファイルのさまざまなディレクティブの設定について説明します。 それぞれに、構成ファイルに貼り付けて要件に合わせて変更できるサンプル設定が含まれています。

ログ監視用の完全な サンプル構成ファイル を使用して、独自の構成ファイルを作成する前に確認および評価できます。

ソース

Source ディレクティブは、収集するデータのソースを定義します。ここで、ログ ファイルの詳細を定義します。 Fluentd は、ソースに書き込まれた各レコードを取得し、そのイベントを Fluentd のルーティング エンジンに送信します。 このディレクティブでここでタグを指定します。 タグは、Fluentd の内部ルーティング エンジンが異なるディレクティブを関連付ける方向として使用される文字列です。

次の例は、Operations Manager で処理するために収集およびタグ付けされた syslog レコードを示しています。

<source>

    # Specifies input plugin. Tail is a fluentd input plugin - http://docs.fluentd.org/v0.12/articles/in\_tail
    type tail

    # Specify the log file path. Supports wild cards.
    path /var/log/syslog

    # Recommended so that Fluentd will record the position it last read into this file.
    pos_file /home/user1/fluent-test/demo_syslog.log.pos

    # Used to correlate the directives.
    tag System Center Operations Manager.log.syslog

    format /(?<message>.*)/

</source>

フィルター

filter ディレクティブは、Match と同じ構文を持ちますが、処理するデータをより複雑にフィルター処理できます。 収集されたイベントは、出力に追加されるすべてのフィルターの条件と一致する必要があります。

ここで説明するログ ファイル監視用のフィルター プラグインは 6 つあります。 これらのフィルターの 1 つ以上を使用して、ログ ファイルから収集するイベントを定義します。

  • 単純な一致: filter_System Center Operations Manager_simple_match
  • 排他一致: filter_System Center Operations Manager_excl_match
  • 繰り返し関連付け: filter_System Center Operations Manager_repeated_cor
  • 相関一致: filter_System センターの運用Manager_cor_match
  • 排他的な相関関係: filter_System Center Operations Manager_excl_correlation
  • Operations Manager コンバーター: filter_System Center Operations Manager_converter

必要なタブを選択して、それぞれのフィルター プラグインのコードをコピーします。

最大 20 個の入力パターンを受け取ります。 任意のパターンが一致するたびに、Operations Manager にイベントを送信します。

<filter tag>

    type filter_System Center Operations Manager_simple_match
    regexp1 <key> <pattern>
    event_id1 <event ID>
    regexp2 <key> <pattern>
    event_id2 <event ID>
    .
    .
    .
    regexp20 <key> <pattern>
    event_id20 <event ID>
</filter>

照合

match ディレクティブは、一致するタグを使用してソースから収集されたイベントを処理する方法を定義します。 パターンに一致する タグ を持つイベントのみが出力先に送信されます。 1 つの match タグ内に複数のパターンが一覧表示されている場合、イベントは一覧表示されている任意のパターンと一致する可能性があります。 type パラメーターは、これらのイベントに使用するプラグインの種類を指定します。

次の使用例は、 System Center Operations Manager.log. ** および System Center Operations Manager.alert (** は 0 個以上のタグ部分に一致する) に一致するタグを持つイベントを処理します。 out_System Center Operations Manager プラグインを指定します。これにより、Operations Manager 管理パックによってイベントを収集できます。

<match System Center Operations Manager.log.** System Center Operations Manager.event>

    # Output plugin to use
     type out_System Center Operations Manager

    log_level trace
    num_threads 5

    # Size of the buffer chunk. If the top chunk exceeds this limit or the time limit flush_interval, a new empty chunk is pushed to the top of the
    queue and bottom chunk is written out.
    buffer_chunk_limit 5m
    flush_interval 15s

    # Specifies the buffer plugin to use.
    buffer_type file

    # Specifies the file path for buffer. Fluentd must have write access to this directory.
    buffer_path /var/opt/microsoft/omsagent/scom/state/out_System Center Operations Manager_common*.buffer

    # If queue length exceeds the specified limit, events are rejected.
    buffer_queue_limit 10

    # Control the buffer behavior when the queue becomes full: exception, block, drop_oldest_chunk
    buffer_queue_full_action drop_oldest_chunk

    # Number of times Fluentd will attempt to write the chunk if it fails.
    retry_limit 10

    # If the bottom chunk fails to be written out, it will remain in the queue and Fluentd will retry after waiting retry_wait seconds
    retry_wait 30s

    # The retry wait time doubles each time until max_retry_wait.
    max_retry_wait 9m

</match>

Note

Fluentd 通信を使用しているサーバー認証を Linux コンピューター上で無効にするには、次のようにパラメーター enable_server_auth false を Fluentd 用の Operations Manager プラグインに追加します。

<match System Center Operations Manager.log.** System Center Operations Manager.event>
type out_System Center Operations Manager

max_retry_wait 9m
enable_server_auth false

</match>

構成ファイルをエージェントにコピーする

Fluentd 構成ファイルを、監視するすべての Linux コンピューターの /etc/opt/microsoft/omsagent/scom/conf/omsagent.d にコピーする必要があります。 また、前述のように、マスター構成ファイルに @include ディレクティブを追加する必要があります。

omsagent を再起動する

次のコマンドを実行して omsagent を再起動できます。

/opt/microsoft/omsagent/bin/service_control restart

System Center Operations Manager ワークスペースの状態を確認する

次のコマンドを実行して、OMSAgent の System Center Operations Manager ワークスペースを確認します。

sh /opt/microsoft/omsagent/bin/omsadmin.sh -l

Note

OMED サービスを実行している管理サーバーで、ポート 8886 のファイアウォールが開き、中間証明機関の証明書ストアに中間証明機関のみが含まれていることを確認します。

System Center Operations Manager 外部データソース サービスのイベント ログ

System Center OMED Service イベント ログは、System Center Operations Manager External DataSource Service (OMED) サービスに正常に送信されたイベントがある場合にのみ作成されます。

ルールとモニターを作成する

Linux 管理パックには FluentD からイベントを収集するモジュールは用意されていません。Linux 管理パックは Linux エージェントにバンドルされています。 Linux エージェントの fluentd モジュールと、強化されたログ ファイルの監視機能を提供する管理およびゲートウェイ サーバー上の OMED サービスです。

Fluentd からイベントを収集するには、モジュール Microsoft.Linux.OMED.EventDataSource を使用するカスタム ルールとモニターを使用して独自の管理パックを作成する必要があります。 System Center OMED サービスを介して送信されたイベントのコンピューター名イベント ログは、UNIX/Linux コンピューター ビューのコンピューターの名前と一致する必要があることに注意してください。 コンピューター名が一致しない場合、アラートは表示されません。

次の表に、 Microsoft.Linux.OMED.EventDataSource のパラメーターを示します。

パラメーター 説明
[ComputerName] String 必須。 イベントを読み取る Linux コンピューターの名前を指定します。 ComputerName パラメーターは、$Target表記を使用してモジュールに最も一般的に渡されますが、任意の文字列として指定できます。 このモジュールは、特定の Linux コンピューターによって生成されたイベントの読み取りを試みます。
ManagedEntityId String 必須。 監視対象エンティティのマネージド エンティティ ID を指定します。 ManagedEntityId パラメーターは、$Target\Id$ を使用してモジュールに最も一般的に渡されます。
EventNumber Integer 省略可能。 取得するイベントのイベント番号を示します。 このオプションを省略すると、モジュールはそのコンピューターとマネージド エンティティに対して生成されたすべてのイベントを返します。

次のステップ

  • カスタム ログ ファイル管理パックの監視データを確認するカスタム ビューを作成するには、Operations Manager の ビューの使用を確認します。

  • カスタム ログ ファイル管理パックで特定された問題を調査する方法については、「 アクティブなアラートと詳細の表示を確認してください。