对于java项目查看日志方法很多,由于项目需要,查看日志需要命令查看,为方便后端开发人员查看错误日志,项目要求搭建elk日志管理
此次是springcloud搭建elk,spirngboot亦可如此
elk :是elasticsearch(存储日志数据),logstash(收集日志) ,kibana(显示日志数据)的缩写
首先得安装这三个软件,下载地址:
开源搜索:Elasticsearch、ELK Stack 和 Kibana 的开发者 | Elastic
1.启动elastcsearch:
elasticsearch下载解压,然后找到bin目录下的(windows下)elasticsearch.bat启动,默认端口9200无需修改 linux环境下启动需要新建用户,然后用新用户cd到bin目录下,然后用 ./elasticsearch & 命令启动 。
启动成功访问 htttp://ip:9200 如图 代表成功
2.启动kibana:
kibana下载解压
(windows环境下)修改 config下的kibana.yml文件 如图:打开kibana链接es的地址 保存
然后进入bin目录点击kibana.bat启动
linux环境下 同样修改kibana.yml文件,然后用新用户cd到bin目录下,用 ./kibana &命令启动
启动成功访问 http://ip:5601 如图
3.配置logstash日志收集(重点)
logstash下载解压:在bin目录或者config目录新建logstash.conf文件 ,文件内容:
input {
beats {
port => 5044
}
#tcp端口
tcp {
port => 4569
codec => "json"
}
}
#过滤
filter {
grok {
match => {
"message" => "(?\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\]\[(?[A-Z]{4,5})\]\[(?[A-Za-z0-9/-]{4,40})\]\[(?[A-Za-z0-9/.]{4,40})\]\[(?.*)"
}
remove_field => ["message"]
}
#过滤error和warn 只要这两个日志
if [level] !~ "(ERROR|WARN)" {
drop {}
}
}
output {
if[appname] != "" {
elasticsearch {
# 链接es地址
hosts => ["http://127.0.0.1:9200"]
index => "%{[appname]}-%{+YYYY.MM.dd}" #索引名称
}
} else {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}
}
保存后启动:
windous环境下cd到bin目录下,用 logstash -f logstash.conf命令启动 如果logstash.conf文件在config目录下用 logstash -f ./config/logstash.conf命令启动
linux环境下 cd到bin目录下:用./logstash -f logstash.conf命令启动
至此elk文件已配置完成,接下来在项目里面配置
1.引入lagstash maven依赖
net.logstash.logback
logstash-logback-encoder
5.3
2.在resources下新建logback.xml 文件 内容
${log.pattern}
127.0.0.1
4569
{"appname":"auth-service"}
然后启动项目进入kibana界面 1、2、3步骤查看
点击 index Management就会有刚设置的索引,索引es已经自动创建
点击 index patterns 然后 点击create index patterns
输入auth-service-,创建kibana日志的索引 然后点击next step
完成后:点击
红色框切换就可以看到错误日志