metricbeat监控logstash,上报数据到Elasticsearch,Kibana中查看Logstash node节点的Transport address地址为127.0.0.1:9600解决方案。
场景:使用logstash采集数据,但是需要在一旁静默监控logstash的运行性能状态,因此,引入metricbeat,用metricbeat对logstash监控,当metricbeat采集到logstash的性能指标数据后,上报到Elasticsearch,Elasticsearch再接入Kibana,最终在Kibana对logstash运行状态达到可视化观测。
但是,这种架构下,默认设置或者单独只配置metricbeat或logstash,在Kibana中看到的logstash节点传输地址即为127.0.0.1:9600,试想,如果监控的节点很多,都是127.0.0.1,完全不知道哪一个节点的情况,相当于没有监控,因此,合理的配置是每个节点通过IP地址区分,要达到这一目的,需要同时配置logstash和metricbeat。
(1)配置logstash:
在logstash.yml中,有一行参数配置:
api.http.host: 127.0.0.1
默认是注释掉的,把这一行注释去掉,启用这个配置,同时把127.0.0.1修改称正确的IP绑定地址,该IP地址将为最终在Kibana中看到的地址。
api.http.host: x.x.x.x
(2)配置metricbeat:
在logstash-xpack.yml中,有一行属性是关于hosts的配置,把hosts里面默认的localhost修改为和(1)中api.http.host一致的地址(端口不动):
hosts: ["x.x.x.x:9600"]
完成上述配置后,即可在Kibana中看到不同IP地址下,logstash的性能参数。