Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 更好地为不可用的Kubernetes吊舱定义Kibana观察者_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Kubernetes_Kibana_Elastic Stack_Kubernetes Pod - Fatal编程技术网 elasticsearch 更好地为不可用的Kubernetes吊舱定义Kibana观察者,elasticsearch,kubernetes,kibana,elastic-stack,kubernetes-pod,elasticsearch,Kubernetes,Kibana,Elastic Stack,Kubernetes Pod" /> elasticsearch 更好地为不可用的Kubernetes吊舱定义Kibana观察者,elasticsearch,kubernetes,kibana,elastic-stack,kubernetes-pod,elasticsearch,Kubernetes,Kibana,Elastic Stack,Kubernetes Pod" />

elasticsearch 更好地为不可用的Kubernetes吊舱定义Kibana观察者

elasticsearch 更好地为不可用的Kubernetes吊舱定义Kibana观察者,elasticsearch,kubernetes,kibana,elastic-stack,kubernetes-pod,elasticsearch,Kubernetes,Kibana,Elastic Stack,Kubernetes Pod,我们实现了一个Kibana Watcher,它在Pod不可用时触发,我们将此触发警报导出到Opsgenie和MS团队,以通知我们的团队。 目前,它运行得相当好:每当pod不可用时,就会显示警报。我们正在处理的问题是,我们希望触发器能够更好地适应我们的具体需求。我们不仅需要知道一个pod是否不可用,还需要知道其中有多少不可用,以及这些pod的具体名称/ID 我们试图彻底阅读可用的文档,我们尝试了编辑json文件(通过Watcher部分)和“引导”报警GUI过程(创建警报、清单)。 我们当前的.js

我们实现了一个Kibana Watcher,它在Pod不可用时触发,我们将此触发警报导出到Opsgenie和MS团队,以通知我们的团队。 目前,它运行得相当好:每当pod不可用时,就会显示警报。我们正在处理的问题是,我们希望触发器能够更好地适应我们的具体需求。我们不仅需要知道一个pod是否不可用,还需要知道其中有多少不可用,以及这些pod的具体名称/ID

我们试图彻底阅读可用的文档,我们尝试了编辑json文件(通过Watcher部分)和“引导”报警GUI过程(创建警报、清单)。 我们当前的.json文件在本主题中提供(如下)。对于我们正在处理的任务,这两种工具似乎都是有限的——至少,我们调查了几天,没有通过当前的API找到合适的解决方案。 我们安装的版本是V7.12.0

我们还需要(将来)以更智能的方式定制触发器-例如,我们希望消除误报(例如,存在时间少于5分钟的警报),并且通常需要更好的有用指标,以便仅在真正需要时触发警报

对于任何其他可能需要的信息,请随时询问

当前json文件:

{
  "trigger": {
    "schedule": {
      "interval": "1m"
    }
  },
  "input": {
    "search": {
      "request": {
        "search_type": "query_then_fetch",
        "indices": [
          "metricbeat-*"
        ],
        "rest_total_hits_as_int": true,
        "body": {
          "size": 0,
          "query": {
            "bool": {
              "filter": {
                "range": {
                  "@timestamp": {
                    "gte": "{{ctx.trigger.scheduled_time}}||-5m",
                    "lte": "{{ctx.trigger.scheduled_time}}",
                    "format": "strict_date_optional_time||epoch_millis"
                  }
                }
              }
            }
          },
          "aggs": {
            "metricAgg": {
              "max": {
                "field": "kubernetes.deployment.replicas.unavailable"
              }
            }
          }
        }
      }
    }
  },
  "condition": {
    "script": {
      "source": "if (ctx.payload.aggregations.metricAgg.value > params.threshold) { return true; } return false;",
      "lang": "painless",
      "params": {
        "threshold": 0
      }
    }
  },
  "actions": {
    "webhook_1": {
      "webhook": {
        "scheme": "https",
        "host": "api.eu.opsgenie.com",
        "port": 443,
        "method": "post",
        "path": "/v1/json/eswatcher",
        "params": {
          "apiKey": "omitted"
        },
        "headers": {
          "Content-Type": "application/json"
        },
        "body": "{{#toJson}}ctx{{/toJson}}"
      }
    }
  },
  "transform": {
    "script": {
      "source": "HashMap result = new HashMap(); result.result = ctx.payload.aggregations.metricAgg.value; return result;",
      "lang": "painless",
      "params": {
        "threshold": 0
      }
    }
  }
}