2017-12-13 2 views
0

どのようにしてクラスタ内の利用可能なサーバに接続するようにelastalertを設定しますか? docsは言う:クラスタ内のどのサーバにも接続するようにelastalertを設定するにはどうすればよいですか?

es_hostはElastAlert は、その状態、実行するクエリ、警告、およびエラーに関するデータを格納しますElasticsearchクラスタのアドレスです。各 ルールは、異なるElasticsearchホストを使用して照会することもできます。

しかし、すべての例では、1つのIPアドレスまたはホスト名だけを指し示すことができます。

私は[elasticserver1, elasticserver2, elasticserver3]などのホスト名のリストを使用しようとしましたが、これでエラスタラートが起動しなくなるだけです。

答えて

0

回答で特定したように、elastalertはノードではなくクラスタをターゲットにしています。「ルールがクエリに使用するElasticsearchクラスタのホスト名」

+0

ただし、クラスタにはアドレスがありません。muクラスタ内の複数のサーバ。 1台のサーバーにアクセスできない場合は、クラスタ内の他のサーバーの1つ、logstash、kibana、またはfilebeatの動作と同様のものを使用したいと考えています。 – ThatAintWorking

+0

from elastic: "クラスタは、データ全体を保持し、すべてのノードでフェデレーションされたインデックス作成機能と検索機能を提供する1つ以上のノード(サーバー)の集合です。クラスタは、デフォルトで" elasticsearch "この名前は、ノードがその名前でクラスタに加わるようにノードが設定されている場合にのみ、ノードがクラスタの一部になることができるため、重要です。 – david

+0

from elastic: "ノードは、クラスタの一部であり、データを格納し、クラスタの索引付けおよび検索機能に参加する単一のサーバーです。クラスタと同様に、ノードはデフォルトではランダム起動時にノードに割り当てられるUUID(Universally Unique IDentifier)デフォルトを必要としない場合は任意のノード名を定義できます。この名前は、ネットワーク上のどのサーバーをあなたのElasticsearchクラスタのどのノードを使用していますか? – david

1

これらのesノードをラップアップするためにアップストリームロードバランサが必要になると思います。

私の場合は、nginxを使って自分のesノードの負荷分散を行います。ここではサンプルelastalertのconfig.yml

es_host: "{nginx ip}" 
es_port: "8080" 

は私がnginxの の操作方法について読む記事です

ElastAlert -> Nginx -> ES node 1 
        -> ES node 2 
        ... 
        -> ES node n 

サンプルnginxの設定ファイル

upstream elasticsearch { 
    server {node 1}:9200; 
    server {node 2}:9200; 
    server {node n}:9200; 
    keepalive 15; 
    } 

    server { 
    listen 8080; 

    location/{ 
     proxy_pass http://elasticsearch; 
     proxy_http_version 1.1; 
     proxy_set_header Connection "Keep-Alive"; 
     proxy_set_header Proxy-Connection "Keep-Alive"; 
    } 

    } 

:だからトポロジーは、このようなものですhttps://www.elastic.co/blog/playing-http-tricks-nginx

関連する問題