Docker 搭建 ELK 日志搜索平台
2023-04-18 15:00:39 时间
ELK 图文简介
最终效果预览
ELK 搭建流程
1、规范化 Spring Boot 应用的日志
请参考 《Spring Boot Log4j2 日志性能之巅》,此处为了收集、处理日志信息,所以修改下日志的 Pattern,将
<Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx</Property>
改为(去除颜色,用 “ | ” 分隔)
<Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} | %5p | ${sys:PID} | %15.15t | %-40.40c{1.} | %m%n%xwEx</Property>
2、ELK - 部署 ElasticSearch
获取镜像
docker pull elasticsearch
创建数据卷
docker volume create elasticsearch_data
启动
docker run
-d
-p 9200:9200
-v elasticsearch_data:/usr/share/elasticsearch/data
--name elasticsearch
elasticsearch
3、ELK - 部署 Logstash
获取镜像
docker pull logstash
添加配置文件 logstash.conf
input {
file {
id => "spring-boot-info"
path => [ "/Users/admin/code/log/*-info.log" ]
type => "info"
start_position => "beginning"
}
file {
id => "spring-boot-error"
path => [ "/Users/admin/code/log/*-error.log" ]
type => "error"
start_position => "beginning"
}
}
filter {
mutate {
split => ["message", " | "]
add_field => {
"curr_time" => "%{[message][0]}"
}
add_field => {
"level" => "%{[message][1]}"
}
add_field => {
"pid" => "%{[message][2]}"
}
add_field => {
"thread" => "%{[message][3]}"
}
add_field => {
"class" => "%{[message][4]}"
}
add_field => {
"content" => "%{[message]5[]}"
}
}
}
output{
elasticsearch {
hosts => [ "elasticsearch:9200" ]
index => "logstash-%{type}-%{+YYYY.MM.dd}"
document_type => "%{type}"
}
}
启动
docker run
-d
-p 4560:4560
-v /Users/admin/docker/logstash/logstash.conf:/etc/logstash.conf
-v /Users/admin/code/log:/Users/admin/code/log
--link elasticsearch:elasticsearch
--name logstash
logstash
logstash -f /etc/logstash.conf
-v /Users/admin/code/log:/Users/admin/code/log 日志目录一定要挂载,
/Users/admin/code/log
为日志文件的目录
4、ELK - 部署 Kibana
获取镜像
docker pull kibana
启动
docker run
-d
-p 5601:5601
--link elasticsearch:elasticsearch
-e ELASTICSEARCH_URL=http://elasticsearch:9200
--name kinaba
kibana
至此,基本的 ELK 平台搭建完毕, 访问 http://localhost:5601/ 查看吧。
参考文档
- 《架构探险:轻量级微服务架构》下册
- logstash 文件输入
- logstash 字符串处理
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击