Wildfly 액세스 로그를 Filebeat에서 Elasticsearch로 가져오기
9019 단어 FilebeatElasticsearchWildfly
소개
Wildfly의 액세스 로그를 Filebeat에서 Elasticsearch에 캡처하는 설정을 수행합니다.
환경
사용한 환경은 다음과 같습니다.
사용한 환경은 다음과 같습니다.
Elasticsearch/Kibana/Elastic APM은 'ElasticStack 7.8 환경 구축 '에서 구축한 환경을 이용하고 있습니다.
Wildfly로 액세스 로그 출력
Wildfly의 액세스 로그는 기본적으로 출력되지 않으므로 먼저 액세스 로그를 출력하는 것으로 시작합니다.
standalone.xml의 undertow 설정 부분에 ""를 추가합니다.
이제 standalone/logs/access-log에 액세스 로그가 출력됩니다.
형식은 기본적으로 공통 로그 형식(CLF)입니다.
설정 변경 후 standalone.xml은 다음과 같습니다.
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"로 설정하려면 ""로 변경합니다.
"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 모듈의 설정은 아래의 공식 사이트를 참고하여 실시하고 있습니다.
htps //w w. 에 s c. 코/구이데/엔/베아 ts/후아베아 t/쿤렌 t/후아베아 t-모즈-아파치ぇ. HTML # vi /etc/filebeat/modules.d/apache.yml
변경 후 apache.yml은 다음과 같습니다.
/etc/filebeat/modules.d/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은 다음과 같이 설정했습니다.
/etc/filebeat/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)를 선택하면 다음과 같은 그래프가 표시됩니다.
참고
WildFly Full 20 Model Reference
Reference
이 문제에 관하여(Wildfly 액세스 로그를 Filebeat에서 Elasticsearch로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mkyz08/items/b056454c58728e4b2bf6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이제 standalone/logs/access-log에 액세스 로그가 출력됩니다.
형식은 기본적으로 공통 로그 형식(CLF)입니다.
설정 변경 후 standalone.xml은 다음과 같습니다.
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"로 설정하려면 "
"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 모듈의 설정은 아래의 공식 사이트를 참고하여 실시하고 있습니다.
# filebeat modules enable apache
Enabled apache
# filebeat modules list
Enabled:
apache
# vi /etc/filebeat/modules.d/apache.yml
변경 후 apache.yml은 다음과 같습니다.
/etc/filebeat/modules.d/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은 다음과 같이 설정했습니다.
/etc/filebeat/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)를 선택하면 다음과 같은 그래프가 표시됩니다.
참고
Reference
이 문제에 관하여(Wildfly 액세스 로그를 Filebeat에서 Elasticsearch로 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mkyz08/items/b056454c58728e4b2bf6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)