メインコンテンツまでスキップ
Sumo Logic Japanese

MongoDB のログの収集

この手順では、ログを MongoDB から Sumo Logic に収集する方法について説明します。MongoDB 用 Sumo Logic アプリケーションにより、MongoDB 環境に関するインサイトが得られ、全体的なシステム状態、クエリ、ログインや接続、エラーや警告、レプリケーション、シャーディングをトラッキングできます。

ログ タイプ

MongoDB 用 Sumo Logic アプリケーションは、Installed Collector とローカル ファイル Source を使用して MongoDB ログを取り込みます。 

MongoDB ログには、各ログ メッセージに関連付けられた重大度とコンポーネントが含まれます。 

詳細については、MongoDB ドキュメントを参照してください。MongoDB ログの parse の詳細については、「MongoDB Log Spec (MongoDB ログの仕様)」を参照してください。

Collector の設定

MongoDB サーバで Installed Collector を設定します。

Source の設定

  1. 各サーバ インスタンスのローカル ファイル Source を設定します。たとえば、Replicas、Shards、または Arbiters を実行している場合、それぞれに独自のローカル ファイル Source が必要です。
  2. 以下の Source フィールドを設定します。
    1. Name (名前): (必須) 名前は必須です。必要に応じて説明を入力します。
    2. Source Host (Source ホスト): 各 Source に個別の Source ホストを設定します。
    3. Source Category: (必須) たとえば、mongo/serverAmongo/serverB。この命名規則を使用すれば、MongoDB アプリケーションで _sourceCategory=mongo* をカスタム データ フィルタとして使用し、すべてのログを収集できます。詳細については、「ベスト プラクティス」を参照してください。
  3. [Advanced (詳細)] セクションを設定します。
    1. Enable Timestamp Parsing (タイムスタンプ parse の有効化)。True。
    2. Time Zone (タイム ゾーン): ログはデフォルトで UTC に設定されています。
    3. Timestamp Format (タイムスタンプ形式)。自動検出。
  4. [Save (保存)] をクリックします。

FER (Field Extraction Rules)

FER (Field Extraction Rules) を使用すると、MongoDB ログを自動で parse できます。FER を作成するには、[Manage Data (データの管理)] > [Settings (設定)] > [FER (Field Extraction Rules)] に移動します。詳細な手順については、「FER (Field Extraction Rules) の作成」を参照してください。引き続き MongoDB 固有のヒントについて説明します。

[Create a Field Extraction Rule (FER (Field Extraction Rules) の作成)] ページに、FER の名前を入力し、次を指定します。

  • Scope (範囲) - Sumo が parse するログを定義します。一般的に、_sourceCategory に関して範囲を指定します。上記の「Source の設定」で推奨される _sourceCategory の命名規則を使用した場合は、次の範囲を指定して、すべての MongoDB ログを parse します。

    _sourceCategory="mongo*"

    If you configured a different _sourceCategory, use that value, with a wildcard as appropriate.

  • Parse Expression (parse 式) - 次のステートメントを入力します。

    parse "* * *  [*] *" as timestamp,severity,component,context,msg

    上記のステートメントでは、MongoDB ログの timestampseveritycomponentcontext、および msg フィールドを parse します。(MongoDB ログ メッセージのサンプルについては、次のセクションを参照してください)。これにより、クエリに parse ステートメントを追加せずにクエリを実行できます。取り込み時に Sumo がこのルールに従ってログを parse するため、ユーザはこれらのフィールドに対してクエリを実行するだけで済みます。  

ログ メッセージのサンプル

2014-11-03T18:28:32.450-0500 I NETWORK [initandlisten] waiting for connections on port 27017

クエリのサンプル

次の 2 つのサンプル クエリは、上記の「FER (Field Extraction Rules)」で説明したように FER が設定されていることを前提としています。FER を定義していない場合は、各クエリの _sourceCategory="mongo*" 行の後に次のような parse ステートメントを追加する必要があります。 

| parse "* * * [*] *" as timestamp,severity,component,context,msg 

コンポーネント別メッセージ数

_sourceCategory="mongo*" 
| count by component

失敗したログイン試行回数

_sourceCategory="mongo*" "authentication failed"  
| parse regex field=msg  "authentication failed for (?<user>[\S]+) on (?<database>[\S]+) from client (?<client_ip>\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}) ; (?<reason>[\s\S]+)" 
| count by timestamp, user, database, client_ip, reason
| fields - _count

  • この記事は役に立ちましたか?