logstash消费redis中的日志数据保存到elasticsearch
实验环境
主机:156 IP:1921.68.121.156 角色:logstash
主机:158 IP:1921.68.121.158 角色:redis
主机:154 IP:1921.68.121.154 角色:elasticsearch集群
本次实验要用到
redis
logstash
elasticsearch
这三个的安装我就不讲了 ,我的其它博文有介绍了
elasticsearch集群的搭建我也有分享了
直接开始正题
redis的安装和数据我已经准备好了
因为上个博文我分享了将日志数据保存到redis,所以我的redis数据可以直接使用
学习的话最好看看我上一篇将日志数据导入到redis的博文配置出相同类型的数据,也可以根据配置修改自己想要的数据类型
在配置文件中添加下面两段代码
vim /etc/logstash/logstash.yml
node.name: node156
pipeline.id: main
然后编写logstash从redis中消费数据的配置文件
vim /etc/logstash/conf.d/fromRedis.conf
input {
redis {
host => "192.168.121.158"
port => 6379
#password => ""
db => 10
data_type => "list"
timeout => 3
key => "filebeat"
}
}
output{
#调试 将数据同时输出到控制台 方便查看
stdout {}
if "tomcat" in [tags] {
elasticsearch {
hosts => ["192.168.121.154:9200","192.168.121.155:9200","192.168.121.157:9200"]
manage_template => false
index => "elk-tomcat-log-access-%{+yyyy.MM}"
}
}
if "tomcat-java" in [tags] {
elasticsearch {
hosts => ["192.168.121.154:9200","192.168.121.155:9200","192.168.121.157:9200"]
manage_template => false
index => "elk-tomcat105-java-%{+yyyy.MM}"
}
}
}
配置写好就可以直接启动
logstash -f /etc/logstash/conf.d/fromRedis.conf
运行好以后去看redis的数据(运行比较久,因为这个软件不是像filebeat轻量级的)
192.168.121.158:6379[10]> LLEN filebeat
(integer) 83
192.168.121.158:6379[10]> LLEN filebeat
(integer) 0
192.168.121.158:6379[10]>
可以看到在没运行前redis是有数据的,运行以后redis中的数据就被消费了
同时可以看到控制台的输出信息
然后再去elasticsearch-head查看数据情况
再去kibana查看数据情况
可以看到同样也是没有问题的
elasticsearch-header和kibana的安装可以看我的其它博文,这里就不展示了
说明logstash成功消费了redis的数据并存入到elasticsearsh中