本文隶属于 实用工具 /网站优化 分类,点击分类名称可以查看更多相关文章;
主理人说
1.拿来即可用的 Telegram Bot Api(免费)(API是什么?);
2.如果你也有博客或需要监测服务器性能;
3.这或许是个好办法;
4.当服务器CPU触到阈值,则触发警报;
5.真的不要太好用。
*本文末尾提供了网站联通状态
检查脚本;
本文概要
1.创建TG机器人并获取[API Token];
2.给机器人发送消息,并获取你电报账号的[chatID];
3.配置CPU监测及报警(预警)通知脚本
;
4.使用crontab
设置定时任务;
CPU负载检测脚本
##CPU负载计算
function GetSysCPU
{
CpuIdle=`vmstat 1 5 |sed -n '3,$p' | awk '{x = x + $15} END {print x/5}' | awk -F. '{print $1}'`
CpuNum=`echo "100-$CpuIdle" | bc`
echo $CpuNum
}
cpucheck=`GetSysCPU` #将结果输出赋值到cpucheck
*暂忘脚本出处
判定博客状态脚本
#!/bin/bash
date=$(env LANG=en_US.UTF-8 date "+%e/%b/%Y/%R")
runningstatus=200
status=$(curl -I -m 10 -o /dev/null -s -w %{http_code} https://limbopro.com)
##博客状态判断
if [ ${status} -eq $runningstatus ];
then
date=$(env LANG=en_US.UTF-8 date "+%e/%b/%Y/%R")
echo $date "博客网站连接中..."
else
##博客状态报告到个人tg
date=$(env LANG=en_US.UTF-8 date "+%e/%b/%Y/%R")
curl -X POST ""https://api.telegram.org/bot[API Token]/sendMessage?chat_id=[chatID]&text=博客或失联%0alimbopro.com%0a状态码为 ${status}%0a如果此状况持续%0a请联系 @limboprobot 检修%0a${date}"
## 重启lnmp服务
lnmp restart;
fi
简易报警脚本(完整示例)
配合Telegram Bot Api 食用,效果佳。
## CPU负载计算
function GetSysCPU
{
CpuIdle=`vmstat 1 5 |sed -n '3,$p' | awk '{x = x + $15} END {print x/5}' | awk -F. '{print $1}'`
CpuNum=`echo "100-$CpuIdle" | bc`
echo $CpuNum
}
cpucheck=`GetSysCPU`
cpumax=50
## 判断当前CPU负载是否超过阈值cpumax
if [ ${cpucheck} -gt $max ];
then
date=$(env LANG=en_US.UTF-8 date "+%e/%b/%Y/%R")
curl -X POST "https://api.telegram.org/bot[API Token]/sendMessage?chat_id=[chatID]&text=$date%0aCPU负载为$cpucheck%%0a注意及时检查%0a如果该警报持续...%0a或联系管理员%0a@limboprobot"
else
##监测坚果输出到本地以便后期查阅..
date=$(env LANG=en_US.UTF-8 date "+%e/%b/%Y/%R")
echo "${date}" "CPU负载正常,当前负载为$cpucheck%..." >> /home/cpucheck.log
fi
以上。
以下为实操部分,
第一步 创建机器人
*看创建机器人部分即可,仅需三步即可创建一个新机器人;
第二步 获取API Token
同上,创建完机器人即可获得API Token
第二步 获取chatID
1.官方提供了接口
2.通过第二步我们已经获得了API Token
2.将下方API Token
替换成自己的API Token
;
https://api.telegram.org/bot[API Token]/getUpdates #将[API Token]替换成自己的API token,
实例说明
https://api.telegram.org/bot10440392893:AQMZqM-FX_SGVVMtUj98xXWWqWCO2IbGHSw/getUpdates
3.替换成自己的[API token]后,在浏览器中打开链接,提示{"ok":true,...
;
4.给机器人发送任意英文字符,例如Hello word
;
5.刷新刚刚在浏览器打开的链接,并找到Hello word
;
举例说明,发送Hello word
后刷新链接得到;
"message":{"message_id":1426,"from":{"id":763456863,"is_bot":false,"first_name":"\u2708\ufe0f TG \u6bd2\u5976\u535a\u4e3b \u2708\ufe0f","last_name":"\u4e3b\u7406\u4eba Julia \ud83c\udd65","username":"limbopro","language_code":"zh-hans"},
"chat":{"id":763456863,"first_name":"\u2708\ufe0f TG \u6bd2\u5976\u535a\u4e3b \u2708\ufe0f","last_name":"\u4e3b\u7406\u4eba Julia \ud83c\udd65","username":"limbopro","type":"private"},"date":1576931731,"text":"Hello word"}}]}
其中,"chat":{"id":763456863 里的763456863
,我的Chat id
;若需获取群组的Chat ID,需把机器人添加至群组,在群组内发送/hello word @xxx_bot
(@xxx_bot为你的机器人) 即可;
第三步 机器人发送消息
1.通过上面两步,我们有了机器人以及[API Token] 以及收件人的[ChatID];
https://api.telegram.org/bot[API Token]/sendMessage?chat_id=[chatID]&text=hello word
1.这个是TG bot sendMessage API,简单却实用;
2.你可以替换自己的[API]与[chatID];
3.正确替换后,在浏览器中打开,你将收到一条消息;
4.&text=后面接你需要发的信息;
5.换行用%0a
表示;
1
2
3
则需表示成 &text=1%0a2%0a3
以上。
第四步 设置定时执行脚本任务
1.Crontab的使用可参考Linux crontab 命令;
root@localhost:/home# crontab -e
* * * * * /home/checkcpu.sh #每分钟执行一次检测
其他
获取网站状态脚本命令
curl -I -m 10 -o /dev/null -s -w %{http_code} https://limbopro.com
附注
1.Telegram Bot API - Telegram APIs #官方
2.Bot Code Examples - Telegram APIs #官方样例
3.https://github.com/python-telegram-bot/python-telegram-bot (拿来即用
4.https://github.com/tg-bot-api/bot-api-base
联系主理人
1.关注频道 https://t.me/limboprossr 不失联;
版权属于:毒奶
联系我们:https://limbopro.com/6.html
毒奶搜索:https://limbopro.com/search.html
机场推荐:https://limbopro.com/865.html IEPL专线/100Gb/¥15/月起
毒奶导航:https://limbopro.com/daohang/index.html本文链接:https://limbopro.com/archives/tgbotalert.html
本文采用 CC BY-NC-SA 4.0 许可协议,转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!