网站图片怎么换,个人网站备案icp,网站自己维护,免费制作小说封面的网站ELK日志解决方案
ELK套件日志系统应该是Elasticsearch使用最广泛的场景之一了#xff0c;Elasticsearch支持海量数据的存储和查询#xff0c;特别适合日志搜索场景。广泛使用的ELK套件(Elasticsearch、Logstash、Kibana)是日志系统最经典的案例#xff0c;使用Logstash和Be…ELK日志解决方案
ELK套件日志系统应该是Elasticsearch使用最广泛的场景之一了Elasticsearch支持海量数据的存储和查询特别适合日志搜索场景。广泛使用的ELK套件(Elasticsearch、Logstash、Kibana)是日志系统最经典的案例使用Logstash和Beats组件进行日志收集Elasticsearch存储和查询应用日志Kibana提供日志的可视化搜索界面。 安装es和kibana
本文版本为8.5.0
安装es和kibana文档可以参考
https://blog.csdn.net/weixin_73195042/article/details/135835820
https://blog.csdn.net/weixin_73195042/article/details/135567295
此处es配置密码elastic/111111
安装Logstash
请注意Logstash版本必须和es版本一致这里以8.5.0版本为例。
第一步拉取镜像 docker pull logstash:8.5.0 第二步需要提前在linux服务器上环境 /mydata/logstash/logstash.conf,内容如下 mkdir -p /mydata/logstash input {tcp {mode serverhost 0.0.0.0port 5044codec json_lines}
}
filter{}
output {elasticsearch {hosts 192.168.200.6:9200index project-%{YYYY.MM.dd}user elasticpassword 111111}
}第三步创建容器
docker run --name docker_logstash -p 5044:5044 \
--restartalways \
--link docker_elasticsearch:es \
-v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-d logstash:8.5.0安装Filebeat
第一步授权
chmod 777 -R /var/log/messages
第二步启动日志收集器
docker run -d \--namefilebeat \--restartalways \-v filebeat-conf:/usr/share/filebeat \-v /var/log/messages:/var/log/messages \--link 1833f6a65c2a:docker_elasticsearch \elastic/filebeat:7.8.01833f6a65c2a: es容器的ID第三步修改配置文件
进入到目录
cd /var/lib/docker/volumes/filebeat-conf/_data
修改配置文件
vim filebeat.yml
内容如下
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/messages
filebeat.config:modules:path: ${path.config}/modules.d/*.ymlreload.enabled: falseprocessors:- add_cloud_metadata: ~- add_docker_metadata: ~output.elasticsearch:hosts: 192.168.200.128:9200indices:- index: filebeat-%{yyyy.MM.dd}重启filebeat 容器运行检索模块
效果以后虚拟机上的所有日志都会收集保存到es中可以在kibana中进行检索。
Logstash环境问题 安装Logstash 通过查看Logstash容器日志401未授权异常 ES8.0后必须有授权许可 修改宿主机Logstash配置文件添加授权配置信息即可/mydata/logstash/logstash.conf。 此处密码应该与es密码一致 user elastic
password 111111重启Logstash容器再查看一下日志发现没有报错。
项目中整合 引入依赖 dependencygroupIdnet.logstash.logback/groupIdartifactIdlogstash-logback-encoder/artifactIdversion5.1/version
/dependency日志配置文件logback-spring.xml增加日志Logstash策略 !-- logstash日志 --
appender nameLOGSTASH classnet.logstash.logback.appender.LogstashTcpSocketAppender!-- logstash ip和暴露的端口logback就是通过这个地址把日志发送给logstash --destination192.168.200.6:5044/destinationencoder charsetUTF-8 classnet.logstash.logback.encoder.LogstashEncoder /
/appender!-- 开发环境 --
springProfile namedev!-- com.atguigu日志记录器业务程序INFO级别 --logger namecom.atguigu levelINFO /!--logger namecom.alibaba levelWARN /--!-- 根日志记录器INFO级别 --root levelINFOappender-ref refCONSOLE /appender-ref refLOGSTASH //root
/springProfile启动项目测试Java进程启动会将日志发送到LogstashLogstash会自动将数据存入ES 这时候我们启动项目然后进入es的控制台输入 GET /project-2024.01.26/_search
{query: {term: {level.keyword: {value: WARN}}}
}这样我们就可以得到服务的日志了。
我们还可以通过一些开源组件让日志可视化的直接展示出来而不需要我们每次在es中查询。例如
Plumelog: 一个简单易用的java日志系统解放你的日志查询困难问题方便快速追踪问题安装配置简单性能优秀 演示视频地址https://v.qq.com/x/page/g3308uxlcnw.html (gitee.com)