一、第一步在docker上安装ELK
1、创建目录
mkdir /home/xijie/app/myelk
2、从github上拉取部署elk所需资料
$ git clone https://github.com/deviantony/docker-elk.git
下载完毕的资料目录如下:
3、进入刚下载的文件夹内
$ cd docker-elk
4、通过docker-compose创建并启动容器
$ docker-compose up -d
5、这个时候通过docker ps可以看到logstash、elasticsearch、kibana容器已经创建并且启动。
可以看该elk容器的默认端口为:
- 5000: Logstash TCP input.
- 9200: Elasticsearch HTTP
- 9300: Elasticsearch TCP transport
- 5601: Kibana
Kibana的web入口:
http://localhost:5601
6、接下来进行参数配置,来实现springboot通过ELK查看日志信息。
修改logstash的配置,
进入logstash配置文件所在目录:
cd /home/xijie/app/myelk/dokcer-elk/logstash/pipeline
打开配置文件:
vim logstash.conf
修改内容如下:
input{ tcp { mode => "server" port => 5000 codec => json_lines tags => ["data-http"] }}filter{ json{ source => "message" remove_field => ["message"] }}output{ if "data-http" in [tags]{ elasticsearch{ hosts=> ["elasticsearch:9200"] index => "data-http-%{+YYYY.MM.dd}" } stdout{codec => rubydebug} }}
注:
input标签为logstash进数据接口,filter标签为数据过滤器,output为数据出去接口。
input标签使用的是tcp,说明springboot客户端需要将日志传递到该接口,该接口正是logstash服务器接口。
filter将message字段去掉,只是为了当展示springboot的http请求接口的数据更加规整,而不是全部展示在message字段中。
output标签将数据传递给了elasticsearch,这里使用了if,当判断所出数据为所指定tag,才进行下面的配置。特别要注意index的配置,该值在kibana中需要使用,这里指定的index值为:data-http,要注意该值与tag是没有关系的,要注意区分。
进入docker-elk目录
/home/xijie/app/myelk/docker-elk
然后重启
docker-compose restart
关于elasticsearch、logstash、kibana的配置都在对应目录下的config文件夹中的.yml文件中,只需要修改该文件即可。
二、springboot日志系统配置logstash
1、pom中配置logstash
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.2</version>
</dependency>
2、application.properties文件中配置如下:
logstash日志收集地址,即logstash服务器地址
logstash.ip_port=172.168.0.165:5000
日志保存级别
logging.all.level=info
日志保存地址,该值与logstash没关系,是当日志存在本地File文件内的文件夹地址
logging.levelfile=/home/logs/data-center-service
2、logback.xml文件内容如下,该文件在resources目录
文章地址:https://blog.csdn.net/zhizhuodewo6/article/details/86630712