Nginx Filebeat将日志发送到所有日志存储站

Nginx Filebeat将日志发送到所有日志存储站,nginx,logstash,elastic-stack,filebeat,Nginx,Logstash,Elastic Stack,Filebeat,我正在进行概念验证,安装ELK来管理来自不同应用程序的所有日志。 我拥有的是Elasticsearch(9200 9201)、Kibana(5601 5602)和Logstash(5044 5045)的两个实例,以及一个作为反向代理的nginx和两台运行不同应用程序并通过Filebeat将其日志发送到Logstash的不同机器 我想为用户设置权限,这样一些用户可以从机器A访问日志,而另一些用户可以访问机器B中的日志,但是当我在两台机器上启动Filebeat时,他们每个人都应该将自己的日志发送到l

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

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

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


提前感谢。

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

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

curl-XGET'localhost:9200/\u cat/nodes?v&pretty'


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

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

您是在尝试运行Elasticsearch群集,还是在尝试运行两个独立的Elasticsearch节点,其中来自机器A的数据流向一个节点,来自机器B的数据流向另一个节点?正如您在问题中所述,它们是两个独立的节点。它的目的是将对不同环境的访问划分给用户。我已经做了更改,但我仍然在同一Kibana实例中从机器A和机器B获取日志。在进行配置更改之前,
GET\u cat/nodes
响应的输出中是否列出了两个节点?那么在进行更改之后呢?更改之前已在文件elasticsearch.ymlbe中进行了更改:curl-XGET'localhost:9200/_cat/nodes?v&pretty'host ip heap.percent ram.percent load node.role master name 127.0.0.1 20 97 0.03 d*node-1 127.0.0.0.1 127.0.1 22 970.03 d m node-2更改后:curl-XGET'localhost:9200/_cat/nodes?v&pretty'主机ip堆百分比ram.percent load node.role主机名127.0.0.1 127.0.1 21 91 2.88 d*node-1 curl-XGET'localhost:9201/_cat/nodes?v&pretty'主机ip堆百分比ram.percent load node.role主控名称127.0.0.1 127.0.0.1 12 91 2.44 d*节点2