ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知
创作立场声明:1、本文所写的内容,来自于自己的使用分享,并未查阅网上的类似教程。本人小白一枚,大神轻喷。
2、写本文前,已在网上搜索相关内容,但未找到类似的。不过互联网如汪洋大海,难免有难以发现的信息。如已有人在其他平台发布类似的信息,请联系我,谢谢(本文写作背景,见上述第一条)。
3、感谢大猫猫提供的钉钉接口,方便我等小白。
4、其余未想到的事宜,请指正
前言
大家好,做为加入张大妈1869天的伸手党,却没发表过一篇文章,深感鸭梨山大。
本文所写的内容,来自于自己的使用分享,并未查阅网上的类似教程。本人不保证,在互联网的某个角落,没有类似的文章。但写本文前,已在网上搜索相关内容,未找到类似的。当然,也可能有些大神已经这么做了,只是没提供分享。本人小白一枚,不解答技术性问题。
需要用到的项目地址
感谢大猫猫提供的钉钉接口,方便我等小白。
也可用微信通知,但似乎受限制了,我这没成功,所以用的钉钉。
适用环境
话说有一天,突然发现网络卡顿,打开winbox进系统一看,cpu 0使用率100%,其余的(cpu1 cpu2 cpu3)使用率0%,有木有? (下图为演示用,此时没占用100%)
日志并没发现什么记录,这种情况偶尔会出现(概率很小),但就是找不到原因。怀疑是被攻击了。
于是有了此文。
总体思路:用脚本,分别获取cpu 0、cpu 1、cpu 2、cpu 3(我是四线程的CPU)的使用率,超过设定值(警戒值,我是超过80%),就用钉钉发送通知,效果如下:(下图为演示用,此时没超过80%)
注册钉钉机器人
官方文档。本人不保证内容的有效性,建议查询官方文档,获得最新的设置方式。
主要是按官方文档,获得token和secret。
大致流程为:
1、打开PC端钉钉,点击头像,选择“机器人管理”。
2、在机器人管理页面,拉到最下面,选择“自定义”机器人,输入机器人名字(随意)并选择要发送消息的群(建议选择体验群,并修改群名,略......),同时可以为机器人设置机器人头像。
3、获得token(即上图第4步的Webhook)。注意,复制后的格式为(链接)
我们只需要后面的"一大串值"即可 ,我们只需要后面的"一大串值"即可,我们只需要后面的"一大串值"即可 重要的事情说三遍。即=后面的值,复制到其他地方,等下要用
4、安全设置,选“加签”(上图),获得secret,复制到其他地方,等下要用(灰色的地方双击鼠标,ctrl+c复制)
获取CPU情况
打开winbox,选择左边的“NewTerminal”
在打开的窗口中,输入以下命令,获取CPU情况
sys reso cpu pr
设置脚本
按项目地址,获取最新的脚本。本人不保证内容的有效性,建议查询项目地址,获得最新的设置方式。
1、打开winbox,按下图打开
2、按下图设置
(1)记住脚本名称:cpu_use
(2)在上图第4步中,输入以下代码
:local cpuuse0 [:put [/sys reso cpu get 0 load]]
:if ($cpuuse0 >80) do={
###钉钉access_token###
:local token "64位长度的token"
###钉钉access_secret###
:local secret "67位长度的密匙"
###通知标题内容###
:local node "RouterOS"
###通知信息内容###
:local msg "警告:CPU0使用率$cpuuse0"
###操作###
:do {/tool fetch url=("https://mail.ros6.com:1234/token=$token&secret=$secret&node=$node&msg=$msg") mode=https check-certificate=no keep-result=no}
}
注:
1、CPU设定值(警戒值) 自定义,我这是80%,改为想要的。如90%就把>80改为>90
2、64位长度的token、67位长度的密匙,见上文“注册钉钉机器人”,改为自己的
3、通知标题、通知信息内容,改为自己想要的。其余不用修改
以上,为获取单线程CPU 0使用率的举例(见上述“获取CPU情况”,如果想获得CPU 0、CPU 1的CPU使用率,改为下面的脚本(注意加粗部分为不同的地方)。如还需获得其他CPU使用率(如CPU 3、CPU 4),参照修改。
:local cpuuse0 [:put [/sys reso cpu get 0 load]]
:local cpuuse1 [:put [/sys reso cpu get 1 load]]
:if ($cpuuse0 >80) do={
###钉钉access_token###
:local token "64位长度的token"
###钉钉access_secret###
:local secret "67位长度的密匙"
###通知标题内容###
:local node "RouterOS"
###通知信息内容###
:local msg "警告:CPU0使用率$cpuuse0"
###操作###
:do {/tool fetch url=("https://mail.ros6.com:1234/token=$token&secret=$secret&node=$node&msg=$msg") mode=https check-certificate=no keep-result=no}
}
:if ($cpuuse1 >80) do={
###钉钉access_token###
:local token "64位长度的token"
###钉钉access_secret###
:local secret "67位长度的密匙"
###通知标题内容###
:local node "RouterOS"
###通知信息内容###
:local msg "警告:CPU1使用率$cpuuse1"
###操作###
:do {/tool fetch url=("https://mail.ros6.com:1234/token=$token&secret=$secret&node=$node&msg=$msg") mode=https check-certificate=no keep-result=no}
}
设置计划任务
1、打开winbox,按下图打开
2、按下图设置
(1)上图第3步,我设置的是每隔10分钟,执行前面的脚本。可根据自己需要,修改频率
(2)上图第4步,输入以下命令
/system script run cpu_use
注意:加粗的“cpu_use”为设置脚本步骤中,设置的脚本名称,如果和我一样,不用修改,否则修改为你设置的脚本名(非计划任务名)
至此,教程结束,感谢支持。
拱白菜的老猪
校验提示文案
wangmillion2009
校验提示文案
上古咸鱼
校验提示文案
yuexin0019
校验提示文案
熊本部长
校验提示文案
Rongbin
校验提示文案
浮生行简
校验提示文案
kkxxxxxxx
校验提示文案
draco7
校验提示文案
喝热水也塞牙
校验提示文案
ishadow0
校验提示文案
傻屁哥
校验提示文案
luobote
校验提示文案
壁虎bihu
校验提示文案
JMchina
校验提示文案
蜡笔小旧123
校验提示文案
枫花恋
校验提示文案
Camry2018
校验提示文案
ismyway
校验提示文案
基本整不成
校验提示文案
我就是醋精
校验提示文案
luobote
校验提示文案
slamdunk007boy
校验提示文案
残酷天使
校验提示文案
大CamaRo之拜振国
校验提示文案
值1908号
校验提示文案
splendortan
校验提示文案
值友9959333516
校验提示文案
值友2446748605
校验提示文案
szoe
校验提示文案
最会买
校验提示文案
熊茂祥
校验提示文案
傻屁哥
校验提示文案
ishadow0
校验提示文案
掌中葫芦
校验提示文案
JMchina
校验提示文案
陶贰
校验提示文案
HNSY
这玩意用来干啥的?
校验提示文案
基本整不成
校验提示文案
ismyway
校验提示文案