簡體   English   中英

如何在Elasticsearch和Logstash中添加動態主機

[英]How to add dynamic hosts in Elasticsearch and logstash

我的原型適用於設備發送日志,然后將logstash解析后放入Elasticsearch。

Logstash輸出代碼 :-

    output{
    if [type] == "json" {
    elasticsearch {
     hosts => ["host1:9200","host2:9200","host3:9200"]
     index => "index-metrics-%{+xxxx.ww}"
    }
  }

} 

現在我的問題是:

我將提出這個解決方案。 為了簡單起見,假設我有一個集群,並且現在在該集群中有5個節點。

所以我知道我可以在elasticsearch輸出插件中提供5個節點IP /主機名的數組,然后它將輪流分發數據。

如何避免將所有節點IP /主機名放入logstash配置文件中。

隨着系統投入生產,我不想手動進入每個logstash實例並更新這些主機。

在這種情況下應遵循的最佳實踐是什么?

我的要求是:

我想運行我的ES集群,並且想隨時添加/刪除/更新任意數量的節點。 我需要所有logstash實例發送數據,而不管ES端的更改如何。

謝謝。

如果要添加/刪除/更新,則需要在服務啟動之前運行sed或某種形式的字符串替換。 Logstash配置是“已編譯”的,不能以這種方式更改。

hosts => [$HOSTS] ... $ HOSTS="\\"host1:9200\\",\\"host2:9200\\"" $ sed "s/\\$HOSTS/$HOSTS/g" $config

您的另一個選擇是將環境變量用於動態部分,但這將不允許您使用動態數量的主機。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM