springboot集成ELK日志分析平台(windows版)
1.elk是什么?
在安装ELK之前,建议大家先了解一下elk。
ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash 和 Kibana。
ElasticSearch简称ES,它是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。
Logstash是一个具有实时传输能力的数据收集引擎,用来进行数据收集(如:读取文本文件)、解析,并将数据发送给ES。
Kibana为 Elasticsearch 提供了分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度表格、图形。
2.搭建elk平台的环境配置
2.1开发环境:
win11,idea,jdk1.8
2.2ELK版本:
elasticsearch-7.11.1-windows-x86_64,logstash-7.6.1,kibana-7.11.1-windows-x86_64
值得一提的是elasticsearch的版本一定要和kibana的版本对应(很重要)不然会出现因为版本不兼容而引发的各种错误。开发人员一般使用jdk8,这就要求elasticsearch的版本在7.13以下。
我这里的elasticsearch和kibana版本都选择了7.11.1。
3.下载和安装
3.1下载:
我这里给出了下载路径,直接下载对应的版本即可
elasticsearch:https://www.elastic.co/cn/downloads/past-releases/
logstash:https://www.elastic.co/cn/downloads/past-releases/#logstash
kibana:https://www.elastic.co/cn/downloads/past-releases/#kibana
3.2安装:
elasticsearch:直接解压即可
logstash:解压压缩包,进入bin目录新建logstash.conf文件,文件内容如下
input {
tcp {
#模式选择为server
mode => "server"
#ip和端口根据自己情况填写,端口默认4560,对应下文logback.xml里appender中的destination
host => "127.0.0.1"
port => 4560
#格式json
codec => json_lines
}
}
filter {
#过滤器,根据需要填写
}
output {
elasticsearch {
action => "index"
#这里是es的地址,多个es要写成数组的形式
hosts => "127.0.0.1:9200"
#用于kibana过滤,可以填项目名称
index => "logstash_test"
}
}
kibana:解压文件即可
4.启动ELK
4.1ELK工作流程:
在启动ELK之前我们要先了解一下ELK的工作流程,这样才能更好的理解ELK的启动顺序。
ELK工作流程:一般都是需要在收集日志的服务上部署logstash,作为logstash shipper用于监控,过滤日志,将过滤后的日志发送给broker,然后logstash indexer将存放在broker中的数据再写入elasticsearch,elasticsearch对这些数据创建索引,然后kibana对其进行各种分析并以图表的形式展示。
有些时候,如果日志的收集量比较大,为了保证日志收集的性能和数据的完整性,logstash shipper和logstash indexer之间的缓冲器(broker)也经常用kafka来实现。
4.2ELK启动
通过ELK的工作流程我们不难得知,ELK的启动顺序为logstash>=elasticsearch>kibana,如果先启动logstash,logstash会轮询请求配置文件的elasticsearch,会报警告,所以我们更改启动顺序为elasticsearch>logstah>kibana。
4.2.1启动elasticsearch:
双击bin文件夹中的elasticsearch.bat即可
启动成功如下图所示
浏览器输入URL:http://localhost:9200/ 会输出json字符串
{
&#