终于,体验了一把,搭建单机版ELK(日志检索分析服务)。前面随笔记录了logstash和kibana,elasticsearch的各自单独的简单使用示例,现把三剑客串成一线吧o(∩_∩)o
场景:楼主想把ide中,运行的spring boot项目的running日志放到 es中,并使用kibana去查询。
流程:
一、首先要有一个应用服务。。。然后配置log4j2的配置,如下
<Configuration status="info" monitorInterval="10">
<properties>
<property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %-30.30C{1.} : %m%n</property>
</properties>
<appenders><!--控制台输出-->
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${log.format}" />
</Console>
<File name="running" fileName="${logpath}/${log.name}.log" append="false">
<PatternLayout pattern="${log.format}"/>
</File>
<!--配置logstash的监听端口,应用日志以udp通讯协议输出到该端口下-->
<Socket name="logstash-tcp" host="127.0.0.1" port="4562" protocol="UDP">
<PatternLayout pattern="${log_pattern}" />
</Socket>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="running"/>
<appender-ref ref="logstash-tcp" />
</root>
</loggers>
</Configuration>
二、配置logstash配置,端口:4562,与上面配置端口一致,elasticsearch端口:9200
三、启动三剑客。。启动应用服务。。访问应用服务接口,应用日志输出到控制窗口,如下:
四、在management创建index pattern。。然后再discover查看,输入查询关键字 “双人”。 es会把关键字做拆分,分词进行数据匹配,如下
五、试想,如果保存的是订单的日志,是不是可以输入关键字:orderNo去查询呢?检索服务打印的关于某条订单的全部日志信息。。。
六、总结
①迟些尝试扩展es为集群节点,据说不同的分片,对检索的数据有不同影响。
②该到时候使用Java 接入 elasticsearch 的restful API了,领略elasticsearch 作为搜索引擎的风采^_^
待续。。