elasticsearch,kibana,logstash搭建见上文
1.配置spring boot项目
pom文件
<!-- logback 推送日志文件到logstash --> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>6.5</version> </dependency>
logstash.xml文件
<!--logstash配置--> <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>192.168.xx.xx:5000</destination> <!-- 日志输出编码 --> <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> <providers> <timestamp> <timeZone>UTC</timeZone> </timestamp> <pattern> <pattern> { "logLevel": "%level", "serviceName": "${springAppName:-}", "pid": "${PID:-}", "thread": "%thread", "class": "%logger{40}", "rest": "%message" } </pattern> </pattern> </providers> </encoder> <!--<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>--> </appender>
新增以上代码
注意:
192.168.xx.xx:5000 中ip为logstash服务器的ip,端口号是向logstash发送请求的端口(需要与下文logstash监控配置相同),随便指定,且端口不能被占用,并开启防火墙
<root level="info"> <appender-ref ref="CONSOLE" /> <appender-ref ref="INFO_FILE" /> <appender-ref ref="LOGSTASH"/> </root>
注意:
<appender-ref ref="LOGSTASH"/> 一定要配置 否则无法输出。
注:指定指定logstash.xml需要配置 不多说
2.配置logstash
在/logstash/bin中新建log_to_es.conf 新增配置
input{ tcp { mode => "server" host => "0.0.0.0" port => 5000 监控spring boot发来的请求 与spring boot中端口号相同 且不能有其他端口占用 codec => json_lines } } output{ elasticsearch{ hosts=>["192.168.xx.xx:9200"] es地址 index => "index-%{+YYYY.MM.dd}" 索引名称 } stdout{codec => rubydebug} }
修改/logstash/config下的logstash.yml 如果
http.host: "192.168.49.14"
3.查看结果
访问kibana 按照图中点击 查看索引是否多出来监控索引即可判断是否成功