Download PDF
Download page Syslog メッセージからのログ分析データの収集.
Syslog メッセージからのログ分析データの収集
これを設定するには、次の手順を実行します。
- Apache などの Web サーバを構成して、分析エージェントにログを送信します。分析エージェントに syslog データを転送するには、次の 2 つの方法があります。
- ログメッセージを通常のログファイルに書き込み、ログファイルから読み取ってエージェントに転送します。「 ログファイルからの syslog メッセージの読み取りと分析エージェントへの送信」を参照してください。
- 最初にファイルに書き込むことなく、ログデータを分析エージェントに直接送信します。「分析エージェントへの syslog データの直接送信」を参照してください。
- ログを受信して解析するように分析エージェントを構成します。ログ分析の syslog メッセージ収集を構成するには、次の 2 つの方法があります。
- ジョブファイル(4.2 以前で使用)。「ログ分析 TCP ジョブファイルの構成」を参照してください。
- ソースルール(4.3 で使用)。新しいログファイルソースに推奨されます。「ログ分析 TCP ソースルールの構成」を参照してください。
サポート環境の詳細
- Linux のみ
- ネットワークプロトコルは TCP のみ
- Apache Web サーバの syslog 形式のテンプレートは、分析エージェントに付属しています。ログメッセージを解析する正しい設定を指定している限り、TCP 経由で syslog のあらゆるログデータを取得できます。
- 分析エージェントごとに 1 つのジョブファイルを有効にして、TCP 経由で syslog メッセージを受信することができます。
analytics-agent が syslog メッセージをリッスンしているポートが 1024 よりも小さい場合は、syslog ユーティリティと analytics-agent の両方がルートアクセスを持っている必要があります。
分析エージェントへの syslog データの直接送信
Linux Logger ユーティリティを使用して、Apache アクセスおよびエラーログメッセージを syslog デーモンに直接転送することができます。この方法を使用すると、ログは通常のアクセスログおよびエラーログの Apache ファイルまたは /var/log/message
ファイルに書き込まれません。代わりに、ログ行は syslog デーモンに直接送信され、その後データが分析エージェントに転送されます。
設定:
- ログを
/usr/bin/logger
に委任するように Apache を設定します。httpd.conf
を特定して開き、Apache 設定ファイルを開きます。これは通常、/etc/httpd/conf/
にあります。アクセスログとエラーログを syslog に送信する新しい CustomLog ディレクティブを追加し、access_logs に送信する行をコメントアウトします。
#comment the following line to avoid logging to access_logs #CustomLog logs/access_log combined #Add a new CustomLog directive to send access logs and error logs to the syslog CustomLog "|/usr/bin/logger -t httpd -p local6.info" combined
CODEこのディレクティブは、logger ユーティリティを使用して、ファシリティ local6、タグ "httpd" とログ形式 combined を使用し、メッセージを送信します。
ファシリティコードは、メッセージをロギングするプログラムの種類を指定します。異なるファシリティを持つメッセージは、個別の方法で処理できます。
httpd.conf のタグ「httpd」は、送信する必要があるメッセージをフィルタリングするために、rsyslog.conf のプログラム名に直接関連します(次のステップを参照)。たとえば、その特定のポートに書き込む他のプログラムがある場合がありますが、httpd プログラムから analytics-agent にのみログを送信する必要があります。
- rsyslog クライアントを設定します。
rsyslog.conf
を編集します。これは通常、/etc/
にあります。「RULES」または「var/log/messages」フィルタの上に次の行を追加し、Apache が
/var/log/message
ファイルにログを記録しないようにします。# log to analytics-agent if $syslogfacility-text == 'local6' and $programname == 'httpd' then @@<analytics_agent_home>:514 # Prevent logging httpd to /var/log/messages if $syslogfacility-text == 'local6' and $programname == 'httpd' then ~
CODE514 は、analytics-agent が syslog メッセージをリッスンしているポートに置き換えます。これは、ジョブファイルで指定されたポートと一致している必要があります。
Apache と rsyslog を再起動し、rsyslog エラーがないか /var/log/messages を確認します。
ログファイルからの syslog メッセージの読み取りと分析エージェントへの送信
このケースでは、Apache サーバは通常のアクセスログファイルとエラーログファイルにログを書き込み、rsyslog デーモンがこれらのログファイルから読み取り、ログデータを分析エージェントに転送するように設定します。この方法では、元のログファイルが保持されます。この場合、アクセスおよびエラーログメッセージは /var/log/message
ファイルに記録されます。
この例では、特定のファイルから読み取り、指定したポート(デフォルトポートは 514)を介してファシリティ local6、シビラティ(重大度) info でメッセージを転送するように rsyslog クライアントを設定します。
- rsyslog.conf を見つけて編集します。これは通常、
/etc/
にあります。 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
CODE$InputFileName:追跡するログファイルへのパス。
local6.info:分析エージェントがコントローラのローカルにない場合は、分析エージェントの IP アドレスを使用します。必要に応じて、514 を、analytics-agent が syslog メッセージをリッスンしているポートに置き換えます。これは、ジョブファイルまたはソースルールで指定されたポートと一致している必要があります。rsyslog を再起動し、rsyslog エラーがないか /var/log/messages を確認します。
ログ分析 TCP ソースルールの構成
中央集中型ログ管理 UI を使用して、TCP を介して syslog メッセージからログ分析フィールドを抽出するソースルールを構成できます。
- [Analytics > Configuration > Log Analytics] をクリックして、コントローラから中央集中型ログ管理 UI にアクセスします。
- [Source Rules] タブで、次をクリックします。 + Add.
- [Add Source Rule] パネルで、[Create from] ソーステンプレートを選択し、収集タイプとして [From Network Connection] を選択します。
分析エージェントには、複数のログ フォーマット テンプレートが付属しています。適切に設定している限り、syslog TCP を介して任意のログ形式に対して新しいソースルールを作成できます。 - [Next ] をクリックして、[Add Source Configuration] ウィザードを表示します。
- ソースルールの名前、ソースタイプなどの収集の詳細を指定し、分析エージェントがリッスンしている TCP ポートを入力します。
収集タイプとして [From Network Connection] を指定すると、(ログメッセージに追加される)syslog ヘッダーの grok パターンが自動的に grok メッセージパターンの先頭に追加されます。
%{SYSLOG5424PRI}%{SYSLOGBASE2}
複数行形式の値が None であることを確認します。
他のソースルールについて、フィールド抽出とフィールド管理を設定します。「ソースルールを使用したログ分析の構成」を参照してください。
ログ分析 TCP ジョブファイルの構成
分析エージェントが syslog データをリッスンするポートを選択して構成する場合は、ネットワーク内でアクティブなその他のポートと競合していないことを確認してください。ポート番号が指定されていない場合は、ポート 514 が使用されます。syslog ユーティリティと analytics-agent の両方が、ポート 514 にログを送信するためにルートアクセスを持っている必要があります(1024 未満のポートへのバインドにはルートアクセスが必要です)。
analytics-agent がポートでリッスンできるようにするには、ログファイルの source プロパティと関連パラメータを type=syslog で指定します。たとえば、以下を該当するジョブファイルに追加します。
source:
type: syslog
port: 514
protocol: tcp
numThreads: 1
Apache 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"