网站首页 > 技术文章 正文
为Spring Cloud微服务系统添加ELK+logback可视化日志分析管理工具
一、问题起源
微服务架构中,除了Spring Cloud所需的组件,如网关、Eureka注册中心、配置中心等,还有大量经过业务拆分生成的微服务节点。如何有效地收集汇总各个微服务节点的日志,对于应对微服务架构的复杂性有很大的帮助。
一个良好的微服务日志中心需具备方便查询、可视化展示等特点。
二、技术调研
为此我们进行了深入的技术调研,研究了ElasticSearch、Logstash、Kibana等工具,并结合Docker容器化部署,决定采用logback中添加可视化分析工具,结合ELK对日志可视化展开工作。
Logback这个工具的appender视图如下:
进行了异步的日志记录,DBAppender基于数据库的日志记录
而ELK的日志分析套装图如下:
三、实践之路
ElasticSearch
ElasticSearch是一个开源的分布式的搜索引擎,它负责存储数据,并且提供了许多灵活而实用的Rest API,所以,上层应用可以根据需要去查询数据,使用数据,分析数据。在日志中心,所有的日志数据都存储到ElasticSearch中,借助其强大的搜索能力,可以很灵活地查询日志。
Logstash
Logstash主要用于收集数据,并将数据保存到ElasticSearch中。
Logstash提供许多插件,易于扩展。Logstash收集到数据后,可以做很多处理,最终再将数据输出到ElasticSearch中。在日志中心,它主要负责采集应用的日志。
Kibana
Kibana主要负责读取ElasticSearch中的数据,并进行可视化展示。它还自带Tool,可以方便调用ElasticSearch的Rest API。在日志中心,我们通过Kibana查看日志。
四、环境工具
首先要搭建相关环境,没有采用Docker部署方式,采用了原生的安装方式
(1)官网下载elk安装包
(2)elk依赖java环境,下载jdk
4.1安装及更改配置
- 在cd /usr 创建目录 mkdir elk
- 由于root用户运行elasticsearch,因此创建一个用户组添加用户
gropuadd elk
useradd elk -g elk -p elk
cd /usr
chown -R elk:elk /elk(给elk用户赋权)
3.解压elasticsearch,配置yml
cd /usr/elk/elasticsearch/config
vi elasticsearch.yml
---------------------------------
注释放开:
node.name: dashan
network.host: 0.0.0.0
http.port: 9200
node.name: dashan
cluster.initial_master_nodes: ["dashan"]
4.切换elk用户 运行elasticsearch
su elk
sh elasticsearch &
5.解压kibana 修改配置文件(此处切回root用户: su root)
------------------------------------------------
cd /usr/elk/kibana/config
vi kibana.yml
----------------
server.port: 5601 (端口,后面要跟springboot项目匹配)
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"] (匹配elasticsearch路径)
kibana.index: ".kibana"
i18n.locale: "zh-CN"(国际化)
6.切换elk用户 运行kibana ,访问http://域名:5601
cd /usr/elk/kibana/bin
sh kibana &
7.解压logstash 更改配置 启动(切回root)
cd /usr/elk/bin
在bin目录创建文件logstash1.conf,作为启动配置
------------------------------
input {
tcp {
port => 4560
mode => "server"
type => "tcplog"
codec => "json"
}
}
output {
elasticsearch {
action => "index" #The operation on ES
hosts => "localhost:9200" #ElasticSearch host, can be array.
index => "logstash-tcplog-sonhai-%{+YYYY.MM.dd}"
}
}
8.切换elk用户 启动项目
cd /usr/elk/logstash/bin
sh logstash -f logstash1.conf
五、Spring Boot项目加入日志可视化
在Spring Boot项目中添加项目依赖
在resource目录下创建logback.xml
配置说明:
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<param name="Encoding" value="UTF-8"/>
<destination>192.168.1.3:4560</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
<customFields>{"logstash-tcplog-dashan-%{+YYYY.MM.dd}":"dashanapp"}</customFields>
</encoder>
</appender>
中的<destination> 配置的即时远程的logstash域名及端口4560与logstash自定义的配置文件保持一致
<customFields>作为索引的名称logstash-tcplog-dashan-%{+YYYY.MM.dd} 和上面配置保持一致,后面的值自定义,后面会展示到索引为logstash-tcplog-dashan-%{+YYYY.MM.dd}的后面
5.1编写Spring Boot接口
此时启动应用。通过postman向/test接口发送请求
登陆kibana,即可看到此时日志可以只展示host、service、log三部分内容,有效地减轻了我们使用微服务时日志查看时的工作量
然后就能访问日志了,且可以通过日期字段等条件筛选展示
六、总结
这样各微服务系统都能查看日志了
- 上一篇: 再见笨重的ELK!这套轻量级日志收集方案要火
- 下一篇: CentOS7 搭建ELK日志分析系统过程
猜你喜欢
- 2024-10-18 日志分析平台——ELK安装配置 elk实时日志
- 2024-10-18 利用 ELK(Elasticsearch + Logstash + Kibana) 搭建日志分析平台
- 2024-10-18 超详细的EFK安装部署教程--filebeat日志数据采集
- 2024-10-18 ELK总结——第二篇Logstash的搭建
- 2024-10-18 亿级 ELK 日志平台构建实践 elk日志系统搭建
- 2024-10-18 ELK日志管理方案-Centos6安装Elasticsearch
- 2024-10-18 SpringBoot利用ELK实现日志收集 springboot日志收集框架
- 2024-10-18 ELK超详细配置 elk7.12
- 2024-10-18 如何用ELK搭建TB级微服务海量日志监控系统?
- 2024-10-18 logback+kafka+elk搭建日志 logback kafka appender
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)