Syslog ログの送信
最終更新日: 10 年 2023 月 XNUMX 日syslog (syslog、rsyslog、syslog-ng) は、エンタープライズ環境におけるログ データの最も一般的なソースの XNUMX つです。 Syslog データはインフラストラクチャで発生し、LogicMonitor のコレクタであるターゲット IP アドレスに転送されます。 リソースを現在監視しているコレクタは、Syslog メッセージを受信するものと同じである必要はありません。
推奨事項: LogSource は、LM ログを有効にするための推奨される方法です。 LogSource を使用するには、LM Collector のバージョンが EA 31.200 以降である必要があります。 詳細については、を参照してください。 ログソースの概要、またはカスタマー サクセス マネージャーにお問い合わせください。 次の手順では、LogSource を使用していない場合に LM ログを有効にする方法について説明します。
注: LM コレクターは次の目的で使用できます。 EventSource を使用した Syslog メトリックのアラートs, or LM ログの取り込みと処理のための Syslog ログ コレクターとして機能します。 両方を行うことはできません。
Collector で LM Logs Syslog コレクションを有効にすると、その Collector ですべての Syslog ベースの EventSource が無効になります。 ただし、ポーリング コレクターと Syslog コレクターは同じである必要はないため、LM ログ コレクション専用の Syslog コレクターをセットアップし、そのデバイスを監視する特定のコレクターで Syslog ベースの EventSource 監視を有効のままにしておくことができます。
要件
- EA Collector29.104以降がインストールされています。
- syslog の収集とログの転送には、ポート 514/UDP が開いていて、コレクタ マシンとファイアウォールの両方で使用できる必要があります。 注: これには rsyslogのUDPを無効にする.
Syslog ログ転送の有効化
また, LMコレクター Syslog データを受信し、表示、検索、分析のために生のログを LM Logs Ingestion API に転送します。
以前のバージョンと同様に、コレクターは、ポート514 / UDPでリッスンすることによってsyslogメッセージを受信するように構成できます。
- コレクターによって監視されるデバイスは、既存の集中型syslogサーバーからsyslogメッセージを転送できます。
- Syslogクライアントを持つ監視対象デバイスは、Syslogデータをコレクターに送信するように構成できます。
- 監視対象デバイスは、監視対象と同じコレクタに syslog メッセージを送信する必要はありません。
LMログのSyslog転送をオンにするには、コレクターの次のプロパティのコメントを解除します。 agent.conf
。 プロパティが存在しない場合は、次のように追加できます。
# Enable LM Logs
lmlogs.syslog.enabled=true
リソース マッピングの構成
Syslog イベントが受信されると、コレクターはそれらをログ取り込み API に転送する前に、既存の監視対象リソースにマップします。 ログを LM 監視対象リソースにマップできない場合でも、「_resource.id=0」でログを表示および検索できます。
コレクターから送信されたsyslogログの場合、次のプロパティのコメントを解除します。 agent.conf
デバイスマッピングの場合:
プロパティ | 説明 | デフォルト |
lmlogs.syslog.property.name | デバイスマッピングに使用するリソースプロパティ。 | システムのホスト名 |
lmlogs.syslog.ホスト名.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.ホスト名が無効な場合はソケットアドレスを使用 | ホスト名が無効な場合は、デバイスのマッピングにソケットアドレスを使用することを選択できます。 | true |
lmlogs.logsource.syslog.unmapped.resource | リソースのマッピングに失敗した場合は、ログを関連付けるバックアップリソースを選択できます。 コレクターごとにXNUMXつのバックアップリソースを定義でき、何らかの理由でそのリソースにマップできないすべてのログは、このバックアップリソースにマップされます。 グローバルバックアップリソースを構成する場合、次のような任意のリソースプロパティを選択できます。 system.displayname その後にコロンとLogicMonitorプロパティの値が続きます。 たとえば、「collector_syslog」をバックアップリソースとして構成するには、次のようにします。lmlogs.logsource.syslog.unmapped.resource=system.displayname:collector_syslog
|
N/A |
の値が system.hostname
監視対象のリソースがSyslogイベントで報告されたIPと一致しない場合、これらのデフォルト設定は機能せず、デバイスマッピングは失敗します。 この場合、変更する必要があります lmlogs.syslog.property.name
の値に一致するプロパティに lmlogs.syslog.hostname.format
設定。
これらの値のいずれかに一致する既存のLogicMonitorプロパティがない場合は、次のことができます。 PropertySourceを作成する 環境全体に属性を追加するか、プロパティを手動で設定します。
注: Cisco デバイスから syslog ログを転送している場合、IP またはホスト名が利用できない場合、LM Collector はソケット アドレスを使用しようとします。 これが機能するには、ログを受信するコレクタが、ログを送信する 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
トラブルシューティング
コレクタで syslog ログ転送を有効にしているにもかかわらず、ログが [ログ] ページに表示されない場合は、次のチェックを実行して問題をトラブルシューティングできます。
コレクター構成
注: コレクター構成の変更はコレクターで普遍的であり、そのコレクターにログを送信するすべてのデバイスに影響を与える可能性があります。 フラグを変更すると、XNUMXつのデバイスが修正される場合がありますが、他のデバイスに影響を与える可能性があります。 これは通常、すべてのsyslogデバイスの問題を解決するために実行する必要がある変更の組み合わせです。
Collector の構成ファイル (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.コレクターのバージョンとサイズを確認します。
Job Status ページの下部にある 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ファイルを確認します。
注: トラブルシューティングが完了したら、ログ レベルを info に戻すことを忘れないでください。
2.ライブテールラッパーログ。
- In コレクターの管理、 サポート ドロップダウンを選択し、「デバッグコマンドの実行」を選択します。
- 次のように入力して、wrapper.logの最後の500行を表示します。
!tail ..\logs\wrapper.log 500 syslog
SyslogをIPアドレスに変更したり、別のキーワードをgrepしたりすることもできます。
Windows Collector 上の Syslog に関する UDP ポート 514 とファイアウォールの問題
受信ファイアウォール ルールにより、Syslog がポート 514 でリッスンする Windows コレクターに到達しない場合があります。そのような場合は、次の手順を使用して問題をトラブルシューティングできます。
1. ファイアウォールが有効になっているかどうかを確認します。
PowerShell で次のコマンドを実行して、ファイアウォールが有効になっているかどうかを確認します。
$firewallStatus = Get-NetFirewallProfile | Select-Object -ExpandProperty Enabled; if($firewallStatus -eq "True") { Write-Host "Windows Firewall is Enabled" } else { Write-Host "Windows Firewall is Disabled" }
- Windows ファイアウォールが有効になっている場合は、リモート ホストからの Syslog が Windows マシンに到達できるようにする受信ファイアウォール ルールが追加されているかどうかを確認します。
- 受信ルールが追加されていない場合は、それぞれのリモート ホストに追加します。
あるいは、問題のトラブルシューティングを行うために、Windows ファイアウォールを一時的に無効にすることもできます。
免責事項: LogicMonitor では、Windows マシンがネットワーク ベースのセキュリティの脅威に対して脆弱になる可能性があるため、Windows ファイアウォールを無効にすることはお勧めしません。
2. Windows マシンでセキュリティ ソフトウェアまたはウイルス対策ソフトウェアが実行されているかどうかを確認します。
Windows マシンで、ポート 514 のトラフィックを拒否するように構成されたセキュリティ ソフトウェアまたはウイルス対策ソフトウェアが実行されている可能性があります。PowerShell で、Windows マシン上のすべてのプロセスを確認するには、次のコマンドを実行します。
Get-Process | Select-Object Name
出力には、Windows マシン上で実行されているプロセスの名前が表示されます。 セキュリティ ソフトウェアまたはウイルス対策ソフトウェアが実行されている場合は、目的の IP からのポート 514 でのトラフィックを許可するように構成を変更できます。
注: .pcap (パケット キャプチャ) ファイルには、データ リンク層でのみ受信したデータが表示されます。 その結果、.pcap ファイルで使用可能な Syslog パケットだけでは、コレクタがポート 514 で Syslog をリッスンすることを保証するには不十分です。コレクタは、Syslog パケットがアプリケーション層で許可されている場合にのみ Syslog をリッスンできます。
3. Windows マシンでセキュリティ ソフトウェアまたはウイルス対策ソフトウェアが実行されているかどうかを確認します。
ポート 514 がすでに別のアプリケーションまたはサービスによって使用されている場合、Windows コレクターはポート 514 にアクセスできません。 PowerShell で次のコマンドを実行して、ポート XNUMX の Syslog にアクセスしているプロセス ID を確認します。
netstat -ano | findstr 514
別のアプリケーションまたはサービスがある場合は、そのプロセスを停止または強制終了し、コレクターを再起動します。