Most-popular-Telegram-bots.jpg

本文隶属于 实用工具 /网站优化 分类,点击分类名称可以查看更多相关文章;

I. 主理人说

CPU-check-telegram-alert.jpg
1.拿来即可用的 Telegram Bot Api(免费)(API是什么?);
2.如果你也有博客或需要监测服务器性能;
3.这或许是个好办法;
4.当服务器CPU触到阈值,则触发警报;
5.真的不要太好用。

*本文末尾提供了网站联通状态检查脚本;

II. 本文概要

1.创建TG机器人并获取[API Token];
2.给机器人发送消息,并获取你电报账号的[chatID];
3.配置CPU监测及报警(预警)通知脚本
4.使用crontab设置定时任务;

III. 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

*暂忘脚本出处

IV. 判定博客状态脚本

#!/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

V. 简易报警脚本(完整示例)

配合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

以上。

以下为实操部分,

VI. 第一步 创建机器人


*看创建机器人部分即可,仅需三步即可创建一个新机器人;

VII. 第二步 获取API Token

同上,创建完机器人即可获得API Token

VIII. 第二步 获取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为你的机器人) 即可;

IX. 第三步 机器人发送消息

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

以上。

X. 第四步 设置定时执行脚本任务

1.Crontab的使用可参考Linux crontab 命令

root@localhost:/home#  crontab -e
* * * * * /home/checkcpu.sh #每分钟执行一次检测

XI. 其他

获取网站状态脚本命令

curl -I -m 10 -o /dev/null -s -w %{http_code} https://limbopro.com

XII. 附注

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

XIII. 联系主理人

1.关注频道 https://t.me/limboprossr 不失联;

最后修改:2023 年 09 月 24 日 11 : 00 PM