## ELK日志分析平台-logstash搭建
本文住要讲解logstash搭建和配置的过程,文章采用的win平台,Linux搭建过程可以百度,基本跟win是一样的。
*****
1. 准备
:-: 首先需要下载ELK的三大套件,Elasticsearch、kibana、logstash[官方地址](https://www.elastic.co/cn/downloads/)。但是由于官方地址下载太慢,所以可以使用国内的镜像去下载。[华为镜像](https://mirrors.huaweicloud.com/)
2. 搭建
本文作者的版本选择的7.6.0版本,太高版本的变的太复杂,所以就没选择高版本的。

* 解压elasticsearch、kibana、logstash的zip。
* 修改Kibana的配置(config/Kibana.yml)

配置自己的elasticsearch IP地址。
* logstash添加elasticsearch和索引配置(config/logstash.conf)
解压出来的是没有这个logstash.conf文件的。需要自己去添加。
粘贴下边的代码:
```
input {
tcp {
mode => "server"
host => "localhost"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => "localhost:9200"
index => "spark-logstash-%{+YYYY.MM.dd}"
}
}
```
* 启动elasticsearch

* 启动kibana

* 启动logstash 使用命令启动
.\logstash.bat -f ..\config\logstash.conf

3. 配置
* 项目中配置
在bootstrap.yml 添加 logstash 服务器地址

在日志logback-spring.xml 中添加logstash配置


代码如下
```
~~~
<!-- logstash日志收集系统 -->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--配置logStash 服务地址-->
<destination>${logstashService}</destination>
<!-- 日志输出编码 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>UTC</timeZone>
</timestamp>
<pattern>
<pattern>
{
"logLevel": "%level",
"serviceName": "${spring.application.name:-}",
"pid": "${PID:-}",
"thread": "%thread",
"class": "%logger{40}",
"rest": "%message"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
~~~
```

* kibana中配置


如果输入没有这个索引,就是你的logstash 服务器搭建的有问题,自行检查配置。

**如果是Linux一定要注意ip地址不能错误。如果你有其他的需求,请自定百度找conf中的配置**
