我正在运行一组开发服务器(而不是生产)。我有一个ELK服务器,一个Web服务器和一个反向代理服务器。来自Web服务器和反向代理的数据已成功发送到ELK服务器上的Logstash。Kibana的filebeat发现确实显示了所有三台服务器的主机名。所以我知道,配置是正确的。
运行以下命令:两个远程服务器(Web服务器和反向代理服务器)上的sudo filebeat -e -c /etc/filebeat/filebeat.yml test output
都有以下响应:logstash: 192.168.1.6:5044... connection... parse host... OK dns lookup... OK addresses: 192.168.1.6 dial up... OK TLS... WARN secure connection disabled talk to server... OK
运行该命令查看filebeat服务的状态(在两个远程服务器上)反映了该服务是活动的,并且具有正在收集的日志数据的最新时间戳。我在15分钟的时间内这样做了几次,我可以在远程服务器上连续看到日志收集的新时间戳。
但由于某种原因,filebeat实际上向ELK服务器上的Logstash发送数据的唯一时间是在Web服务器和反向代理服务器重新启动时。只有一次,filebeat数据不是Logstash中的连续数据流。
所以我的问题是怎么可能测试filebeat输出显示成功连接,并且filebeat数据在elasticsearch中成功可见,Kibana discovery具有我的服务器的有效数据。但是,filebeat不是连续发送到logstash?
还有一件事事实上,ELK服务器本身确实有一个连续的filebeat数据流(ELK服务器的filebeat不断将数据流传输到logstash)。是其他服务器没有持续提供数据。
在Ubuntu服务器上运行Elasticstack版本7.17.13。ELK服务器是Ubuntu Server 20.04(最小),Web服务器是Ubuntu Server 20.04(最小),反向代理服务器是Ubuntu Server 22.04(最小)。它们都在同一个子网中。作为VMware平台中的虚拟服务器运行。
我已经尝试从web服务器和反向代理服务器中清除filebeat,并确保filebeat配置被删除。
然后重新安装filebeat并进行新的配置,将所有数据发送到ELK服务器上的logstash并测试filebeat输出。
一切看起来都很好,但我只看到一个数据流到logstash只有在重新启动服务器!Ughhhhh!
1条答案
按热度按时间cld4siwp1#
我已经确定了为什么Filebeat服务没有流到ELK logstash。这是一样简单的日志不存在要发送。显然,Ubuntu服务器(最小化)没有安装“rsyslog”,因此“auth.log,kern.log和syslog不存在。因此,在/var/log/路径中没有会随时间变化的日志。我认为这是有道理的,因为最小化的系统不期望用户登录到系统。
但是,我必须确保没有流氓用户进入系统,因此,我必须看到用户登录,用户sudo命令等,特别是在反向代理上。
所以我在Web服务器和反向代理服务器上运行
sudo apt-get install rsyslog
。现在,我看到从这些服务器到logstash的常规数据流,因为现在数据实际存在。还没有看到sudo命令。希望我能搞清楚。至少我现在有从远程服务器到Logstash的数据流。