2017-03-09 75 views
0

我希望使用以下碼頭ivankrizsan/elastalert。我已經安裝了elasticsearch 5的docker(名稱:elasticsearch)Docker /如何確定鏈接?

在指南中,它說:需要使用「elasticsearchhost」別名鏈接到運行Elasticsearch的Docker容器。

所以我做了以下內容:

docker run --link "elasticsearch:elasticsearchhost" ivankrizsan/elastalert 

和它說:

docker: Error response from daemon: Conflicting options: host type networking can't be used with links. This would result in undefined behavior. 

當我刪除該鏈接,只需要運行:

docker run ivankrizsan/elastalert 

它沒有找到彈性搜索端口(其循環此部分:

while ! wget -O garbage_file ${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT} 2>/dev/null 
do 
    echo "Waiting for Elasticsearch..." 
    rm -f garbage_file 
    sleep 1 
done 

我做錯了什麼?

+0

'elasticsearch'容器是如何啓動的。根據錯誤消息它有'--network = host'選項? – Lauri

+0

@Lauri是的,淨=主機 – MiddleWare

+0

任何特定的原因呢? – Lauri

回答

1

該錯誤表示您在創建elasticsearch容器時使用了--network = host。

我注意到的另一個問題是使用鏈接,鏈接容器是一項遺留功能,正在被用戶定義的網絡取代。用戶定義的網絡也將爲您提供服務發現的內部DNS。

要解決問題,請先停止並刪除elasticsearch容器。

您contianers創建一個用戶定義的網絡:

sudo docker network create elastic 

開始elasticsearch容器:

sudo docker run -d --name elasticsearchhost -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" --network elastic docker.elastic.co/elasticsearch/elasticsearch:5.2.2 elasticsearch 

驗證elasticsearch達:

curl -XGET 'http://localhost:9200/' 

如果啓用xpack,您需要提供用戶名和密碼:

curl -u elastic:changeme -XGET 'http://localhost:9200/' 

彈性:默認的用戶名

changeme:默認密碼

爲了解決Waiting for Elasticsearch...你需要elsatalert禁用安全插件,或設置用戶名/密碼。

要禁用elasticsearch安全認證添加以下行/usr/share/elasticsearch/config/elasticsearch.yml

xpack.security.enabled: false 

,並重新啓動elasticsearch容器。

驗證:

curl -XGET 'http://localhost:9200/' 

開始ivankrizsan/elastalert容器:

sudo docker run -d --name elastalert --network elastic -e ELASTICSEARCH_HOST=elasticsearchhost -e ELASTICSEARCH_PORT=9200 ivankrizsan/elastalert 

請通過-e開關注意環境變量。

+0

進出口仍然得到2017-03-09T09:09:30.371045670Z等待Elasticsearch。 .. – MiddleWare

+0

post'docker ps'和'docker ps -a' – user2915097

+0

@ user2915097:當我在做wget localhost:9200時,我得到--2017-03-09 10:15:32-- http:// localhost:9200/ 正在解析本地主機... 127.0.0.1 連接到本地主機| 127.0.0.1 |:9200 ...已連接。 發送HTTP請求,等待響應...沒有收到數據。 正在重試。 – MiddleWare