概述
之前写过一篇文章介绍过如何搭建 Prometheus 和 Grafana,当我们完成一个监控系统的搭建之后,下一步就需要它为我们的目标服务了。监控系统除了监控系统的状态,用于我们发现业务规律之外,自然也少不了对于异常情况的监控,当然我们不能时时刻刻地盯着仪表盘看,所以,一个简单的优化方式就是我们预设一些规则,例如 qps 持续过高时给我们一个提醒,我们看一下是不是有什么异常流量或者系统异常。
那么如何提醒又是一个问题,因为我手机后台常开着 Telegram,所以在这篇文章中我将介绍如何接入 Telegram 作为 Grafana 的报警接受端,从而获得实时的异常消息。
创建 Telegram bot
添加一个名字叫做
BotFather
的好友发送
/newbot
消息给他,然后他会让你提供一个用户名- 给你的 bot 一个用户名,随便输,可以和其他人的重复,这里我输入的是:zhangsan
- 给你的 bot 一个唯一的标识,这个不能和其他人的重复,可能你需要尝试多次,这里我用的是:zhangsan10086_bot
- BotFather 会给你返回一个 token,例如我这里返回的 token 就是:
图 2:Telegram bot token |
---|
将 bot 加入 channel
查找你的 bot 的名字
邀请你的 bot 加入一个群
发送一条信息,这一步很重要,千万别漏了,因为等下要用 API 来获取这个消息
通过 API 获取 channel ID
在浏览器中打开以下链接,其中将 [token] 换成上面第 5 步中的 token,例如我的 token 是
6063787647:AAEWzhHNeM8VXNfs-8hbhvUl4__D_8Aah1o
:[root@liqiang.io]# https://api.telegram.org/bot【token】/getUpdates
[root@liqiang.io]# https://api.telegram.org/bot6063787647:AAEWzhHNeM8VXNfs-8hbhvUl4__D_8Aah1o/getUpdates
你可以从这里获取到这个负数的 ID,请记住它。
配置 Grafana
打开 Grafana,我使用的是当前的最新版本:v9.3.6(不同版本之间可能有些许不同)。
选择 Alerting -> Contact points
添加 Contact Point
填写 Telegram 信息
然后就能收到报警消息了