System Center Operations Manager の Linux ログ ファイル監視Linux Log file monitoring in System Center Operations Manager

System Center Operations Manager バージョン 1801 では、Fluentd を使うエージェントの最新バージョンを使用した、Linux サーバー向けのログ ファイルの監視機能が拡張されました。System Center Operations Manager version 1801 now has enhanced log file monitoring capabilities for Linux servers by using the newest version of the agent that uses Fluentd. この更新プログラムにより、以前のログ ファイルの監視に次のような改良が加えられています。This update provides the following improvements over previous log file monitoring:

  • ログ ファイル名とログ ファイルのパスにワイルド カード文字を使用。Wild card characters in log file name and path.
  • 単純一致、排他的な一致、相関性のある一致、反復される相関関係、排他的な相関関係などの、カスタマイズ可能なログ検索の新しい一致パターン。New match patterns for customizable log search like simple match, exclusive match, correlated match, repeated correlation and exclusive correlation.
  • Fluentd コミュニティが公開する汎用的な Fluentd プラグインのサポート。Support for generic Fluentd plugins published by the fluentd community.

基本的な操作Basic operation

Linux のログ ファイル監視の基本的な操作には、次の手順が含まれています。The basic operation of log file monitoring in Linux includes the following steps:

  1. レコードが Linux エージェントのログに書き込まれます。Record is written to a log on a Linux agent.
  2. Fluentd はそのレコードを収集し、パターン マッチでイベントを作成します。Fluentd collects the record and creates an event on pattern match.
  3. イベントは、管理サーバー上の OMED サービスに送信されます。Event is sent to OMED service on management server.
  4. カスタム管理パックのルールとモニターでイベントを収集し、Operations Manager でアラートを作成します。Rules and monitors in a custom management pack collect events and create alerts in Operations Manager.

構成の概要Overview of configuration

次の手順は、Linux エージェントのログ ファイルの監視を有効にするのに必要です。The following steps are required to enable log file monitoring on Linux agents. それぞれの手順について次のセクションで詳しく説明します。Each of these steps is described in detail in the following sections.

  1. 最新の Linux 管理パックをインポートします。Import the latest Linux management pack.
  2. 監視対象となっている各 Linux コンピューターに最新バージョンの Linux エージェントをインストールします。Install the latest version of the Linux agent on each Linux computer to be monitored.
  3. ログを収集する Fluentd 構成ファイルを作成します。Create Fluentd configuration file to collect logs.
  4. Linux エージェントに構成ファイルをコピーします。Copy configuration file to Linux agents.
  5. サンプル管理パックを使用してルールとモニターを作成し、ログからイベントを収集してアラートを作成します。Create rules and monitors using the sample management pack to collect events from the log and create alerts.

最新バージョンの Linux エージェントをインストールしますInstall the latest version of the Linux agent

最新バージョンの Linux エージェントは、ログ ファイルの監視強化に必要な Fluentd をサポートしています。The latest version of the Linux agent supports Fluentd which is required for enhanced log file monitoring. コマンド ラインを使用して UNIX および Linux にエージェントをインストールする内容に関する記事に、新しいエージェントの詳細とインストールの方法が記載されています。You can get details and the installation process for the new agent at Install agent on UNIX and Linux from command line.

Linux ログ ファイルの監視を構成するConfigure Linux Log File monitoring

Linux 管理パック バンドルには、最新の Operations Manager エージェント (Fluentd を使用) が含まれています。The Linux Management pack bundle has the latest Operations Manager agent (with Fluentd). Linux ログ ファイルの監視を構成するには、ユーザーは以下を実行する必要があります。To configure Linux log file monitoring, users should perform the following:

  1. 管理パックをインストールする標準の方法を使用して、最新の Linux 管理パックをインポートします。Import the latest Linux Management pack using the standard process for installing a management pack.
  2. Linux サーバーに新しい Linux エージェントをインストールします。これは検出ウィザードを使って、または手動で行うことができます。Install the new Linux agent on the Linux servers, this can be done through discovery wizard or manually.
  3. Linux エージェントを管理するリソース プール内の各管理サーバーで OMED サービスを有効にします。Enable the OMED service on each management server in the resource pool managing the Linux agents.

OMED サービスでは、Fluentd からイベントを収集して Operations Manager イベントに変換します。The OMED service collects events from Fluentd and converts them to Operations Manager events. ユーザーは、Linux サーバーから受け取ったイベントに基づいてアラートを生成するカスタム管理パックをインポートする必要があります。Users should import a custom management pack which can generate alerts based on the events received from the Linux servers.

OMED サービスは、オペレーション コンソールから有効にするか、管理サーバー上またはゲートウェイ サーバー上で手動で有効にします。You enable the OMED service either from the Operations console or manually on the management server or gateway server.

オペレーション コンソールからFrom Operations console

  1. オペレーション コンソールから、[監視] > [Operations Manager] > [管理サーバー] > [Management Servers State](管理サーバーの状態) の順に進みます。From the Operations Console, go to Monitoring > Operations Manager > Management Server > Management Servers State.
  2. [Management Servers State](管理サーバーの状態) ウィンドウから管理サーバーを選択します。Select the management server in the Management Servers state pane.
  3. [タスク] ウィンドウで、[Health Service Tasks](ヘルス サービス タスク) > [Enable System Center OMED Server](System Center OMED サーバーを有効にする) を選択します。In the Tasks pane, select Health Service Tasks > Enable System Center OMED Server.

手動Manually

  1. [開始] をクリックし、[検索の開始] ボックスに「services.msc」と入力し、Enter キーを押します。Click Start, in the Start Search box, type services.msc , and then press Enter.
  2. 詳細ウィンドウで、System Center Operations Manager External DataSource Service サービスを右クリックし、[プロパティ] をクリックします。In the details pane, right-click the service System Center Operations Manager External DataSource Service, and then click Properties.
  3. [全般] タブの [起動] タイプで [自動] をクリックし、[OK] をクリックします。On the General tab, in Startup type , click Automatic, and then click OK.
  4. 詳細ウィンドウで、サービスを右クリックし、[開始] をクリックします。In the details pane, right-click the service and then click Start.

Fluentd 構成ファイルを作成するCreate FluentD configuration file

構成ファイルで Fluentd の操作を構成します。You configure Fluentd operation with a configuration file. ログを監視するには、ソース ログ ファイル名やログ ファイルのパス、フィルターなどの情報を含む構成ファイルを作成して、収集するデータを定義する必要があります。For log monitoring, you need to create a configuration file that includes such information as source log file name and path and filters to define which data to collect.

Fluentd のマスター構成ファイル omsagent.conf/etc/opt/microsoft/omsagent/scom/conf/ にあります。The master Fluentd configuration file omsagent.conf is located in /etc/opt/microsoft/omsagent/scom/conf/. ログ ファイルの監視の構成は、直接このファイルに追加できますが、さまざまな設定をより適切に管理するには個別の構成ファイルを作成する必要があります。You can add log file monitoring configuration directly to this file, but you should create a separate configuration file to better manage the different settings. 次に、マスター ファイルで @include ディレクティブを使用して、カスタム ファイルを追加します。You then use an @include directive in the master file to include your custom file.

たとえば、/etc/opt/microsoft/omsagent/scom/conf/omsagent.dlogmonitoring.conf を作成した場合、以下の行のいずれかをfluent.conf に追加します。For example, if you created logmonitoring.conf in /etc/opt/microsoft/omsagent/scom/conf/omsagent.d, you would add one of the following lines to fluent.conf:

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

またはor

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

Fluentd の構成ファイルの構文に関するページで、Fluentd 構成ファイルについての詳細を入手できます。You can get details on Fluentd configuration files at Fluentd Configuration file syntax. 次のセクションでは、ログ ファイルの監視に固有の構成ファイルで、さまざまなディレクティブを使用する設定について説明します。The following sections describe settings in different directives of the configuration file unique to log file monitoring. それぞれに、構成ファイルに貼り付けて要件に合わせて変更できる、サンプル設定が含まれます。Each includes sample settings that you can paste into a configuration file and modify for your requirements.

独自のファイルを作成する前に、ログ監視のサンプル構成ファイルの完全版を見て、確認および評価できます。A complete sample configuration file for log monitoring is available for you to review and evaluate before creating your own.

ソースSource

Source ディレクティブは収集するデータのソースを定義します。The Source directive defines the source of the data you're collecting. ここには、ログ ファイルの詳細を定義します。This is where you define the details of your log file. Fluentd では、ソースに書き込まれた各レコードを取得し、Fluentd のルーティング エンジンにそのイベントを送信します。Fluentd picks up each record written to the source and submits an event for it into Fluentd's routing engine. このディレクティブのこの場所で、タグを指定する必要があります。You need to specify a tag here in this directive. タグとは、Fluentd 内部のルーティングエンジンに対して、さまざまなディレクティブを関連付けるための指示に使われる文字列です。The tag is a string that is used as the directions for Fluentd’s internal routing engine to correlate different directives.

次の例では、Operations Manager が処理できるように収集とタグ付けが行われた syslog レコードを示しています。This example shows syslog records collected and tagged for processing by Operations Manager.

<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 scom.log.syslog

    format /(?<message>.*)/

</source>

MatchMatch

match ディレクティブは、ソースから収集された、タグが一致するイベントを処理する方法を定義します。The match directive defines how to process events collected from the source with matching tags. パターンに一致するタグを持つイベントだけが、出力先に送信されます。Only events with a tag matching the pattern will be sent to the output destination. 複数のパターンが 1 つの一致タグ内にある場合、イベントは一覧にあげられているパターンのいずれかに一致させることができます。When multiple patterns are listed inside one match tag, events can match any of the listed patterns. type パラメーターは、これらのイベントにどのプラグインを使用すべきかを指定します。The type parameter that specifies which plugin to use for these events.

次の例では、タグの一致しているイベント scom.log.** と scom.alert を処理します (** は、0 個以上のタグ部分と一致します)。This example processes events with tags matching scom.log.** and scom.alert (** matches zero or more tag parts). ここでは、Operations Manager 管理パックによってイベントを収集できるようにする out_scom プラグインを指定しています。It specifies the out_scom plugin which allows the events to be collected by the Operations Manager management pack.

<match scom.log.** scom.event>

    # Output plugin to use
    type out_scom

    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_scom_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>

フィルターFilter

filter ディレクティブは match と同じ構文ですが、どのデータを処理するかについて、より複雑なフィルター処理が可能です。The filter directive has same syntax as match but allows for more complex filtering of which data to process. 収集されたイベントが出力に追加されるには、すべてのフィルターの基準に一致している必要があります。Collected events must match the criteria of all filters to be added to the output.

ログ ファイルの監視に利用できる 6 つのフィルター プラグインについて、ここで説明します。There are six filter plugins for log file monitoring described here. 次のフィルターの 1 つ以上を使って、ログ ファイルから収集するイベントを定義します。Use one or more of these filters to define the events that you want to collect from your log file.

単純一致: filter_scom_simple_matchSimple match: filter_scom_simple_match

最大 20 の入力パターンを取ります。Takes up to 20 input patterns. 任意のパターンが一致するたびに、Operations Manager にイベントを送信します。Sends an event to Operations Manager whenever any pattern is matched.

<filter tag>
    type filter_scom_simple_match
    regexp1 <key> <pattern>
    event_id1 <event ID>
    regexp2 <key> <pattern>
    event_id2 <event ID>
    .
    .
    .
    regexp20 <key> <pattern>
    event_id20 <event ID>
</filter>

排他的一致: filter_scom_excl_matchExclusive match: filter_scom_excl_match

2 つの入力パターンを取ります。Takes two input patterns. 単一のレコードがパターン 1 に一致するがパターンに 2 には一致しない場合に、Operations Manager にイベントを送信します。Sends an event to Operations Manager when a single record matches pattern 1 but does not match pattern 2.

<filter tag>
    type filter_scom_excl_match
    regexp1 <key> <pattern1>
    regexp2 <key> <pattern2>
    event_id <event ID>
</filter>

反復される相関関係: filter_scom_repeated_corRepeated correlation: filter_scom_repeated_cor

パターン、時間間隔、および発生回数の 3 つの入力を取ります。Takes three inputs: a patterns, a time interval, and a number of occurrences. 最初のパターンに一致するものが見つかった場合、タイマーが開始されます。When a match is found for the first pattern, a timer starts. タイマーが終了する前に、指定された回数分パターンが一致した場合、イベントが Operations Manager に送信されます。An event is sent to Operations Manager if the pattern is matched the specified number of times before the timer ends.

<filter tag>
    type filter_scom_repeated_cor
    regexp <key> <pattern>
    event_id <event ID>
    time_interval <interval in seconds>
    num_occurences <number of occurrences>
</filter>

相関性のある一致: filter_scom_cor_matchCorrelated match: filter_scom_cor_match

2 つのパターンと時間間隔の、3 つの入力を取ります。Takes three inputs: two patterns and a time interval. 最初のパターンに一致するものが見つかった場合、タイマーが開始されます。When a match is found for the first pattern, a timer starts. タイマーが終了する前に、2 つ目のパターンに一致した場合、イベントが Operations Manager に送信されます。An event is sent to Operations Manager if there is a match for the second pattern before the timer ends.

<filter tag>
    type filter_scom_cor_match
    regexp1 <key> <pattern1>
    regexp2 <key> <pattern2>
    event_id <event ID>
    time_interval <interval in seconds>
</filter>

排他的な相関関係: filter_scom_excl_correlationExclusive correlation: filter_scom_excl_correlation

2 つのパターンと時間間隔の、3 つの入力を取ります。Takes three inputs: two patterns and a time interval. 最初のパターンに一致するものが見つかった場合、タイマーが開始されます。When a match is found for the first pattern, a timer starts. タイマーが終了する前に、2 つ目のパターンに一致しなかった場合、イベントが Operations Manager に送信されます。An event is sent to Operations Manager if there is no match for the second pattern before the timer ends.

<filter tag>
    type filter_scom_excl_correlation
    regexp1 <key> <pattern1>
    regexp2 <key> <pattern2>
    event_id <event ID>
    time_interval <interval in seconds>
</filter>

Operations Manager コンバーター: filter_scom_converterOperations Manager converter: filter_scom_converter

受信するすべてのレコードについて、イベントを Operations Manager に送信します。Sends an event to Operations Manager for all records it receives. イベントの一部として、指定されたイベント ID と説明を送信します。Sends the specified event id and description as part of the event.

<filter tag>
    type filter_scom_converter
    event_id <event ID>
    event_desc <event description>
</filter>

エージェントに構成ファイルをコピーするCopy configuration file to agent

Fluentd 構成ファイルを、監視したいすべての Linux コンピューターの /etc/opt/microsoft/omsagent/scom/conf/omsagent.d にコピーする必要があります。The fluentd configuration file must be copied to /etc/opt/microsoft/omsagent/scom/conf/omsagent.d on all Linux computers you want to monitor. 前述の通り、マスター構成ファイルに @include ディレクティブも追加する必要があります。You must also add an @include directive in the master configuration file as described above.

ルールとモニターを作成するCreate rules and monitors

Linux MP では、Fluentd からイベントを収集するモジュールは提供されません。The Linux MP does not provide modules to collect events from FluentD. Linux MP は Linux エージェントにバンドルされています。The Linux MP is bundled with the Linux agent. Linux エージェントの Fluentd モジュールと管理サーバーおよびゲートウェイ サーバー上の OMED サービスによって、ログ ファイル監視機能の強化を実現しています。It is the fluentd module in the Linux agent and the OMED service on the management and gateway server that provides the capabilities for enhanced log file monitoring.

Fluentd からイベントを収集するモジュール Microsoft.Linux.OMED.EventDataSource を使用するカスタム ルールとモニターを使って、独自の管理パックを作成する必要があります。You need to create your own management pack with custom rules and monitors that use the module Microsoft.Linux.OMED.EventDataSource which collects the events from Fluentd.

次の表に、Microsoft.Linux.OMED.EventDataSource のパラメーターを示します。The following table lists the parameters of Microsoft.Linux.OMED.EventDataSource.

パラメーターParameter Type 説明Description
ComputerNameComputerName 文字列型String 必須。Required. イベントを読み取る Linux コンピューターの名前を指定します。Specifies the name of the Linux computer for which events to be read. ComputerName パラメーターは、$Target 表記を使用してモジュールに渡されるのが最も一般的ですが、任意の文字列を指定することも可能です。The ComputerName parameter is most commonly passed to the module by using the $Target notation, although it can be specified as any string. このモジュールは、特定の Linux コンピューターによって生成されたイベントの読み取りを試みます。This module attempts to read events generated by the given Linux computer.
ManagedEntityIdManagedEntityId 文字列型String 必須。Required. 監視するエンティティのマネージ エンティティ ID を指定します。Specifies the managed entity ID of monitored entity. ManagedEntityId パラメーターは、$Target\Id$ を使用してモジュールに渡されるのが最も一般的です。The ManagedEntityId parameter is most commonly passed to module by using $Target\Id$.
EventNumberEventNumber 整数型Integer 任意。Optional. 取得するイベントのイベント数を表します。Indicates the event number of the event to retrieve. このオプションを省略した場合、モジュールは、そのコンピューターとマネージ エンティティに対して生成されるすべてのイベントを返します。If this option is omitted, the module returns all events generated for that computer and managed entity.

次のステップNext steps