ELK stack 生产问题
问题1: filebeat 跨区跨防火墙连接kafka IP地址不通
由于kafka的三个IP地址做了NAT映射,filebeat 中配置连接IP为kafka映射后的地址,连接kafka时,kafka会返回给filebeat注册到zookeeper的对外地址,也就是KAFKA_ADVERTISED_LISTENERS
- 这里出现一个问题:1)当我们把kafka集群中的
KAFKA_ADVERTISED_LISTENERS
配置为映射前地址,kafka集群状态正常但是,filebeat连接时会收到kafka返回的映射前地址,所以filebeat无法连接,导致i/o wait; - 当我们把kafka集群中的
KAFKA_ADVERTISED_LISTENERS
配置为映射后地址,会导致KAFKA集群之间无法通讯,从而集群状态异常。
解决办法:
网络通讯不使用IP地址的方式,通过主机名和/etc/hosts映射的方式通讯,当把KAFKA_ADVERTISED_LISTENERS
配置为主机名后,kafka返回给filebeat的地址就是hostname:port,这里只要在filebeat主机中在/etc/hosts 添加映射后的IP和hostname关系便可以让filebeat获得hostname后依然可以找到映射地址。
问题2: 网络如何限流
解决办法:kafka consumer配额,Filebeat的压力感知功能可以在kafka限流时降低自身发送日志的速率。