
大家好,又见面了,我是你们的朋友全栈君
日志对于排查错误非常重要,使用linux命令awk sed grep find等命令查询日志非常麻烦,而且很难做数据分析,使用免费开源的ELK可以支撑大规模的日志检索,本文将一步步教怎么快速搭建一个window版本的ELK日志收集系统。
注意同一系列的版本要一样,防止出现版本不兼容问题,本文使用7.16.0版本,在window系统演示
访问地址为:https://www.elastic.co/cn/downloads/past-releases
点击Donload下载

跳转到访问地址为: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-16-0
可以选择window或者linux版本,本文下载window版本

点击Donload下载

跳转到访问地址为: https://www.elastic.co/cn/downloads/past-releases/logstash-7-16-0
选择window版本


访问地址为:https://www.elastic.co/cn/downloads/past-releases/kibana-7-16-0
选择window版本

跳转到访问地址为:https://www.elastic.co/cn/downloads/past-releases/filebeat-7-16-0

选择window版本

由于7.16.0版本需要依赖java jdk11版本,需要将本地java环境切换到jdk11
访问网站: http://www.codebaoku.com/jdk/jdk-oracle-jdk11.html
点击下载

全部下载完解压

使用win+X键,并选择Windows终端


输入
cd F:\soft\elk
dir 
打开window搜索框搜索环境变量,打开编辑系统环境变量

点击环境变量

添加JAVA_HOME路径
F:\soft\elk\jdk-11.0.13_windows-x64_bin\jdk-11.0.13
将java执行路径添加到Path变量中,输入
%JAVA_HOME%\bin
%JAVA_HOM%\jre\bin
新打开一个shell(一定要重新打开一个新的shell才会加载刚配置过的jdk11环境变量)
并执行命令,可以看到jdk11提示输出,表示jdk11安装成功
java -version
启动新的shell,并执行命令
cd F:\soft\elk
.\elasticsearch-7.16.0-windows-x86_64\elasticsearch-7.16.0\bin\elasticsearch.bat如果本地使用localhost访问,不需要修改配置文件,否则需要修改如下
network.host: 0.0.0.0

可以看到elasticsearch执行成功

启动新的shell,并执行命令
cd F:\soft\elk
.\kibana-7.16.0-windows-x86_64\kibana-7.16.0-windows-x86_64\bin\kibana.bat
可以看到执行成功

访问网站,可以看到启动成功
http://localhost:5601/app/home#/

点击Explore on my own

在logstash配置文件中,新增文件名log.conf

内容如下:
输入指定通过5044端口使用Filebeat接收数据。
指定在elasticsearch中创建test的索引,将数据输出到test索引中。
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "test"
#user => "elastic"
#password => "changeme"
}
}启动新的shell,并执行命令
cd F:\soft\elk
.\logstash-7.16.0-windows-x86_64\logstash-7.16.0\bin\logstash.bat -f D:\conf\logstash-8.1.0-windows-x86_64\logstash-8.1.0\config\log.conf
可以看到启动成功

新建日志log测试日志文件夹

进入log文件夹,创建data.log文件

内容为
[08/Nov/2019:11:40:24 +0800] tc-com.net - - 192.168.12.58 192.168.12.58 192.168.15.135 80 GET 200 /geccess/services/capability/L6JN4255 ?pageIndex=1&pageSize=2000&vehicleType=0 21067 17 totalTime:54ms
[08/Nov/2019:11:40:24 +0800] tc-com.net - - 192.168.12.58 192.168.12.58 192.168.15.135 80 GET 200 /geccess/services/capability/L6JN4255 ?pageIndex=1&pageSize=2000&vehicleType=0 21067 17 totalTime:63ms
[08/Nov/2019:11:40:24 +0800] tc-com.net - - 192.168.12.58 192.168.12.58 192.168.15.135 80 GET 200 /geccess/services/capability/L6JN4255 ?pageIndex=1&pageSize=2000&vehicleType=0 21067 17 totalTime:75ms
编辑filebeat文件

将enable改成true,同时设置日志路径为
F:\soft\elk\log\*.log
将filebeat.config.modules的enable改成true

将输出到elasticsearch中使用#注释去掉,并将输出到logstash注释删除掉

cd F:\soft\elk
.\filebeat-7.16.0-windows-x86_64\filebeat.exe -e -c F:\soft\elk\filebeat-7.16.0-windows-x86_64\filebeat.yml
可以看到filebeat运行成功

访问网站,并点击左上角
http://localhost:5601/app/home#/

左侧向下滑动,选中management,并点击Dev Tools

在Console输入下面命令
GET /_cat/indices?v在点击绿色执行按钮,可以看到,索引test已经创建

输入下面命令,查询索引test的数据,可以看到日志数据已经成功上传
GET test/_search
{
"query": {
"match_all": {
}
}
}
点击Stack Management

选择Index Patterns

输入索引名称test,可以看到有匹配的,选择时间字段为@timestamp,点击Create Index pattern

看到创建成功

选择Discover

可以看到默认为test索引

选择时间范围大一点

点击Update

可以看到数据完全被加载出来

通过关键词totalTime搜索,点击Refresh,可以看到下面搜索高量的部分

可以看到一个简单的日志收集系统搭建成功,我们可以根据这套系统收集日志,并做分析,本文只是针对window版本的介绍,后续会在linux版本搭建一套,步骤基本一致,更多实用搜索功能敬请期待。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179082.html原文链接:https://javaforall.cn