irpas技术客

springcloud搭建elk日志管理_菜鸟vs小林_springcloud日志管理

大大的周 5466

对于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?

完成后:点击

红色框切换就可以看到错误日志?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #springcloud日志管理