前言
ELK已经是一套成熟的日志解决方案,虽然出现了好久,今日才终于研究了一下,不过是在windows平台上安装的。
搭建步骤
- 下载软件
- 安装软件
- 修改配置文件
- 启动软件
- 集成测试
下载软件
首先从官网下载三个软件。我下载的是 6.2.3版本的,最好都统一,否则会出现小问题。官网地址:https://www.elastic.co/
安装软件
分别将上文中的ELK三个压缩包解压到相应的文件夹下。(我的电脑文件夹是C:/elk/)
由于logstash和kibana都需要配置elasticsearch的server url,所以先配置了elasticsearch。
打开 elasticsearch-6.2.3/config 文件夹,打开elasticsearch.yml,配置一下基本信息:
cluster.name: <集群名称>
node.name: <当前节点名称>
network.host: <本机IP或者localhost>
http.port:
使用cmd命令安装elasticsearch service
安装完成之后启动es服务。打开 host:9200 测试一下es是否安装成功。
下面安装logstash。
进入到 C:\elk\logstash-6.2.3\config 文件夹下新建log.config文件。这里我选择的输入源是file,然后filter处理日志中的json,output到elasticsearch和控制台。log.config文件配置如下:
input {
file {
type => "log"
path => "C:/logs/*.log"
codec => plain{
charset => "UTF-8"
}
start_position => "beginning"
}
}
filter {
ruby {
将@timestamp转换为服务器时间,否则会是UTC时间(慢8个小时)
code => "event.timestamp.time.localtime"
}
json{
解析日志中的json格式到log字段,移除message字段和host
source => "message"
target => "log"
remove_field => ["message"]
remove_field => ["host"]
}
} output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "logs"
}
}
下面打开cmd运行命令:
等待启动即可,如果报错了,看一下报错信息即可。logstash能正常解析日志。
最后安装kibana。
同样进入 config文件夹。配置kibana.yml 配置elasticsearch.url和host.name即可。端口默认是5601。
cmd bin/kibana 启动
打开浏览器,正常出现kibana界面。
到目前为止,ELK已经基本配置完了。
集成测试
因为 logstash 配置的是采集 C:/logs文件夹下的日志文件。写一个简单的程序写入日志,日志内容如下:
正如上文中logstash输出一样,logstash正常采集到了日志,并且解析了日志中的json串。下面打开elasticsearch看一下是否有数据
如上图所示,是有数据的,最后使用kibana配置一下index即可。(由于kibana我也不太会用,所以不做详细介绍了)
总结
总体而言安装过程中的配置过程还不是很难,但是要做到很复杂的日志处理或者其他的功能那么就需要下功夫了。这里我只是简单的做了一个搭建工作。想要深入了解ELK体系的使用还是需要下功夫的!!
另外,logstash的 input output filter 配置还是有很多门道的,相当复杂,本来我试了用filebeat作为input,但是老是报 Invalid Frame Type 后来我就没在理他了,大概日志文件的编码不对吧(我也不清楚)。
以上就是windows下搭建简单的ELK的具体过程了。如有问题或者不当之处,欢迎留言咨询。