ローカル ファイル Source
Collector がインストールされたマシン上のファイルからログ メッセージを収集するには、ローカル ファイル Source を作成します。
- Source は、ターゲット パスに対して 2 秒ごとにスキャンを実行します。
- 圧縮ファイルのうち、末尾のファイル拡張子が次のものは、収集されません。
- tar、bz2、gz、z、zip、jar、war、7z、rar、exe、dll、xz。また、/var/log/(lastlog|btmp|wtmp) バイナリ ファイルも収集されません。
Source を編集する場合、メタデータの変更内容はこれからのログに反映されます。過去に収集したログのメタデータは、遡って変更されることはありません。
Installed Collector の制限とその機能の詳細については、「Installed Collector について」を参照してください。
ローカル ファイル Source でサポートされるエンコーディング
ローカル ファイル Source では、以下のエンコーディングを使用するログを収集できます。
- US-ASCII
- UTF-8 (デフォルト)
- UTF-16
- UTF-16BE
- UTF-16LE
- UTF-32
- UTF-32BE
- UTF-32LE
UTF-16 は国際フォーマットとしてよく使用されます。また、MS SQL Server や MS SharePoint などの Microsoft サービスのログでは一般的です。UTF-16 エンコーディングを使用する場合、その設定は Source が収集するすべてのログに適用されます。たとえば、ワイルドカード パス式を使用する場合、フィルタに一致するファイルはすべて同じコンテンツ エンコーディングを使用します。
ファイル競合の回避
Sumo Collector がログ ファイルにアクセスして、そのコンテンツを読み取る場合、Collector は非排他読み取りモードでファイルを開きます。読み取りアクセス専用にファイルは開かれ、読み取り/書き込みロックはリクエストされません。ただし、ファイル競合問題はそれでも発生する可能性があります。たとえば、Collector がファイルを読み取っているときに、別のプロセスが読み取りロックをしてファイルを開こうとしたら、この操作は失敗します。Add-Content PowerShell cmdlet は読み取りロックが必須なので、Sumo Collector がモニタリングしているファイルの書き込みには使用しません。
ローカル ファイル Source の設定
- Sumo Logic で [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] を選択します。
- Source を追加する Installed Collector の名前を見つけます。[Add... (追加...)] をクリックして、ポップアップ メニューから [Add Source (Source の追加)] を選択します。
- [Local File (ローカル ファイル)] を Source タイプとして選択します。
- 以下のオプションを設定します。
- Name (名前): 新しい Source に表示する名前を入力します。必要に応じて説明を入力します。
- File Path (ファイル パス)。収集するファイルへのフル パスのリストを入力します。Windows システムのファイルの場合 (Windows イベントを除く)、ドライブ文字を含む絶対パスを入力します。特殊文字はバックスラッシュ (\) でエスケープします。CIFS/SMB を使用して Windows から収集する場合は、「リモート Windows イベント ログ収集の前提条件」を参照してください。
ファイル/フォルダ名には 1 つのアスタリスク ワイルドカード [*] を使用します ([var/foo/*.log] など)。ディレクトリ/サブディレクトリ内で再帰的に処理するには 2 つのアスタリスク [**] を使用します ([var/**/*.log] など)。 - Collection should begin (コレクションの開始点): ログ履歴の収集をどこまで遡って開始するかを選択または入力します。この設定は、ファイルの「変更」時刻に適用されます。ログの個々の行の時刻には適用されません。たとえば、ファイル内のログのタイムスタンプが 1 週間にわたっている場合、この項目を 2 日前に設定しても、1 週間分のすべてのログが取り込まれます。これは、ファイル自体の変更時刻が [Collection should begin (コレクションの開始点)] のタイムスタンプより後であるためです。Sumo がタイムスタンプを解釈し、処理する方法については、タイムスタンプの考慮事項を参照してください。
以下のいずれかを実行します。- 「Now (現在)」から「72 hours ago (72 時間前)」、「All Time (すべての時間)」までの範囲のドロップダウン リストから定義済みの値を選択します。または、
- 相対値を入力します。相対値を入力するには、[Collection should begin (コレクションの開始点)] フィールドをクリックし、キーボードで削除キーを押してフィールドをクリアします。次に、
-1w
などの相対時間表現を入力します。月 (M)、週 (w)、日 (d)、時間 (h)、および分 (m) を使用してコレクションの開始時期を定義できます。
- Source Host (Source ホスト)。デフォルトでは、オペレーティング システムによって割り当てられたホスト名が使用されます。この [Source Host (Source ホスト)] の値は、_sourceHost という検索可能メタデータ フィールドに保存されています。検索クエリ フィールドで Source ホストや Source Category を引用符で囲まなくてもすむように、メタデータ タグにスペースを使用しないようにします。[Source Host (Source ホスト)] の値は、最大 128 文字です。
[Source Host (Source ホスト)] の値は、システム環境変数を使用して定義できます。詳細については、下記の「変数を使用した sourceCategory と sourceHost の設定」を参照してください。
- Source Category。この Source から収集されたログをタグ付けするための文字列を入力します。この [Source Category] の値は、_sourceCategory という検索可能メタデータ フィールドに保存されています。「ベスト プラクティス: 良い Source Category、悪い Source Category」を参照してください。
[Source Category] の値は、システム環境変数を使用して定義できます。詳細については、下記の「変数を使用した sourceCategory と sourceHost の設定」を参照してください。
- Fields (フィールド): [+Add Field (+ フィールドの追加)] リンクをクリックすると、カスタム ログ メタデータ フィールドが追加されます。
- 関連付けるフィールドを定義します。各フィールドには、名前 (キー) と値が必要です。
[Fields (フィールド)] テーブル スキーマにフィールドが存在し、有効化されている場合は、チェック マークを含む緑色の円が表示されます。
[Fields (フィールド)] テーブル スキーマにフィールドが存在しない場合、またはフィールドが無効化されている場合は、感嘆符を含む橙色の三角形が表示されます。この場合は、存在しないフィールドを [Fields (フィールド)] テーブル スキーマに自動的に追加する、または有効化するオプションが表示されます。[Fields (フィールド)] スキーマに存在しないフィールドが Sumo に送信された場合、または無効化された場合、このフィールドは無視され、削除済みとして認識されます。
- 関連付けるフィールドを定義します。各フィールドには、名前 (キー) と値が必要です。
- [Advanced (詳細)] で以下のオプションのいずれかを設定します。
- Blacklist (ブラックリスト): [Blacklist (ブラックリスト)] フィールドで、ファイルのパスを入力して、Source コレクションから除外します。不要なファイルを指定する場合、ワイルドカード構文が使用できます。たとえば、
/var/log/*.log
を収集しますが、unwanted*.log
は必要ない場合、ブラックリストで/var/log/unwanted*.log
と指定します。サブディレクトリを除外することもできます。たとえば、/var/log/**/*.log
を収集しますが、/var/log/unwanted
ディレクトリ内のファイルはどれも必要ない場合は/var/log/unwanted
と指定します。
拡張子が tar、bz2、gz、z、zip、jar、war、7z、rar、exe、dll、xz の圧縮ファイル、または /var/log/(lastlog|btmp|wtmp) バイナリ ファイルはブラックリストに追加する必要はありません。Sumo Logic はデータの収集時にこれらの圧縮ファイルの拡張子を自動的に除外します。 - Enable Timestamp Parsing (タイムスタンプ parse の有効化): デフォルトでは、このオプションはオンになっています。オフにすると、タイムスタンプ情報は parse されません。
- Time Zone (タイム ゾーン): タイム ゾーンには 2 つのオプションがあります。
- ログ ファイル内のタイム ゾーンを使用できます。その後にタイム ゾーン情報がログ メッセージにない場合のオプションを選択します。
- または、Sumo Logic がログ内のタイム ゾーン情報を無視するように設定する場合は、タイム ゾーンを強制適用します。どのオプションを選択する場合でも、適切なタイム ゾーンを設定することが重要です。ログのタイム ゾーンを判断できない場合、Sumo Logic はログに UTC を割り当てます。ログの残りの部分が他のタイム ゾーンの場合は、検索結果に影響があります。
- Timestamp Format (タイムスタンプ形式)。デフォルトでは、Sumo Logic はログのタイム スタンプ形式を自動的に検出します。ただし、Source のタイムスタンプ形式を手動で指定することができます。詳細は、「タイムスタンプ、タイム ゾーン、時間範囲、および日付フォーマット」を参照してください。
- Encoding (エンコーディング): デフォルトは UTF-8 ですが、メニューから他のエンコーディングを選択できます。
- Enable Multiline Processing (複数行の処理の有効化)。複数行処理とそのオプションの詳細は、「複数行のログの収集」を参照してください。デフォルトでは、有効になっています。複数行メッセージ (log4J や例外スタック トレースなど) を使用する場合は、このオプションを使用します。single-message-per-line (1 行に 1 つのメッセージ) ファイル (Linux system.log など) の収集時に不要な処理を避けるには、このオプションの選択をオフにします。次のいずれかを選択してください。
- Infer Boundaries (境界の推定): 同じメッセージに含まれる行を自動判定する場合は、有効にします。
[Infer Boundaries (境界の推定)] オプションをオフにすると、複数行メッセージの先頭行全体の検出に使用する [Boundary Regex (境界正規表現)] フィールドに正規表現を入力する必要があります。 - Boundary Regex (境界正規表現): 正規表現を使用してメッセージ間の境界を指定できます。ログ ファイル内のすべての複数行メッセージの先頭行全体に一致する正規表現を入力します。
- Infer Boundaries (境界の推定): 同じメッセージに含まれる行を自動判定する場合は、有効にします。
- 新しい Source には、任意の処理ルールを作成できます。
- Source の設定が完了したら、[保存] をクリックします。
このダイアログに戻って、いつでも Source の設定を編集できます。
変数を使用した sourceCategory と sourceHost の設定
Sumo Logic のログ ファイル循環の処理方法
ログ ファイル循環は、設定を追加しなくても処理されます。たとえば、error.log
という名前のアクティブ ログ ファイルがあって、毎日夜に error.log.timestamp
へ循環するとします。この場合、Sumo Logic はファイルが循環されることを検出し、循環 ファイルと新しい error.log ファイルの両方のモニタリングを継続します。error.log ファイルと循環 ファイルの最初の 2048 バイトは異なる前提でモニタリングされます。