SpringBoot+ELK日志系统搭建
2021-02-16 09:18
标签:修改 elk node framework ges 文档 pip console std “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。 SpringBoot可以通过集成logstash-logback-encoder插件收集日志并写入到ELK中。当然如果你使用的是log4j2或其他日志框架,只需要集成对应插件即可。 本文采用docker-compose方式部署ES+Logstash+Kibana 新建项目目录 创建docker-compose文件,内容如下: 新建elasticsearch目录 将elasticsearch配置文件放在es文件夹中,es-single.yml文件内容如下: 完成之后回到项目根目录启动ELK 安装过程由于网络原因可能会比较慢或者安装失败,可以参考手动安装文档,采用本地打包安装方式。如果无法正常克隆git仓库的话,可以选择使用码云极速下载 下载完成之后,解压到指定目录 其他插件可以根据实际需要安装,然后重启容器,观察是否加载ik分词器 logstash.conf 重启logstash elasticsearch启动可能较慢,kibana刚启动的时候连接不上,只需要等待几分钟,等elasticsearch完全启动之后即可。 在pom文件中引入logstash-logback-encoder 添加日志配置文件logback-spring.xml 配置文件中的destination值根据实际环境修改,然后启动SpringBoot项目,通过kibana查看日志。 首先通过Management创建index pattern,通过logstash.conf文件知道,日志收集格式是log-%{+YYYY.MM.dd},index patter即为log-*,创建好之后通过Discover菜单查看日志。 至此SpringBoot+ELK环境搭建完成。 SpringBoot+ELK日志系统搭建 标签:修改 elk node framework ges 文档 pip console std 原文地址:https://www.cnblogs.com/thisismartin/p/12709269.html一、ELK是什么
二、ELK搭建
$ mkdir elk-demo
version: ‘3.5‘
services:
elasticsearch:
container_name: elk-es
image: elasticsearch:6.5.0
restart: always
ports:
- 9200:9200
- 9300:9300
environment:
- TZ=Asia/Shanghai
volumes:
- ./es/data:/usr/share/elasticsearch/data
- ./es/es-single.yml:/usr/share/elasticsearch/config/elasticsearch.yml
kibana:
container_name: elk-kibana
image: kibana:6.5.0
restart: always
ports:
- 5601:5601
environment:
- elasticsearch.hosts=http://elasticsearch:9200
depends_on:
- elasticsearch
logstash:
container_name: elk-logstash
image: logstash:6.5.0
restart: always
ports:
- 5044:5044
- 9600:9600
$ mkdir -p es/data
cluster.name: elasticsearch-single
node.name: es-single-node-1
network.bind_host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
action.auto_create_index: true
$ docker-compose up -d
安装ik分词器
$ docker exec -it elk-es /bin/bash
$ cd plugins/
# 根据elasticsearch选择插件版本,当前使用6.5.0版本
$ wget http://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.0.zip
$ mkdir elasticsearch-analysis-ik
$ unzip elasticsearch-analysis-ik-6.5.0.zip -d elasticsearch-analysis-ik
$ docker restart elk-es
$ docker logs elk-es | grep ik
配置logstash
$ docker exec -it elk-logstash /bin/bash
$ cd /usr/share/logstash/config/
# 修改xpack.monitoring.elasticsearch.url值为http://elasticsearch:9200
$ vi logstash.yml
# 修改logstash.conf
$ cd /usr/share/logstash/pipeline/
$ vi logstash.conf
input {
tcp {
port => 5044
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "log-%{+YYYY.MM.dd}"
}
stdout {
codec => rubydebug
}
}
$ docker restart elk-logstash
# 观察日志是否连接es正常
$ docker logs -f elk-logstash
三、SpringBoot接入
文章标题:SpringBoot+ELK日志系统搭建
文章链接:http://soscw.com/index.php/essay/56025.html