【问题标题】:Sensu: best practices to only handle a check after n occurencesSensu:仅在 n 次出现后处理检查的最佳实践
【发布时间】:2018-02-01 10:42:13
【问题描述】:

我最近从 Sensu 0.24 升级到 1.2 并注意到检查立即触发到引用的处理程序。

在旧的检查(v0.24)上,检查有一个“发生”属性来过滤噪音。 我只希望处理程序在每 n 次发生时处理检查,即 http 检查必须失败 5 次才能触发 pagerduty 处理程序。这种行为似乎随着 sensu 升级而改变。

据我了解,处理程序应该包含一个过滤器,以根据属性对事件进行排序。所以假设这是我的支票:

 {
  "checks": {
    "examplecom_http": {
      "command": "check-http.rb --url https://example.com -s -k -q 'Keyword'",
      "handlers": ["default","pagerduty"],
      "subscribers": ["network"],
      "interval": 60,
      "occurrences": 5
    }
  }
}

在以前的版本中(或者至少这是我的理解),只有在失败 5 分钟(60 秒间隔内发生 5 次)后才会处理此检查。这不再起作用了,所以现在处理程序应该包含一个过滤器来处理事件:

{
  "handlers": {
    "pagerduty": {
      "type": "pipe",
      "command": "/etc/sensu/plugins/pagerduty.rb",
      "severities": ["critical"],
      "filter": "occurences"
    }
  }

“发生”过滤器看起来像这样:

{
  "filters": {
    "occurences": {
      "attributes": {
        "occurrences": "eval: value >= 5"
      }
    }
  }
}

但是,无论eval 部分之后出现什么,无论是value >= 5 还是value < 5,效果都是一样的,并且会执行pagerduty 处理程序。我已经尝试将negate 指令与truefalse 一起使用,但似乎我对过滤和发生检查的工作原理的理解是不正确的。也许检查根本不计算它们的发生次数?

有人可以帮忙解释一下吗?

【问题讨论】:

    标签: sensu pagerduty


    【解决方案1】:

    就目前而言,您的handlers JSON 块中的occurrences 似乎拼写错误为occurences.

    您将希望"negate": false 与您的eval 当前的写入方式相同。当negatefalse 时,这意味着处理程序将仅在过滤器评估为真时触发 - negate 将简单地反转结果,以便处理程序在过滤器评估为假时触发。

    最后,如果您希望“每 n 次出现”而不是第 5 次之后的每次出现都触发处理程序,请考虑以下评估:

    {
      "filters": {
        "every_five": {
          "attributes": {
            "occurrences": "eval: value % 5 == 0"
          }
        }
      }
    }
    

    这样,当出现次数可以被 5 整除时,将触发处理程序,但您需要将 every_five 过滤器添加到处理程序定义中。您可以将 filter 更改为 filters 并改为传递数组,如下所示:

    {
      "handlers": {
        "pagerduty": {
          "type": "pipe",
          "command": "/etc/sensu/plugins/pagerduty.rb",
          "severities": ["critical"],
          "filters": [
            "occurrences",
            "every_five"
        }
      }
    }
    

    这将允许您使用built-in filter "occurrences" 以及您的自定义过滤器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多