WildflyのアクセスログをFilebeatでElasticsearchへ取り込む
はじめに
WildflyのアクセスログをFilebeatでElasticsearchへ取り込む設定を行います。
環境
使用した環境は以下のとおり。
- CentOS 7.5
- Elasticsearch 7.8
- Kibana 7.8
- Filebeat 7.8
- Wildfly 20.0.1.Final
Elasticsearch/Kibana/Elastic APMは、「ElasticStack 7.8 環境構築」で構築した環境を利用しています。
Wildflyでアクセスログを出力する
Wildflyのアクセスログはデフォルトでは出力されないので、まずアクセスログを出力することから始めます。
standalone.xmlのundertowの設定箇所に"<access-log/>"を追記します。
これで、standalone/logs/access-logへアクセスログが出力されるようになります。
フォーマットではデフォルトでCommon Log Format (CLF)になります。
設定変更後のstandalone.xmlは以下のようになります。
<subsystem xmlns="urn:jboss:domain:undertow:11.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<http-invoker security-realm="ApplicationRealm"/>
<access-log/>
</host>
</server>
"combined"にする場合は、"<access-log pattern="combined"/>"に変更します。
"combined"にした場合のログは以下のように出力されます。
192.168.10.100 - - [08/Aug/2020:03:09:41 +0200] "GET /wildfly_logo.png HTTP/1.1" 304 -
192.168.10.100 - - [08/Aug/2020:03:09:41 +0200] "GET /jbosscommunity_logo_hori_white.png HTTP/1.1" 304 -
192.168.10.100 - - [08/Aug/2020:03:09:42 +0200] "GET /wildfly-apm-testapp/services/test/test1 HTTP/1.1" 200 -
なお、コンソールから修正する場合は以下のようにコマンドを実行します。
# ./jboss-cli.sh --connect --controller=[IPアドレス]:9990
/subsystem=undertow/server=default-server/host=default-host/setting=access-log:add
{
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}
# access-logの属性を確認する場合
[[email protected]:9990 setting] /subsystem=undertow/server=default-server/host=default-host/setting=access-log:read-attribute(name=pattern)
{
"outcome" => "success",
"result" => "combined"
}
# access-logの属性を変更する場合
[[email protected]:9990 setting] /subsystem=undertow/server=default-server/host=default-host/setting=access-log:write-attribute(name=pattern,value=combined)
{"outcome" => "success"}
[[email protected]:9990 setting] /subsystem=undertow/server=default-server/host=default-host/setting=access-log:read-resource
{
"outcome" => "success",
"result" => {
"directory" => expression "${jboss.server.log.dir}",
"extended" => true,
"pattern" => "common",
"predicate" => undefined,
"prefix" => "access_log.",
"relative-to" => undefined,
"rotate" => true,
"suffix" => "log",
"use-server-log" => false,
"worker" => "default"
},
"response-headers" => {"process-state" => "reload-required"}
}
# access-logを削除する場合
/subsystem=undertow/server=default-server/host=default-host/setting=access-log:remove
Filebeatの設定
次にFilebeatでApacheログフォーマットのログを入力として、Elasticsearchへ送信するように設定します。
まずは、Filebeatのapacheモジュールを有効にします。
# filebeat modules enable apache
Enabled apache
# filebeat modules list
Enabled:
apache
次にapacheモジュールの設定を変更します。
apacheモジュールの設定は以下の公式サイトを参考にして実施しています。
# vi /etc/filebeat/modules.d/apache.yml
変更後のapache.ymlは以下のようになります。
# grep -vE '^ *#|^$' /etc/filebeat/modules.d/apache.yml
- module: apache
access:
enabled: true
var.paths: ["/opt/wildfly-20.0.1.Final/standalone/log/access_log.log*"]
error:
enabled: false
filebeat.ymlは以下のように設定しました。
# grep -vE '^ *#|^$' /etc/filebeat/filebeat.yml
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.kibana:
host: "localhost:5601"
output.elasticsearch:
hosts: ["localhost:9200"]
最後にFilebeatを以下のコマンドで再起動します。
# systemctl stop filebeat
# systemctl start filebeat
KibanaでWildflyのアクセスログを確認する
Kibanaの左側のメニューから[Logs]を選択して、アクセスログを表示することができます。
また、Filebeatは自動でダッシュボードのサンプルを作成しています。
サンプルのダッシュボード([Filebeat Apache] Access and error logs ECS)を選択すると以下のようなグラフが表示されます。
参考
Author And Source
この問題について(WildflyのアクセスログをFilebeatでElasticsearchへ取り込む), 我々は、より多くの情報をここで見つけました https://qiita.com/mkyz08/items/b056454c58728e4b2bf6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .