美文网首页
Prometheus alertmanager 模块添加短信告警

Prometheus alertmanager 模块添加短信告警

作者: pigness | 来源:发表于2019-01-21 19:11 被阅读0次

AlertManager用于接收Prometheus发送的告警并对于告警进行一系列的处理后发送给指定的用户。系统的整体设计图如下面所示,并且支持HA高可用部署。

alertmanager.png

1. 下载可编译版本的 AlertManager

git clone https://github.com/prometheus/alertmanager.git



2. 在 notify.go 中添加 sms 新标签

numNotifications.WithLabelValues("sms") //新增标签



3. 在 config.go 中添加新配置项

SMSConfigs       []*SMSConfig       `yaml:"sms_configs,omitempty" json:"sms_configs,omitempty"`



4. 在 notifiers.go 中添加 config 的详细定义

// SMSConfig configures notifications via sms.
type SMSConfig struct {
    NotifierConfig `yaml:",inline" json:",inline"`

    // SMS info to notify.
    To    string `yaml:"to,omitempty" json:"to,omitempty"`
    From  string `yaml:"from,omitempty" json:"from,omitempty"`
    Hello string `yaml:"hello,omitempty" json:"hello,omitempty"`    
}

具体字段可根据实际情况修改


5. 参照 webhook 进行自定义的 notify 逻辑编写
自定义的notify路由需要满足该Notifier接口,实现Notify方法。 比如下面是webhook的实现,首先定义一个管理webhook的结构体Webhook,包含基本的配置和模板信息,WebhookMessage定义了发送webhook的信息

// Webhook implements a Notifier for generic webhooks.
type Webhook struct {
    conf   *config.WebhookConfig
    tmpl   *template.Template
    logger log.Logger
}

// NewWebhook returns a new Webhook.
func NewWebhook(conf *config.WebhookConfig, t *template.Template, l log.Logger) *Webhook {
    return &Webhook{conf: conf, tmpl: t, logger: l}
}

// WebhookMessage defines the JSON object send to webhook endpoints.
type WebhookMessage struct {
    *template.Data

    // The protocol version.
    Version  string `json:"version"`
    GroupKey string `json:"groupKey"`
}



6. 修改 alertmanager.yml 相关配置进行告警调用

# 定义路由树信息
route:
  group_by: ['alertname'] # 报警分组依据
  group_wait: 10s # 最初即第一次等待多久时间发送一组警报的通知
  group_interval: 10s # 在发送新警报前的等待时间
  repeat_interval: 1m # 发送重复警报的周期 对于email配置中,此项不可以设置过低,否则将会由于邮件发送太多频繁,被smtp服务器拒绝
  receiver: 'sms' # 发送警报的接收者的名称,以下receivers name的名称

# 定义警报接收者信息
receivers:
  - name: 'sms'
    sms_configs:
    - to: '12345678901'  # 接收警报的手机号
      from: '12345678901' #发送警报的手机号

相关文章

网友评论

      本文标题:Prometheus alertmanager 模块添加短信告警

      本文链接:https://www.haomeiwen.com/subject/jakhjqtx.html