我想将Java应用程序中的日志数据保存到ELK堆栈中。我可以自由配置日志数据的格式。不幸的是,我只能使用log4j 1.x。
在ELK Stack中存储结构化日志数据的最简单方法是什么?
发布于 2022-02-23 19:47:20
您可以使用Filebeat通过RollingFileAppenders
写入您的应用程序级别日志。将以下内容添加到您的logback.xml
中,以将应用程序日志写入目录:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/etc/logging/sample.log</file>
<immediateFlush>false</immediateFlush>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
/etc/logging/hsvt_akka.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>
<maxFileSize>5KB</maxFileSize>
<maxHistory>20</maxHistory>
<totalSizeCap>1MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>[%date{ISO8601}] [%level] [%logger] [%marker] [%thread] - %msg MDC: {%mdc}%n</pattern>
</encoder>
</appender>
现在配置filebeat以读取这些写入目录/etc/logging
的日志,作为集群中的java应用程序的sidecar运行,例如k8s
为文件节拍创建configMap:
filebeat.yml: |
filebeat:
inputs:
- type: filestream
enabled: true
paths:
- /etc/logging/*.log
- /etc/logging/*.log.*
prospector:
scanner:
check_interval: 1s
config:
inputs:
path: /etc/filebeat.yml
reload:
enabled: true
period: 10s
output:
elasticsearch:
hosts: []
protocol:
username:
password:
现在将其作为sidecar容器添加到原始的java应用程序中。
- name: filebeat-sidecar
image: elastic/filebeat:7.16.3
command: ["filebeat"]
args: ["-c","/etc/filebeat.yml","-e", "-strict.perms=false"]
resources:
limits:
memory: "80Mi"
requests:
memory: "60Mi"
securityContext:
runAsUser: 2000
volumeMounts:
- name: filebeat-app-logs
mountPath: /etc/logging
- name: filebeat-config
mountPath: /etc/filebeat.yml
subPath: filebeat.yml
volumes:
- name: filebeat-app-logs
- name: filebeat-config
configMap:
defaultMode: 0600
name: filebeat-configmap
items:
- key: filebeat.yml
path: filebeat.yml
您需要将java应用程序和filebeat配置为读取日志写入的相同卷。
发布于 2018-10-24 07:34:06
如果您需要一种简单的方法来将您的Java应用程序日志导入到Elasticsearch中,那么安装并运行filebeat
来读取您的应用程序日志并将其导入到ES中。您可以使用filebeat摄取节点来解析您的日志,并将其存储到Elasticsearch中的单个字段中,以帮助实现可视化等。或者,您也可以安装logstash来进行解析,而不是安装filebeat摄取管道。以下是一些可供阅读的链接,帮助您入门:
https://www.elastic.co/guide/en/beats/filebeat/current/configuring-howto-filebeat.html
https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ingest-node.html
https://www.elastic.co/guide/en/logstash/current/configuration.html
https://stackoverflow.com/questions/52955338
复制相似问题