我正在做一个概念验证,安装ELK来管理来自不同应用程序的所有日志。我拥有的是两个Elasticearch示例(9200 9201)、Kibana(5601 5602)和Logstash(5044 5045),以及一个充当反向代理的nginx和两台运行不同应用程序并通过FileBeat将它们的日志发送到Logstash的不同机器。
我希望为用户设置权限,以便一些用户可以从计算机A访问日志,而其他一些用户可以访问计算机B中的日志,但当我在两台计算机上启动Filebeat时,他们中的每个人都应该将自己的日志发送到logstash中的不同端口,因为它是这样配置的,但当我访问kibana(两个端口)时,我得到的是来自两台计算机的所有日志。
是否可以在不同的安装示例中拆分日志?
先谢谢你。
3条答案
按热度按时间ygya80vv1#
当您在同一台主机上运行两个Elasticearch示例时,它们将自动形成一个集群,除非您更改配置以防止此行为。
您可以通过运行以下命令列出集群中的节点。如果列出了多个节点,则您的两个节点已组成一个集群。
curl -XGET 'localhost:9200/_cat/nodes?v&pretty'
您需要在每个节点的配置中设置唯一的
cluster.name
值。默认值为elasticsearch
。当两个节点相互发现并且它们的cluster.name
相同时,它们形成一个集群。y53ybaqx2#
在所有配置中,例如,对于文件节拍、logstash、ElasticSearch和kibana,对于不同的安装集,您需要保持不同的值。Filebeat1->Logstash1->Elasticearch 1->Kibana1 Filebeat2->Logstash2->Elasticearch2->Kibana2
如果您正确配置并保持不同的主机名和端口,则可以实现隔离,并且您将看到不同kibana上的拆分数据。
a14dhokn3#
更改两个集群名称并赋予它们不同的名称是正确的,此外,为了保持两个节点的独立,有必要编辑文件节拍模板,因为默认情况下它指向ElasticSearch:9200。