Syslog メッセージからのログ分析データの収集
Related pages:
これを設定するには、次の手順を実行します。
- Apache などの Web サーバを構成して、分析エージェントにログを送信します。分析エージェントに syslog データを転送するには、次の 2 つの方法があります。
- ログメッセージを通常のログファイルに書き込み、ログファイルから読み取ってエージェントに転送します。「ログファイルからの syslog メッセージの読み取りと Analytics エージェントへの送信」を参照してください。
- 最初にファイルに書き込むことなく、ログデータを分析エージェントに直接送信します。「Analytics エージェントへの syslog データの直接送信」を参照してください。
- ログを受信して解析するように分析エージェントを構成します。ログ分析の syslog メッセージ収集を構成するには、次の 2 つの方法があります。
- ジョブファイル(4.2 以前で使用)。「ログ分析 TCP ジョブファイルの構成」を参照してください。
- ソースルール(4.3 で使用)。新しいログファイルソースに推奨されます。「ログ分析 TCP ソースルールの構成」を参照してください。
Supported Environment Details
- Linux only
- Network protocol is TCP only
- A template for Apache Web Server syslog format is shipped with the Analytics Agent. You can bring any log data in through syslog over TCP as long as you provide the correct configuration to parse the log message.
- One job file per Analytics Agent can be enabled to receive syslog messages over TCP.
「分析エージェントへの syslog データの直接送信」を参照してください。
Linux Logger ユーティリティを使用して、Apache アクセスおよびエラーログメッセージを syslog デーモンに直接転送することができます。この方法を使用すると、ログは通常のアクセスログおよびエラーログの Apache ファイルまたは ファイルに書き込まれません。代わりに、ログ行は syslog デーモンに直接送信され、その後データが分析エージェントに転送されます。
設定:
- ログを に委任するように Apache を設定します。
- rsyslog クライアントを設定します。
- Apache と rsyslog を再起動し、rsyslog エラーがないか /var/log/messages を確認します。
「 ログファイルからの syslog メッセージの読み取りと分析エージェントへの送信」を参照してください。
このケースでは、Apache サーバは通常のアクセスログファイルとエラーログファイルにログを書き込み、rsyslog デーモンがこれらのログファイルから読み取り、ログデータを分析エージェントに転送するように設定します。この方法では、元のログファイルが保持されます。この場合、アクセスおよびエラーログメッセージは ファイルに記録されます。
この例では、特定のファイルから読み取り、指定したポート(デフォルトポートは 514)を介してファシリティ local6、シビラティ(重大度) info でメッセージを転送するように rsyslog クライアントを設定します。
- rsyslog.conf を見つけて編集します。これは通常、 にあります。
-
rsyslog.conf ファイルの「begin forwarding」セクションで、次の行を追加します。
# add these lines in the begin forwarding section $ModLoad imfile $InputFileName /etc/httpd/logs/access_log << your file $InputFileTag apache-access $InputFileStateFile stat-apache-access $InputFileSeverity info $InputFileFacility local6 $InputRunFileMonitor local6.info @@localhost:514$InputFileName:追跡するログファイルへのパス。
local6.info:分析エージェントがコントローラのローカルにない場合は、分析エージェントの IP アドレスを使用します。必要に応じて、514 を、analytics-agent が syslog メッセージをリッスンしているポートに置き換えます。これは、ジョブファイルまたはソースルールで指定されたポートと一致している必要があります。
-
rsyslog を再起動し、rsyslog エラーがないか /var/log/messages を確認します。
「ログ分析 TCP ソースルールの構成」を参照してください。
中央集中型ログ管理 UI を使用して、TCP を介して syslog メッセージからログ分析フィールドを抽出するソースルールを構成できます。
ログ分析 TCP ジョブファイルの構成
分析エージェントが syslog データをリッスンするポートを選択して構成する場合は、ネットワーク内でアクティブなその他のポートと競合していないことを確認してください。ポート番号が指定されていない場合、ポート 514 が使用されます。syslog ユーティリティと analytics-agent の両方が、ポート 514 にログを送信するためのルートアクセスを持っている必要があります(1024 未満のポートへのバインドにはルートアクセスが必要です)。
analytics-agent がポートでリッスンできるようにするには、ログファイルの [source] プロパティと関連パラメータを [type]=syslog で指定します。たとえば、以下を該当するジョブファイルに追加します。
source:
type: syslog
port: 514
protocol: tcp
numThreads: 1Apache Commons のジョブファイルは、 /<analytics-agent-home>/conf/job/sample-apache-httpserver-access-syslog.job の分析ディストリビューションに含まれています。。
ジョブファイルは次のようになります。
version: 2
enabled: true
source:
type: syslog
port: 514
protocol: tcp
numThreads: 5
fields:
sourceType: apache-httpserver-access-syslog
nodeName: Node1
tierName: Tier1
appName: App1
grok:
patterns:
- "%{SYSLOG5424PRI}%{SYSLOGBASE2} %{COMBINEDAPACHELOG}"
eventTimestamp:
pattern: "dd/MMM/yyyy:HH:mm:ss Z"