springcloud搭建elk日志管理
对于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" => "(?<date>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\]\[(?<level>[A-Z]{4,5})\]\[(?<thread>[A-Za-z0-9/-]{4,40})\]\[(?<class>[A-Za-z0-9/.]{4,40})\]\[(?<msg>.*)"
}
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依赖
<!--集成logstash-->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.3</version>
</dependency>
2.在resources下新建logback.xml 文件 内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<configuration debug="false">
<!-- 定义参数 -->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SS} [%thread] %-5level %logger{50} - %msg%n" />
<!-- 控制台打印设置 -->
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- logstash设置 -->
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<param name="Encoding" value="UTF-8"/>
<!-- logstash服务器ip -->
<remoteHost>127.0.0.1</remoteHost>
<!-- logstash tcp 端口-->
<port>4569</port>
<!-- encoder is required -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
<!-- // 索引名-->
<customFields>{"appname":"auth-service"}</customFields>
</encoder>
</appender>
<!-- 日志输出级别 logger 自动继承root 的appender, 如果logger 有自己自定义的appender,设置additivity="false" 表示不继承使用,防止日志重复打印 -->
<springProfile name="prod">
<!-- 生产环境时激活 -->
<logger name="com.adtec.credit" level="Info" additivity="false">
<appender-ref ref="consoleAppender" />
<appender-ref ref="logstash"/>
</logger>
<root level="Info">
<appender-ref ref="consoleAppender" />
<appender-ref ref="logstash"/>
</root>
</springProfile>
<springProfile name="test">
<!-- 测试环境时激活 -->
<logger name="com.adtec.credit" level="DEBUG" additivity="false">
<appender-ref ref="consoleAppender" />
<appender-ref ref="logstash"/>
</logger>
<root level="DEBUG">
<appender-ref ref="consoleAppender" />
<appender-ref ref="logstash"/>
</root>
</springProfile>
<springProfile name="dev">
<!-- 开发环境时激活 -->
<logger name="com.adtec.credit" level="DEBUG" additivity="false">
<appender-ref ref="consoleAppender" />
<appender-ref ref="logstash"/>
</logger>
<root level="DEBUG">
<appender-ref ref="consoleAppender" />
<appender-ref ref="logstash"/>
</root>
</springProfile>
</configuration>
然后启动项目进入kibana界面 1、2、3步骤查看

点击 index Management就会有刚设置的索引,索引es已经自动创建

点击 index patterns 然后 点击create index patterns

输入auth-service-,创建kibana日志的索引 然后点击next step

完成后:点击
红色框切换就可以看到错误日志

更多推荐
所有评论(0)