一 方案背景
通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。开源实时日志分析ELK平台能够完美的解决日志收集和日志检索、分析的问题,ELK就是指ElasticSearch、Logstash和Kiabana三个开源工具。
因为ELK是可以跨平台部署,因此非常适用于多平台部署的应用。
二 环境准备
1. 安装JDK1.8环境
2. 下载ELK软件包
- logstash: https://artifacts.elastic.co/downloads/logstash/logstash-5.5.0.zip
- elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
- kibana: https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-windows-x86.zip
分别解压下载的软件,elasticsearch,logstash,kibana 可以放在一个统一文件夹下
三 部署
1.配置logstash
在logstash文件夹的下bin目录创建配置文件logstash.conf ,内容如下:
input {
# 以文件作为来源
file {
# 日志文件路径
path => "F: estdp.log"
}
}
filter {
#定义数据的格式,正则解析日志(根据实际需要对日志日志过滤、收集)
grok {
match => { "message" => "%{IPV4:clientIP}|%{GREEDYDATA:request}|%{NUMBER:duration}"}
}
#根据需要对数据的类型转换
mutate { convert => { "duration" => "integer" }}
}
# 定义输出
output {
elasticsearch {
hosts => ["localhost:9200"] #Elasticsearch 默认端口
}
}
在bin目录下创建run.bat,写入一下脚本:
logstash.bat -f logstash.conf
执行run.bat启动logstash。
2. 配置Elasticsearch
Elasticsearch默认端口9200,执行bin/elasticsearch.bat即可启动。
启动后浏览器访问 127.0.0.1:9200 ,出现以下的json表示成功。
3.配置kibana
Kibana启动时从文件kibana.yml读取属性。默认设置配置Kibana运行localhost:5601
。要更改主机或端口号,或者连接到在其他机器上运行的Elasticsearch,需要更新kibana.yml
文件。
执行bin/kibana.bat启动Kibana。
四 测试
1.创建Index
用浏览器打开http://localhost:5601/ 系统会提示创建Index,可以按时间创建Index。在Discover选项卡上你会看到你刚刚在dp.log中输入的内容。
![](https://images2017.cnblogs.com/blog/881326/201710/881326-20171017165728646-379544246.png)
2. 检索日志
快速检索定位。
![](https://images2017.cnblogs.com/blog/881326/201710/881326-20171017165729474-1985923792.png)
3. 日志分析
新建Visualize,选择Line(当然其他视图都可以)。然后选择数据源。
![](https://images2017.cnblogs.com/blog/881326/201710/881326-20171017165730115-134957383.png)
X轴选择时间,Y轴分别为访问接口的最大耗时和平均耗时。
![](https://images2017.cnblogs.com/blog/881326/201710/881326-20171017165730943-1374692434.png)
创建Dashboard视图,可以将相关图标放在一个视图,方便分析。
![](https://images2017.cnblogs.com/blog/881326/201710/881326-20171017165731834-1619823877.png)