这两天在搞elk的时候,filebeat中指定输出日志至Broker(此处Broker采用redis做为缓存),可是redis中却没有内容,因此就开始排查来redis
filebeat采用RPM安装的方式来的。数据库
一、首先是检查filebeat的配置文件是否有问题:缓存
注意:这个配置文件的这个红色方框中的内容是我本身定义的,是在网上搜的一个例子来编写的。不过事实上咱们能够在/etc/filebeat这个目录下的filebeat.reference.yml按照这个文件中来进行仿写,可是最终要写到filebeat.yml文件中才算生效。这是filebeat服务指定的配置文件。日志
也出现过一个问题就是filebeat服务老是启动不了,老是失败,报错也是跟服务没有关系的一个错误,后来修改了这个配置文件成功了,咱们这里是将日志收集在redis中,除了redis以外的其余broker都要注释掉。blog
二、接下来是指定redis配置文件参数集群
其中在redis中主要指定的参数是:bind 0.0.0.0 以及protected-mode no 这两项,要修改为如今的这个样子才行。或者说把bind 这一行注释掉也行。配置
三、这个时候再重启filebeat服务和redis服务。今天出现的状况是redis里面的数据库“2”里面什么文件都没有,查询不到filebeat收集的信息。file
此时没有收集到信息我就去查看这两个服务的日志文件,redis的日志里面没有报错,初始化也成功了,因此没有问题。这个时候就去查看filebeat服务elk
四、filebeat服务的日志文件在/var/log/filebeat目录下,主要有如下几个:logstash
这里查看filebeat这个文件,其余的都是每次重启后都会自动生成一个filebeat文件名字加一个数字的这个文件。主要看这里的第一个文件“filebeat”
五、咱们从这个文件的最后几行获取error信息便可,就能定位到错误在哪里,不过我本身定位了好几回才找到。若是最后几行长时间不报错的状况下,说明redis能够创建链接成功。若是报redis 的错误refuse等,说明redis拒绝外部IP链接,这个时候要去配置redis的配置文件便可。但是对我来讲filebeat没有报错可是redis数据库就是没有信息,后来我就在filebeat服务的配置文件里面修改了数据库,此次修改成“4”,(这是数据库的名字),这个时候再重启filebeat,,竟然成功了,好吧,估计是我对redis不太熟形成的。这个时候filebeat的日志文件也没有报错,再去查看数据库,发现里面有东西了。
六、今天看到一篇文章讲的是logstash从redis中取出数据后,redis里面也是没有数据的,这个时候其实集群是没有错误的,只是被logstash取出数据放在了es里面。因此你们没必要惊慌。
----------------------------------------------------------更新---------------------------------------------------------------
此刻3月16日,今天作个实验,是把filebeat的输入端中的-type想自定义修改为errorlog,结果没有输出日志,后来才发现,这个type的内容是filebeat固定好的,不能修改。
出问题最好查日志。精准问题所在,及时解决问题。