当前位置: 首页 > news >正文

ELK Fleet JAVA LOG收集与展示教程

目录

elastic-fleet架构

Elastic Agent的优势

Fleet JAVA日志收集流程

1.注册Fleet Sever

2.创建JAVA代理收集策略Agent Policy

3.添加集成 integration

4.调整Java log输出格式

5.添加Elastic Agent

6.添加Ingest

7.创建数据视图

8.其他Policy

nginx-policy

system-policy

elastic 视图分析

1.常用搜索

2.字段分析

3.视图分析


elastic-fleet架构

整个架构图中,主要包含三个组件:

  • fleet:fleet是Kibana上的一个应用软件,通过与后端的资源包仓库建立连接,可以获取elastic最新发布的资源。同时,fleet可以通过Agent policy的方式,为我们定义采集端的规则和配置。Agent policy由fleet保存到elasticsearch

  • fleet server : 定期从elasticsearch拉取最新的Agent policy。并通知elastic agent及时获取最新的配置

  • elastic agent:elastic agent采集的数据,则是直接发送给elasticsearch,每个agent会采用单独的api-key与elasticsearch建立连接,保证数据及时的同步到elasticsearch当中

Elastic Agent的优势

简单来说就是一个集成了各种beats的代理插件,原本需要部署n个beats收集n种日志,现在只需要elastic Agent即可。

集成各类beats

配置文件通过Agent Policy来修改

原本需要调每一个服务器上的beat的配置文件,现在直接改Agent Policy即可,如一个关于nginx的policy可以供一群nginx服务器使用

使用keys取代password

不需要连接密码,使用api keys来调用各类接口,底层使用gRpc框架

参考文档

https://zhuanlan.zhihu.com/p/658197020

Elastic agent集群部署及注意事项-CSDN博客

腾讯云Elastic使用教程:使用Fleet集中管理Elastic Agent-腾讯云开发者社区-腾讯云

Fleet JAVA日志收集流程

1.注册Fleet Sever

部署Fleet服务器,在linux服务器上执行,如果失败可以加上 --insecure 参数

curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.9.1-linux-x86_64.tar.gz
tar xzvf elastic-agent-8.9.1-linux-x86_64.tar.gz
cd elastic-agent-8.9.1-linux-x86_64
sudo ./elastic-agent install \--fleet-server-es=http://es-cn-g4t3jwysq0006cyzu.elasticsearch.aliyuncs.com:9200 \--fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2VuLTE3MDQ5NDI4MzAwNjU6V04tMGtTc09URnlvYWpDZmx6RkNaUQ \--fleet-server-policy=fleet-server-policy \--fleet-server-port=8220

格式为 https://172.16.0.58:8220(填自己的ip)

8220 为Fleet Server的端口

2.创建JAVA代理收集策略Agent Policy

3.添加集成 integration

填写java日志的文件地址

在高级部分填写Custom configurations,目的是为了加入多行日志收集功能(默认为单行收集)

multiline:type: patternpattern: '^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}.\d{3}'negate: truematch: after

4.调整Java log输出格式

在服务上配置logback.xml,注意level处,这里屏蔽了DEBUG,其他日志级别有INFO,WARNING ,ERROR

<!--level为 all 日志--><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!--将今天的日志保存在这个文件中,--><file>xxx.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>xxx.%d{yyyy-MM-dd}.log</fileNamePattern><!--保存最近7天的日志--><maxHistory>7</maxHistory><!--所有的日志文件最大1G,超过就会删除旧的日志;--><totalSizeCap>1GB</totalSizeCap></rollingPolicy><encoder><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %logger输出日志的logger名 %msg:日志消息,%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>DEBUG</level><onMatch>DENY</onMatch><onMismatch>ACCEPT</onMismatch></filter></appender><!-- 异步输出,采用异步写日志的方式而不让此次写日志发生磁盘IO,阻塞线程从而造成不必要的性能损耗 --><appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender"><!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --><discardingThreshold>0</discardingThreshold><!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --><queueSize>256</queueSize><!-- 添加附加的appender,最多只能添加一个 --><appender-ref ref="FILE"/></appender><!--这里如果是info,spring、mybatis等框架则不会输出info之下的,TRACE < DEBUG < INFO <  WARN < ERROR--><springProfile name="prod"><root><appender-ref ref="ASYNC_FILE"/></root></springProfile>

5.添加Elastic Agent

agent的作用建立与fleet server的联系,enroll后,拉取提前配置好的Policy,达到一次policy管理多个agent

策略处选择步骤2创建的Policy

执行失败可添加 --insecure参数

curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.9.1-linux-x86_64.tar.gz
tar xzvf elastic-agent-8.9.1-linux-x86_64.tar.gz
cd elastic-agent-8.9.1-linux-x86_64
sudo ./elastic-agent install --url=https://172.16.0.58:8220 --enrollment-token=MVF1Rzlvd0JKVUlHT3RnellIMW46czVpdTVHTFZUYVM0T0oyeVl3MmVmUQ==

elastic-agent status 查看状态,也可以在数据流中看到日志了

6.添加Ingest

ingest为一个管道收集器,可以定制如何收集日志

字段处填写message,模式填写

%{TIME:timestamp} \[%{DATA:thread}\] %{WORD:loglevel} %{GREEDYDATA:logger} - %{GREEDYDATA:content}

7.创建数据视图

为了更好的数据展示,可以创建数据视图,创建好后在discover下查看即可

8.其他Policy

nginx-policy

logs位置,以实际为准

system-policy

  • /var/log/auth.log*:录认证相关事件的日志文件。它通常包含与用户登录、sudo 操作等相关的信息。这个文件对于查看系统安全性和监视用户活动非常有用。

  • /var/log/secure*:是在一些基于 Red Hat 的 Linux 发行版(如 CentOS、Fedora)上用于存储安全相关日志的文件。该文件通常包含与系统安全、认证、授权和相关事件有关的信息

  • /var/log/messages*:是一个系统日志文件,用于存储与系统运行相关的通用消息。它包含了各种系统级别的信息,如启动和关机事件、硬件和内核消息等。这个文件通常是一个记录系统广泛信息的综合性日志文件

  • /var/log/syslog*:用于存储来自系统日志守护程序(syslogd)的通用系统消息

elastic 视图分析

1.常用搜索

登录elasticsearch平台 =》 打开 discover =》 选择视图 =》 选择搜索模板

2.字段分析

在discover模式下,选择时间段,点击字段统计信息,可以查看字段触发的次数

选择+图标可以看到某台服务器或某个错误类型触发的次数,可自由搭配

3.视图分析

视图分析的自由度比较高,下面以统计error日志的服务器分布占比为例

查看visualize或dashboard可获取视图


http://www.mrgr.cn/news/78809.html

相关文章:

  • 手机中的核心SOC是什么?
  • Qt 面试题学习11_2024-11-29
  • 大模型开发和微调工具Llama-Factory-->LoRA合并
  • 实时数据开发|Flink如何实现不同数据源输入--DataSource模块
  • linux一键部署apache脚本
  • TYUT设计模式精华版
  • Python学习笔记
  • 鸿蒙Next星河版基础用例
  • 英语写作中以rationale 替代reason(理由)
  • 探索未来:深入人工智能学习框架的奥秘与实践
  • C与指针。
  • 使用Python OpenCV实现图像形状检测
  • Docker命令总结
  • 【学术投稿】Imagen:重塑图像生成领域的革命性突破
  • 最大似然估计:求解指数族分布的参数 ( η) 具有封闭解 (中英双语)
  • 江协科技最新OLED保姆级移植hal库
  • 【论文投稿】国产游戏技术:迈向全球引领者的征途
  • DataX实战|使用Python 构建简易的DataX数据血缘工具(一)
  • Proxy详解
  • 大数据hadoop、spark、flink、kafka发展的过程
  • 【MySQL-6】MySQL的复合查询
  • RPC中定时器制作思路
  • 视觉语言动作模型VLA的持续升级:从π0之参考基线Octo到OpenVLA、TinyVLA、DeeR-VLA、3D-VLA
  • 贪心算法理论
  • JavaScript 前端开发:从入门到精通的奇幻之旅
  • 自动驾驶目标检测融合全貌