在上一章里,我们学会了如何搭建ELK实时日志分析平台,也知道了ELK是由Elasticsearch+logstash+kibana组合而成,但是其实这里面是有一个弊端的,那就是logstash收集日志运行依赖于java环境,对内存资源和cpu的占用较大,所以还是有待优化的。而今天,日月在这里就教大家如何优化这一点,那就是使用filebeat去收集日志,并使用redis作为中转,filebeat运行无需依赖于java环境,对内存资源和cpu几乎没多少消耗,并且使用redis作为中转也可以提高并发性能。于是filebeat+reids+ELK应运而生。
OK,我们话不多说,来开始我们的ELK改造。
1、下载filebeat
下载地址:https://www.elastic.co/downloads/beats
解压至F盘
2、filebeat配置文件
新建 filebeat2.yml
#=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log
enabled: true
paths:
- D:/testlog.log
encoding: utf-8
scan_frequency: 10s
harvester_buffer_size: 16384
max_bytes: 10485760
tail_files: true
#============================= Filebeat modules ===============================
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
#==================== Elasticsearch template setting ==========================
setup.template.settings:
index.number_of_shards: 3
#============================== Kibana =====================================
setup.kibana:
#-------------------------- reids output ------------------------------
output.redis:
hosts: ["127.0.0.1:6379"]
key: filebeat
timeout: 5s
max_retries: 3
3、下载安装redis
redis的下载安装我这里就不在陈述了,大家参考 springBoot集成redis 即可
我们先启动redis
4、启动filebeat
doc下进入filebeat安装目录,执行 filebeat -c filebeat2.yml
启动后会在安装目录下生成data和logs两个文件夹,我们去logs里面查看启动日志
可以看到,启动成功。
5、修改logstash配置文件
logstash-sample.conf
# For detail structure of this file
# Set: https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.html
input {
redis {
host => "127.0.0.1"
port => "6379"
data_type => "list"
key => "filebeat"
type => "redis-input"
}
}
filter {
}
output {
# For detail config for elasticsearch as output,
# See: https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html
elasticsearch {
action => "index" #The operation on ES
hosts => "127.0.0.1:9200" #ElasticSearch host, can be array.
index => "chenqilog" #The index to write data to.
}
}
将input指向redis
6、依次启动Elasticsearch、logstash、kibana
启动es,在bin目录下双击elasticsearch.bat文件即可
启动logstash
进入logstash的bin目录
输入 logstash -f ../config/logstash-sample.conf
启动kibana
双击运行bin目录下的 kibana.bat
7、浏览器访问 localhost:5601
可以看到,成功查询到了之前的20条日志,我们继续往日志文件里添加10条
再次刷新kibana
说明,filebeat成功的收集到了日志内容,并通过redis传输到logstash,在保存至elasticsearch中,最后由kibana查询展示
至此,filebeat + redis + ELK 搭建完成
如果该文章有帮助到您,就留言点个赞吧!您的支持与肯定是我持续更新最大的动力。