elk系统搭建过程 本节不做过多累赘 后续如果有需要 再补。直接对接项目日志分析。
先建立springBoot项目,当然传统的ssm也是可以的,这里为了简单,用springBoot 做例子。
pom.xml 添加logstash依赖支持 完整的依赖如下
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
provided
org.springframework.boot
spring-boot-starter-test
test
net.logstash.logback
logstash-logback-encoder
5.1
在resource下新建logback-spring.xml文件 内容:
127.0.0.1:9601
{"appname":"springboot-log-elk"}
注意了,解释一下配置。
{"appname":"springboot-log-elk"}:这个东西会在logstash中的建立的 .conf文件中用到,也就是 elasticsearch中的索引前缀。后面会用到
在application.properties中 加入logback-spring.xml配置
logging:
config: classpath:logback-spring.xml
在项目中建立测试类 代码如下
@RunWith(SpringRunner.class)
@SpringBootTest
public class ElkApplicationTests {
private final static Logger log = LoggerFactory.getLogger(Test.class);
@Before
public void setUp() {
}
@org.junit.Test
public void test() {
log.warn("我是一个warn");
log.info("我是一个info");
log.error("我是一个error");
log.trace("我是一个trace");
log.debug("我是一个debug");
}
}
好了 这样 简单的springBoot就搭建起来了。再来说elk.
启动顺序 elasticsearch ,如果elasticsearch版本高于5.x elasticsearch 的elasticsearch-head 插件安装比较复杂。在启动elasticsearch-head
之后,需要做一个配置了。在logstash下自己建立的 .conf 文件中作如下改动
input {
tcp {
host => "localhost"
port => 9601
mode => "server"
tags => ["tags"]
codec => json_lines
}
}
output {
elasticsearch {
hosts => "127.0.0.1:9200"
index => "%{[appname]}-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug}
}
切记 这里的input 为logstash的输入源,也就是日志的输出源,所以host是localhost,port为自己配置的9601
output 为logstash的输出源,即elasticsearch 的输入源 所以hosts要与elasticsearch.yml中设置的一样
这里所提到的appname就是在logback-spring.xml中配置的那个名称 ,配置完毕
启动logstash 这里的启动我是在cmd 命令行里启动的 服务启动也是可以的 区别在于 cmd启动 可以直接看 输出内容 系统服务启动 就需要去logstash下的log文件夹下查找日志。
最后启动kibana
这样elk系统启动 启动springBoot
执行test,这个时候logstash的控制台会输出东西,log的日志里也可以查看
类似于
这时 在elasticsearch中查看
发现了一致 这时我们打开kibana界面 添加 Index Patterns 取名为 springboot-log* 创建
在discover中选择刚刚的springboot-log*
会出现以下界面
则表示成功。搜索 我是一个info
命中
搭建对接成功。到此结束。
不喜勿喷,如有瑕疵,请多指教,谢谢。