需要将Slack和寻呼机职责集成到Prometheus并定义自定义规则

时间:2018-06-21 10:06:29

标签: kubernetes prometheus

我已使用https://github.com/coreos/prometheus-operator/tree/master/contrib/kube-prometheus/manifests

中提供的KB在GCP kubernetes环境中配置了Prometheus&Grafana。

一切运行正常,我的群集详细信息显示在Grafana中。现在,我想为Prometheus配置警报,并且需要集成到我的闲暇频道。如果有人对此有任何想法,请告诉我。

预先感谢

3 个答案:

答案 0 :(得分:1)

使用prometheus-operator,我花了一段时间才弄清楚alertmanager配置作为秘密存储在 https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/manifests/alertmanager-secret.yaml

您需要对其进行解码,编辑,编码和应用

回声 “Imdsb2JhbCI6IAogICJyZXNvbHZlX3RpbWVvdXQiOiAiNW0iCiJyZWNlaXZlcnMiOiAKLSAibmFtZSI6ICJudWxsIgoicm91dGUiOiAKICAiZ3JvdXBfYnkiOiAKICAtICJqb2IiCiAgImdyb3VwX2ludGVydmFsIjogIjVtIgogICJncm91cF93YWl0IjogIjMwcyIKICAicmVjZWl2ZXIiOiAibnVsbCIKICAicmVwZWF0X2ludGVydmFsIjogIjEyaCIKICAicm91dGVzIjogCiAgLSAibWF0Y2giOiAKICAgICAgImFsZXJ0bmFtZSI6ICJEZWFkTWFuc1N3aXRjaCIKICAgICJyZWNlaXZlciI6ICJudWxsIg ==” | base64 --decode

答案 1 :(得分:0)

对-是的。您需要做一些事情。

首先下载并运行警报管理器-您可以下载here-可以运行简单的配置。

然后,您需要将警报管理器添加到您的prometheus配置中。

prometheus.yml中的示例

alerting:
  alertmanagers:
alerting:
  alertmanagers:
  - scheme: http
    static_configs:
    - targets:
      - "localhost:9093"

  - scheme: http
    static_configs:
    - targets:
      - "localhost:9093"

假设您已经在运行规则,并且现在要将其集成到松弛中,则在警报管理器配置文件中,您需要添加

global:
  slack_api_url: '...'


route:

  repeat_interval: 5s
  receiver: slack-alert # replace this field
  group_by:
    - WebsiteStaus
    - InstanceDownTime

receivers:
- name: 'slack-alert'
  slack_configs:
  - channel: '#some-channel'
    username: 'prometheus-bot'
    send_resolved: true
    # title: '{{ range .Alerts }} {{ .Annotations.summary }} {{ end }}'
    # text: '<!channel> \n {{ range .Alerts }} {{ .Annotations.description }} \n {{ end }}'
    title: '{{ .CommonAnnotations.summary }}'
    text: '{{ .CommonAnnotations.description }}'

请注意.CommonAnnotations.AnnotationsCommonAnnotations指单个警报,而Annotations指多个警报事件。因此,如果您的警报规则同时触发了两个警报,则需要使用CommonAnnotations

如果您没有设置任何规则,这是一个示例规则,如果网站出现故障,我可以用来提醒我。

groups:
# ============================================================================
# Website alerts
# --------------
# ============================================================================
- name: WebsiteStaus
  rules:
  # Check if the probe_success was successful
  - alert: SiteDown
    expr: probe_success == 0
    for: 5s
    labels:
      severity: page
    annotations:
      summary: A website has gone down!
      description: '<{{ $labels.instance }}|{{ $labels.instance }}> failed to probe'

答案 2 :(得分:0)

https://amixr.io/的免费版本对此很有帮助。您可以在Grafana中配置警报,并将其转发到Slack。