• 欢迎来到小爱博客,一个分享互联网IT技术的网站,喜欢就收藏吧!

Prometheus alertmanager 模块添加短信告警

prometheus 小爱 2个月前 (08-29) 35次浏览 已收录 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' #发送警报的手机号

作者:pigness
链接:https://www.jianshu.com/p/128e4751404e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


小爱博客 , 版权所有
转载请注明原文链接:Prometheus alertmanager 模块添加短信告警
喜欢 (0)
【你的支持, 我的动力】
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址