日志对于排查错误非常重要,使用linux命令awk sed grep find等命令查询日志非常麻烦,而且很难做数据分析,使用免费开源的ELK可以支撑大规模的日志检索,本文将一步步教怎么快速搭建一个window版本的ELK日志收集系统。
下载elasticsearch、logstash、kibana、filebeat注意同一系列的版本要一样,防止出现版本不兼容问题,本文使用7.16.0版本,在window系统演示
下载elasticsearch访问地址为:https://www.elastic.co/cn/downloads/past-releases
点击Donload下载
跳转到访问地址为: https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-16-0
可以选择window或者linux版本,本文下载window版本
下载logstash点击Donload下载
跳转到访问地址为: https://www.elastic.co/cn/downloads/past-releases/logstash-7-16-0
选择window版本
下载kibana访问地址为: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
下载filebeat选择window版本
下载jdk11由于7.16.0版本需要依赖java jdk11版本,需要将本地java环境切换到jdk11
访问网站: http://www.codebaoku.com/jdk/jdk-oracle-jdk11.html
点击下载
全部下载完解压
安装jdk11、elasticsearch、kibana、logstash、filebeat 安装jdk11使用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
启动elasticsearch
启动新的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执行成功
启动kibana启动新的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在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
可以看到启动成功
启动filebeat新建日志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运行成功
kibana查询日志 命令查询创建的索引数据访问网站,并点击左上角
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版本搭建一套,步骤基本一致,更多实用搜索功能敬请期待。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)