Linux部署ELK,以及可能遇到的问题在(一)中已经阐明,这里不再做阐述。
前景:搭建一个普通的spring-boot项目,这个工程可以是本地工程,可以是部署在Linux服务器上的。本地的使用服务器的公网ip地址进行传输就好了。
1. Spring-boot集成Logstash
-
配置spring-boot日志文件
在配置文件中加入以下配置
配置logback.xml <!-- 输出到logstash --> <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <!-- logstash服务地址,以及端口号 --> <destination>xx.xx.xx.xx:8089</destination> <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/> </appender> <!-- 陈列日志级别时,LOGSTASH也需要配置 --> <root level="info"> <appender-ref ref="LOGSTASH"/> </root>
-
配置logstash文件
新建一个配置文件,在自己喜欢的目录夹。进入bin目录夹
nohup ./logstash -f ./配置文件目录夹/xxxx.conf & 启动logstash# 输入来源 input{ tcp{ type => "system-syslog" port => 8089 } } #输出到elastcisearch output{ elasticsearch{ hosts => ["127.0.0.1:9200"] #elasticsearch服务地址 action => "index" index => "matthiola-log-%{+YYYY-MM-dd}" #以天为单位创建的索引 } }
运行测试代码,kibana可视化界面过滤后查看效果
Logger log = LoggerFactory.getLogger(Test.class); @Test //junit public void test() { log.debug("好了,即可测试222"); log.info("好了,即可测试222"); log.error("好了,即可测试222"); log.warn("好了,即可测试222"); }