サポートセンターホーム


Syslogログの収集と転送

Syslog(syslog、rsyslog、syslog-ng)は、エンタープライズ環境で最も一般的なログデータのソースのXNUMXつです。 ザ・ LogicMonitorコレクター Syslogデータを受信し、生のログをLM Logs IngestionAPIに転送する機能があります。 すでにLogicMonitorコレクターを使用している場合、これは Syslogメトリックでアラートを出すためのSyslogEventSource構成.

注意: コレクターは、Syslogメトリックのアラートに使用したり、LMログのSyslogログコレクターとして機能したりできます。 両方を行うことはできません。

必須条件

  • EA Collector29.104以降がインストールされています。
  • Syslogの収集とログ転送では、ポート514 / UDPが開いていて、コレクターマシンとファイアウォールの両方で使用可能である必要があります。 ((注意: これには rsyslogのUDPを無効にする.)

Syslogログ転送を有効にする

以前のバージョンと同様に、コレクターは、ポート514 / UDPでリッスンすることによってsyslogメッセージを受信するように構成できます。

  • コレクターによって監視されるデバイスは、既存の集中型syslogサーバーからsyslogメッセージを転送できます。
  • Syslogクライアントを持つ監視対象デバイスは、Syslogデータをコレクターに送信するように構成できます。
  • 監視対象デバイスは、監視対象と同じコレクターにsyslogメッセージを送信する必要はありません。

LMログのSyslog転送をオンにするには、コレクターの次のプロパティのコメントを解除します。 agent.conf。 プロパティが存在しない場合は、次のように追加できます。

# Enable LM Logs
lmlogs.syslog.enabled=true

リソースマッピングを構成する

Syslogイベントが受信されると、コレクターはそれらをログ取り込みAPIに転送する前に、既存の監視対象リソースにマップします。 Collectorは、既存の監視対象リソースに関連付けることができないsyslogメッセージを転送しません。

コレクターから送信されたsyslogログの場合、次のプロパティのコメントを解除します。 agent.conf デバイスマッピングの場合:

プロパティ 製品説明 デフォルト
lmlogs.syslog.property.name デバイスマッピングに使用するリソースプロパティ。 system.hostname
lmlogs.syslog.hostname.format lmlogs.syslog.property.nameで指定されたリソースプロパティの予想される形式。 可能な値は、IP、FQDN、HOSTNAME、DO_NOTHINGです。

IP、HOSTNAME、またはFQDNに設定されている場合、syslogメッセージはDNSクエリを実行することによって解決されます。 DO_NOTHINGに設定されている場合、DNS解決は行われず、受信したホスト名はリソースIDに設定されます。
IP
lmlogs.syslog.UseHostNameFromMessages メッセージからホスト名を使用するプロパティ。 false
lmlogs.syslog.UseSocketAddressIfhostNameisInvalid ホスト名が無効な場合は、デバイスのマッピングにソケットアドレスを使用することを選択できます。 true
lmlogs.logsource.syslog.unmapped.resource リソースのマッピングに失敗した場合は、ログを関連付けるバックアップリソースを選択できます。

コレクターごとにXNUMXつのバックアップリソースを定義でき、何らかの理由でそのリソースにマップできないすべてのログは、このバックアップリソースにマップされます。

グローバルバックアップリソースを構成する場合、次のような任意のリソースプロパティを選択できます。 system.displayname その後にコロンとLogicMonitorプロパティの値が続きます。 たとえば、「collector_syslog」をバックアップリソースとして構成するには、次のようにします。

lmlogs.logsource.syslog.unmapped.resource=system.displayname:collector_syslog
同サイズ

の値が system.hostname 監視対象のリソースがSyslogイベントで報告されたIPと一致しない場合、これらのデフォルト設定は機能せず、デバイスマッピングは失敗します。 この場合、変更する必要があります lmlogs.syslog.property.name の値に一致するプロパティに lmlogs.syslog.hostname.format 設定。

これらの値のいずれかに一致する既存のLogicMonitorプロパティがない場合は、次のことができます。 PropertySourceを作成する 環境全体に属性を追加するか、プロパティを手動で設定します。

注意: Ciscoデバイスからsyslogログを転送する場合、IPまたはホスト名が使用できない場合、LogicMonitorコレクターはソケットアドレスの使用を試みます。 これが機能するためには、ログを受信するコレクタが、ログを送信するCiscoデバイスを監視している必要があります。

ログを削除するようにフィルターを構成する

LogicMonitorに送信されないように、機密情報(クレジットカード、電話番号、個人IDなど)を含むログメッセージを削除するようにフィルターを構成することをお勧めします。 フィルタを使用して、ログ取り込みAPIキューに送信される必須ではないsyslogログメッセージの量を減らすこともできます。

フィルタリング基準は、syslogフィールド(重大度、メッセージ、機能、およびアプリケーション)に基づいています。 フィルタ条件を設定するには、コメントを解除して、次のエントリを追加または編集します。 agent.conf:

フィルタ名 製品説明
severity 指定された値以上の重大度レベルのsyslogメッセージのフィルターを定義します。 重大度レベルは(緊急の降順で)次のようになります:緊急、クリティカル、アラート、エラー、警告、通知、情報提供、デバッグ。 logsource.syslog.filter.1.severity.equal = informational
logsource.syslog.filter.2.severity.moreurgentthan = informational
facility ファシリティ値(カーネルメッセージ、ユーザーレベルメッセージ、クロックデーモンなど)に基づいてsyslogメッセージのフィルターを定義します。 logsource.syslog.filter.11.facility.equal =カーネルメッセージ
logsource.syslog.filter.12.facility.notequal = clockデーモン
logsource.syslog.filter.13.facility.contain = NTP
logsource.syslog.filter.14.facility.notcontain = NTP
logsource.syslog.filter.15.facility.exist = *
logsource.syslog.filter.16.facility.notexist = *
logsource.syslog.filter.17.facility.greaterthan = NTP
logsource.syslog.filter.18.facility.greaterequal = NTP
logsource.syslog.filter.19.facility.lessthan = NTP
logsource.syslog.filter.20.facility.lessequal = NTP
logsource.syslog.filter.21.facility.regexmatch = Target [\ S \ s] *-[Ww] [Aa]
logsource.syslog.filter.22.facility.regexnotmatch = Target [\ S \ s] *カーネル
message 一致するキーワードまたは正規表現パターンを使用して、メッセージ自体の内容に基づいてsyslogメッセージのフィルターを定義します。 logsource.syslog.filter.3.message.equal = IPsecフェーズ1をネゴシエートしますlogsource.syslog.filter.4.message.notequal = IPsecフェーズ1をネゴシエートしますlogsource.syslog.filter.5.message.contain = IPsecフェーズ1ログソースをネゴシエートします。 syslog.filter.6.message.notcontain = negotiateIPsecフェーズ1logsource.syslog.filter.7.message.regexmatch =(negotiate)+ \ w logsource.syslog.filter.8.message.regexnotmatch =(negotiate)+ \ w logsource.syslog.filter.9.message.exist = * logsource.syslog.filter.10.message.notexist = *
application 一致するキーワードまたは正規表現パターンを使用して、アプリケーションに基づいてsyslogメッセージのフィルターを定義します。 logsource.syslog.filter.23.application.equal = snmpd
logsource.syslog.filter.24.application.notequal = snmpd
logsource.syslog.filter.25.application.contain = snmpd
logsource.syslog.filter.26.application.notcontain = MySQL
logsource.syslog.filter.27.application.regexmatch = Target [\ S \ s] *-[Ww] [Aa]
logsource.syslog.filter.28.application.regexnotmatch = Target [\ S \ s] * admin
logsource.syslog.filter.29.application.exist = *
logsource.syslog.filter.30.application.notexist = *

日付とタイムスタンプの解析

ログの日付と時刻の形式がサポートされていないか、時刻情報が欠落している場合、LogicMonitorはログを適切に解析できない可能性があります。 これが発生した場合は、カスタムの日付と時刻の形式を指定するか、イベントを受信したときにそのタイムスタンプを使用できます。 これらの設定は、コレクターで指定できます agent.conf.

たとえば、次の日付形式のログがある場合(Palo Alto Networksパノラマデバイスなど): [2020-09-18 10:03:58.434 UTC]; 以下にカスタム日付形式を追加する必要がある場合があります。

eventcollector.syslog.supportDateFormat.8=yyyy-MM-dd'T'HH:mm:SSxxx

時間情報を含まないsyslogイベントがある場合は、次の設定を有効にして、コレクターがログを受信したときのタイムスタンプを使用します。

lmlogs.syslog.useTimestampWhenCollectorReceivedLogs=TRUE

トラブルシューティング

Collectorでsyslogログ転送を有効にしたが、ログが[ログ]ページに表示されない場合は、次のチェックを実行して問題のトラブルシューティングを行うことができます。

コレクター構成

注意: コレクター構成の変更はコレクターで普遍的であり、そのコレクターにログを送信するすべてのデバイスに影響を与える可能性があります。 フラグを変更すると、XNUMXつのデバイスが修正される場合がありますが、他のデバイスに影響を与える可能性があります。 これは通常、すべてのsyslogデバイスの問題を解決するために実行する必要がある変更の組み合わせです。

コレクターの構成ファイル(agent.conf):

1. LMログは有効になっていますか?

それを確認してください lmlogs.syslog.enabled=true そしてその値は lmlogs.syslog.property.name 影響により lmlogs.syslog.hostname.format 一致しています。

注意: lmlogs.syslog.property.nameは、LogicMonitorの任意のプロパティに設定できます。 デフォルトはsystem.hostnameですが、名前とデバイス構成に一貫性がない場合は、system.sysnameまたはdisplaynameも役立ちます。

2.表示されると予想されるログを除外する原因となる可能性のあるフィルターが定義されていますか?

3. マッピングエラーはありましたか?

コレクターイベントをチェックして、マッピングエラーを特定します。

  • lmlogs.syslog.property.nameとlmlogs.syslog.hostname.formatを適切に変更して、syslogイベントからの正しい情報がLogicMonitorプロパティ値に対してマップされていることを確認します。
  • ホスト名がすでに解決されている場合は、lmlogs.syslog.hostname.format = DO_NOTHINGを使用してDNSをバイパスします。 これは、デフォルトでは構成ファイルにリストされていません。
  • 一部のリソースタイプは、syslogメタデータとともにホスト名を渡しませんが、ホスト名はメッセージフィールドにあります。 メッセージのホスト名を使用するには、lmlogs.syslog.UseHostNameFromMessages = trueを設定します。
  • ホスト名が有効でない場合、LogicMonitorはデフォルトでデバイスマッピングにソケットアドレスを使用します。 lmlogs.syslog.UseSocketAddressIfhostNameisInvalid = trueであることを確認してください。

4.ログはコレクターから3時間以上のタイムゾーンにありますか?

LMログは、現在から3時間以上経過したログを受け入れません。 この問題を回避するには、タイムスタンプをlmlogs.syslog.useTimestampWhenCollectorReceivedLogs = trueでコレクターがログイベントを受信する時間に設定できます。

5.コレクターのバージョンとサイズを確認します。

参照してください Syslogデプロイメントのコレクター容量。 必要に応じて、他のリソースを管理していないスタンドアロンのLM LogsCollectorを実装します。

6.コレクターイベントを確認します。

[コレクターの管理]で、[サポート]ドロップダウンを展開し、[ コレクターイベント。 マッピングエラーを確認し、キーワードを使用して検索できます。

7.コレクターLMログのグラフとメトリックを確認します。

[コレクターリソース]> [コレクターデータソースグループ]> [コレクターデータソースグループ]を展開します コレクターLMログデータソース。

  • キューイングの問題が発生していて、デバッグログにもキューサイズの増加が示されている場合は、lmlogs.thread.count.for.ingest.api.communication = 10のサイズを調整します。 サイズをさらに大きくする前に、デフォルトのサイズ(10)をXNUMX倍にして、結果をグラフで表示することをお勧めします。
  • その他のグラフには、着信イベントの数、ドロップされたログ、マッピングエラー、フィルターのために無視されたイベントなどが含まれます。

デバッグログ

1. Collectorのログレベルを調整して、wrapper.logをデバッグおよび確認します。

  • In 設定>コレクター>ログ>管理、eventcollector.syslogコンポーネントのログレベルをに設定します debug。 (デフォルトはinfoです。)
  • In マネージャーコレクターサポート ドロップダウンを選択し、「ログをLogicMonitorに送信」を選択します。 次に、特定のコレクターの[ログ]タブでwrapper.logファイルを確認します。

注意: トラブルシューティングが完了したら、ログレベルを情報に戻すことを忘れないでください。

2.ライブテールラッパーログ。

  • In コレクターの管理サポート ドロップダウンを選択し、「デバッグコマンドの実行」を選択します。
  • 次のように入力して、wrapper.logの最後の500行を表示します。  !tail ..\logs\wrapper.log 500 syslog SyslogをIPアドレスに変更したり、別のキーワードをgrepしたりすることもできます。

記事上で