2016-06-27 10 views
1

コンテナチェックは、コンテナを監視し、コンテナが停止したときにクリティカルになるように設計されています。私はチェックがクリティカルになった後、あるいはいくつかのクリティカルなレスポンスの後にスクリプトを実行するコンサルトウォッチを作成したいと思います(例えば、私のチェックが5つの重要なレスポンスを送信してスクリプトを実行したい場合)。ここで 重要なコンサルトチェックを伴うコンサルトウォッチ

は、私は私の時計がどのように見えるかのように私の作業のチェックと私の推測のためのJSONです:

{ 

// this check works 
"checks": [ 
    { 
     "id": "docker_stuff", 
     "name": "curl test", 
     "notes": "curls the docker container", 
     "script": "/scripts/docker.py", 
     "interval": "1s" 
    } 
], 

//this watch doesn't work 
"watches": [ 
    { 
     "Node": "client2", 
     "CheckID": "docker-stuff", 
     "Name": "docker-stuff-watch", 
     "Status": "critical", 
     "Status_amt": "5", 
     "handler": "/scripts/new-docker.sh", 
     "Output": "container relaunched", 
    } 
] 

} 

それは何の作業を取得するために、私は私の時計に変更する必要がありますか?

また、コンサルトイベントを使用してヘルスチェックを見て、私の/scripts/new-docker.shスクリプトを実行するコンサルトウォッチ(イベントタイプ)を起動する必要がありますか?もしそうなら、私はどのように私の健康チェックを監視する領事のイベントを作るでしょうか?たとえば、これが私の領事小切手、腕時計、イベントの場合、これを稼働させるためには何を変更する必要がありますか?

{ 
"checks": [ 
    { 
     "id": "docker_stuff", 
     "name": "curl test", 
     "notes": "curls the docker container", 
     "script": "/scripts/docker.py", 
     "interval": "1s" 
    } 
], 
"watches": [ 
    {  
     "type": "event", 
     "name": "docker-stuff-watch", 
     "handler": "/scripts/new-docker.sh" 
    } 
], 
"events": [ 
    { 
     "Node": "client2", 
     "CheckID": "docker-stuff", 
     "Name": "docker-stuff-event", 
     "Status": "critical", 
     "Status_amt": "5", 
     "Output": "container relaunched", 
    } 
] 
} 

答えて

0

Docker 1.12(リリース候補者)の次のバージョンへのアップグレードを検討することをお勧めします。新しいサービスコンセプトを使用して、実行するコンテナの数を指定できます。

あなたは、コンテナの画像をチェックするスクリプトをバンドルすることができますDockerfileの新しいHEALTHCHECKディレクティブもあります。

これらの新機能により、あなたはconsulを使用して実装しなければならなかった機能を置き換えることができます。

1

ウォッチを変更するには何が必要ですか?

間違いはありますか?あなたの時計ハンドラ '/scripts/new-docker.sh'がConsulが送信するSTDINを/ dev/nullに投げていても消費していることを確認してください。そうでなければプロセスはそれが永久に消費されるのを待ちます。

と同様のもの

while read -r -t 0; do read -r; done 
関連する問題