Filebeat 将日志发送到所有 logstash 实例

Filebeat sends logs to all logstash intstances

我正在进行安装 ELK 以管理来自不同应用程序的所有日志的概念证明。 我拥有的是 Elasticsearch (9200 9201)、Kibana (5601 5602) 和 Logstash (5044 5045) 的两个实例和一个充当反向代理的 nginx 和两台不同的机器 运行 不同的应用程序,并通过将它们的日志发送到 Logstash Filebeat.

我想给用户设置权限,让一些用户可以访问机器A的日志,一些用户可以访问机器B的日志,但是当我在两台机器上启动Filebeat时,他们每个人都应该将他们自己的日志发送到 logstash 中的不同端口,因为它是这样配置的,但是当我访问 kibana(两个端口)时我得到的是两台机器的所有日志。

是否可以在安装的不同实例中拆分日志?

提前致谢。

当您 运行 同一主机上的两个 Elasticsearch 实例时,它们将自动形成一个集群,除非您更改配置以防止这种行为。

您可以通过运行以下命令列出集群中的节点。如果列出的节点不止一个,那么您的两个节点已形成一个集群。

curl -XGET 'localhost:9200/_cat/nodes?v&pretty'

您需要在每个节点的配置中设置唯一的 cluster.name 值。默认值为 elasticsearch。当两个节点相互发现并且它们的 cluster.name 相同时,它们形成一个集群。

更改两个集群名称并给它们不同的名称是正确的,此外为了保持两个节点独立,有必要编辑 filebeat 模板,因为默认情况下它指向 elasticsearch:9200。