使用脚本的领事健康检查未通过验证

问题描述

在领事服务器和其他节点上,我添加了3个检查以检查cpu利用率,内存利用率和硬盘利用率。我不知道为什么他们在验证期间失败。我在做什么错了。

int main(...) {
   // the variable and array stuff...
   for(int attemptCounter = 0; attemptCounter < 12; ++attemptCounter) {
      // the user input stuff...
      // the checking if user guessed right
      if( userGuessedCorrectly ) goto Success;
   }
   std::cout << "better luck next time,pal - you did not guess right." << std::endl;
   return 0;
Success:
   std::cout << "Congratulations you made it!" << std::endl;
   return 0;

}

,如果我验证领事配置文件

{
  "retry_join": [
    "172.20.20.31"
  ],"data_dir": "/tmp/consul","client_addr": "0.0.0.0","checks": [
    {
      "id": "check_cpu_utilization","name": "cpu utilization","script": "/vagrant/provision/hc/cpu_utilization.sh","interval": "10s"
    },{
      "id": "check_mem_utilization","name": "MEM utilization","script": "/vagrant/provision/hc/mem_utilization.sh",{
      "id": "check_hdd_utilization","name": "HDD utilization","script": "/vagrant/provision/hc/hdd_utilization.sh","interval": "10s"
    }
  ]
}

我的领事版本是1.8.3

解决方法

定义脚本检查的正确方法是使用检查定义中的args参数。

FileWriter userid = new FileWriter("file path",true);

Check Definitions页面上的示例还显示了{ "id": "check_cpu_utilization","name": "CPU Utilization","args": ["/vagrant/provision/hc/cpu_utilization.sh"],"interval": "10s" } 字段的使用。