2017-08-08 3 views
0

設定ファイルを使用してRESTサービスのhttpヘルスチェックを作成しようとしました。設定ファイルConsulからHttp Health Checkを作成できません

consulをロードするときに、configファイルからサービスの詳細が読み込まれ、8500 Web UIに反映されます。

しかし、そのサービスのヘルスチェックの詳細は追加されませんでした。

ヘルスチェックがサービス定義(ケース1)と一緒に表示されてもエラーは表示されません。

しかし、ヘルスチェックの設定をseperatlyしようとするとエラーが通知されました。 (ケース2)

ただし、残りのAPIを使用して追加した場合は正常にhttpヘルスチェックを追加できます。 (ケース3)サービスの詳細を

ヘルスチェック: - アローン(ケース1)

{ 
"service": { 
"id":"somename", 
"name":"nameofthissevice", 
"service": "myservice", 
"address": "127.0.0.1", 
"port": 62133, 
"enableTagOverride": false, 
"check": {  
"HTTP": "http://127.0.0.1:62133/Service1.svc/MyService/PingMe", 
"Interval": "5s"  
} 
} 
} 

ヘルスチェックの設定: - (ケース2)C#でコードを経由して

"check": {  
"http": "http://127.0.0.1:62133/Service1.svc/MyService/PingMe", 
"interval": "5s", 
"timeout": "150s", 
"ttl" : "100s" 
} 

ヘルスチェック: - (ケース3)

var check = new AgentServiceCheck() 
     { 
      Interval = TimeSpan.FromSeconds(10), 
      HTTP = "http://127.0.0.1:62133/Service1.svc/MyService/PingMe", 
      DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(10) 
     }; 

var srv = new AgentServiceRegistration() 
     { 
      XXXXX, 
      Check = check 
     }; 

var result = client.Agent.ServiceRegister(srv).GetAwaiter().GetResult();    

私はWindows用の領事V.0.9.0を使用しています。

ここは私の領事ログです。

==>コンサルエージェントが実行中です!
バージョン: 'v0.9.0'
ノードID: 'd0afc715-46d0-6087-27e9-a388cc274bd2'
ノード名: 'BETA-PC'
データセンター: 'DC1'
サーバー:真(ブートストラップ:偽)
クライアントの住所:127.0.0.1(HTTP:8500、HTTPS:-1、DNS:8600)
クラスタの住所:127.0.0.1(LAN:8301、WAN:8302)
ゴシップの暗号化:偽、RPC- TLS:false、TLS-Incoming:false

==>ログデータは、

2017/08/11 00:18:23 [DEBUG] Using random ID "d0afc715-46d0-6087-27e9-a388cc274bd2" as node ID              
2017/08/11 00:18:23 [DEBUG] agent: restored service definition "somename" from "services\\ServiceRegister.json"         
2017/08/11 00:18:23 [WARN] raft: Heartbeat timeout from "" reached, starting election                
2017/08/11 00:18:23 [INFO] consul: member 'BETA-PC' joined, marking health alive                 
2017/08/11 00:18:24 [INFO] agent: Synced service 'somename'                      
2017/08/11 00:18:24 [DEBUG] agent: Node info in sync                        
2017/08/11 00:22:33 [DEBUG] http: Request GET /v1/internal/ui/nodes?dc=dc1&token=<hidden> (0s) from=127.0.0.1:52479        
2017/08/11 00:22:33 [DEBUG] http: Request GET /v1/catalog/datacenters (37.0021ms) from=127.0.0.1:52478            
2017/08/11 00:22:33 [DEBUG] http: Request GET /v1/coordinate/nodes?dc=dc1&token=<hidden> (14.0008ms) from=127.0.0.1:52480       
2017/08/11 00:22:33 [DEBUG] http: Request GET /v1/internal/ui/services?dc=dc1&token=<hidden> (0s) from=127.0.0.1:52480        
2017/08/11 00:22:33 [DEBUG] http: Request GET /v1/health/service/myservice?dc=dc1&token=<hidden> (1.0001ms) from=127.0.0.1:52480    

誰でもこの情報を提供できますか。

Thxを

答えて

0

ケース1は間違いのように思える大文字HTTPのキーを持っている - https://www.consul.io/docs/agent/checks.html

ケース2 - これはあなたの全体のチェックファイルであれば、JSONが無効である({}でそれをラップ)。 service_idを指定してサービスにリンクすることもできます。

関連する問題