Docker搭建 lek日志框架
前言:ELK架构是解决日志分布式采集与分析问题中具有代表性的解决方案。但原生ELK架构存在Logstash对CPU资源占用较大、无法动态更新日志相关配置和日志数据传输过程中数据易丢失等问题。为满足现实中大型分布式服务的日志采集与分析需求,对原生ELK架构作如下改进:在收集过程中增加限速器以减少CPU占用率;增加分布式注册中心实现相关配置动态更新;增加消息队列使得消息传输过程更健全。实验结果表明,改
前言:ELK架构是解决日志分布式采集与分析问题中具有代表性的解决方案。但原生ELK架构存在Logstash对CPU资源占用较大、无法动态更新日志相关配置和日志数据传输过程中数据易丢失等问题。为满足现实中大型分布式服务的日志采集与分析需求,对原生ELK架构作如下改进:在收集过程中增加限速器以减少CPU占用率;增加分布式注册中心实现相关配置动态更新;增加消息队列使得消息传输过程更健全。实验结果表明,改进后的ELK日志采集及分析系统与原生ELK相比,CPU占用率减少了近60%,日志速度提高了3倍,且消息丢失率为零。日志框架
docker 镜像
准备一下三个镜像
elasticsearch:7.4.2
docker pull elasticsearch:7.4.2
kibana:7.4.2
docker pull kibana:7.4.2
logstash:7.4.2
docker pull elastic/logstash:7.4.2
elasticsearch和kibana的启动命令见上一篇
logstash启动
docker run -d --name logstash -p 5044:5044 logstash:7.4.2
进入容器 logstash
docker exec -it logstash sh
进入cd pipeline/
下编辑vi logstash.conf
文件
input {
# tcp方法进行输入
tcp {
port => 5044 # 暴露的端口
codec => "json" # 以JSON的方式进行传输
}
}
# 对日志进行处理
filter {
ruby {
code => "event.set('timestamp', (event.get('@timestamp').time.localtime + 8*60*60).strftime('%Y-%m-%d %H:%M:%S'))" # 格式化时间
}
}
output {
# 配置ES
elasticsearch {
hosts => "ip:9201"
index => "%{[appname]}-%{+YYYY.MM.dd}"
}
stdout {
# 以debug的方式运行,会在控制台打印日志信息,可以不要stdout这一段
codec => rubydebug { }
}
}
在进入cd config/
下vi logstash.yml
文件
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://ip:9201" ]
修改完保存重启容器
更新步骤
在项目种配置 打印日志的 xml文件和引入jar包 依赖
<!-- logstash elk 日志-->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
写入xml 文件
xml配置文件多种规则 我这就是简单例子 请参考
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<include resource="org/springframework/boot/logging/logback/base.xml" />
<contextName>logback</contextName>
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>logstash的IP:5044</destination>
<!-- encoder必须配置,有多种可选 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="info">
<appender-ref ref="stash" />
</root>
</configuration>
启动kibana 查看
2
3
4
点击
ok日志已经进来了
更多推荐
所有评论(0)