ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

2020-12-09 14:36:58 62点赞 415收藏 66评论

创作立场声明:1、本文所写的内容,来自于自己的使用分享,并未查阅网上的类似教程。本人小白一枚,大神轻喷。
2、写本文前,已在网上搜索相关内容,但未找到类似的。不过互联网如汪洋大海,难免有难以发现的信息。如已有人在其他平台发布类似的信息,请联系我,谢谢(本文写作背景,见上述第一条)。
3、感谢大猫猫提供的钉钉接口,方便我等小白。
4、其余未想到的事宜,请指正

前言

大家好,做为加入张大妈1869天的伸手党,却没发表过一篇文章,深感鸭梨山大。

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

本文所写的内容,来自于自己的使用分享,并未查阅网上的类似教程。本人不保证,在互联网的某个角落,没有类似的文章。但写本文前,已在网上搜索相关内容,未找到类似的。当然,也可能有些大神已经这么做了,只是没提供分享。本人小白一枚,不解答技术性问题。

需要用到的项目地址

感谢大猫猫提供的钉钉接口,方便我等小白。ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

也可用微信通知,但似乎受限制了,我这没成功,所以用的钉钉。

适用环境

话说有一天,突然发现网络卡顿,打开winbox进系统一看,cpu 0使用率100%,其余的(cpu1 cpu2 cpu3)使用率0%,有木有?ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知下图为演示用,此时没占用100%)

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

日志并没发现什么记录,这种情况偶尔会出现(概率很小),但就是找不到原因。怀疑是被攻击了。

于是有了此文。

总体思路:用脚本,分别获取cpu 0、cpu 1、cpu 2、cpu 3(我是四线程的CPU)的使用率,超过设定值(警戒值,我是超过80%),就用钉钉发送通知,效果如下:(下图为演示用,此时没超过80%)

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

注册钉钉机器人

官方文档。本人不保证内容的有效性,建议查询官方文档,获得最新的设置方式。

主要是按官方文档,获得token和secret。

大致流程为:

1、打开PC端钉钉,点击头像,选择“机器人管理”。

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

2、在机器人管理页面,拉到最下面,选择“自定义”机器人,输入机器人名字(随意)并选择要发送消息的群(建议选择体验群,并修改群名,略......),同时可以为机器人设置机器人头像。

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

3、获得token(即上图第4步的Webhook)。注意,复制后的格式为链接

我们只需要后面的"一大串值"即可 ,我们只需要后面的"一大串值"即可,我们只需要后面的"一大串值"即可 重要的事情说三遍。即=后面的值,复制到其他地方,等下要用

4、安全设置,选“加签”(上图),获得secret,复制到其他地方,等下要用(灰色的地方双击鼠标,ctrl+c复制)

获取CPU情况

打开winbox,选择左边的“NewTerminal”

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

在打开的窗口中,输入以下命令,获取CPU情况

sys reso cpu pr

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知我这为四线程,cpu0的编号为0,使用率1%

设置脚本

项目地址,获取最新的脚本。本人不保证内容的有效性,建议查询项目地址,获得最新的设置方式。

1、打开winbox,按下图打开

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

2、按下图设置

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

(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,按下图打开

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

2、按下图设置

ros(RouterOS)定时获取CPU使用率,超过指定值发送钉钉通知

(1)上图第3步,我设置的是每隔10分钟,执行前面的脚本。可根据自己需要,修改频率

(2)上图第4步,输入以下命令

/system script run cpu_use

注意:加粗的“cpu_use”为设置脚本步骤中,设置的脚本名称,如果和我一样,不用修改,否则修改为你设置的脚本名(非计划任务名)

至此,教程结束,感谢支持。

展开 收起
66评论

  • 精彩
  • 最新
  • 貌似大妈玩ROS的人不多 [尴尬]

    校验提示文案

    提交
    恩,都玩openwrt去了

    校验提示文案

    提交
    大佬,有时间写一遍ROS的虚拟机软路由保姆教程呗 [期待] [期待]

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 同理TG机器人通知是不是也有可能

    校验提示文案

    提交
    已经有了,还是那个网站。我就不宣传了 [邪恶]

    校验提示文案

    提交
    收起所有回复
  • 钉钉机器人太沙币了,还要建群,普通用户搞个群又不是很方便

    校验提示文案

    提交
    群里就我一个用户和机器人 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 帮顶!用mirkotik的人都牛叉

    校验提示文案

    提交
    其实只是普通上网,简单的。ros就是自由化(自定义)程度高一些,可以实现各种功能

    校验提示文案

    提交
    一下子感觉自己很🐂叉了

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我这ros的cpu一直是个位数 没什么高负载的业务

    校验提示文案

    提交
    我一般也是个位数。怀疑被攻击了,断开拨号,cpu立马正常了

    校验提示文案

    提交
    这东西很容易被攻击 [皱眉] 还都是一些奇奇怪怪的国外ip

    校验提示文案

    提交
    收起所有回复
  • 这个能接入server酱吗?

    校验提示文案

    提交
    没试过,看网上有没有接口吧

    校验提示文案

    提交
    收起所有回复
  • 鼓励鼓励 感觉非常棒 能通知别的吗

    校验提示文案

    提交
    能获取到的信息,都行

    校验提示文案

    提交
    收起所有回复
  • ROS 有型号推荐吗

    校验提示文案

    提交
    无。按预算买

    校验提示文案

    提交
    你用的是什么型号呢

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 这个能玩外国网游吗?

    校验提示文案

    提交
    哪个?ros?可以的

    校验提示文案

    提交
    收起所有回复
  • Ros有api接口的,放一个树莓派做watchdog用api去查询这些资源会更可靠吧

    校验提示文案

    提交
    这个对小白来说,就有点难度了。不过我后来改了一下,定期检查使用率,过高自动重新拨号,也能实现我的需求。没必要发送通知 [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • 有个问题请教下作者,ros有没有判断设备在线状态然后开关防火墙mangle规则的脚本?

    校验提示文案

    提交
    我没。不过可以实现。通过ping判断,然后命令开、关

    校验提示文案

    提交
    收起所有回复
  • RB3011带4个MikroTik AP的路过,我只是基础用用,还是老哥玩得溜。但不知道是3011性能不行还是测速点不行,我家千兆宽带,桥接模式路由拨号,全部新的六类线,跑测速最多最多只能到880M,900都没见过了

    校验提示文案

    提交
    估计测速点的问题,或者交换机(如果有)。我RB450Gx4一直能跑940Mbps左右(千兆宽带)

    校验提示文案

    提交
    那应该是测速点了,我直连路由器也是这个数。我交换机是网件的JGS524PE

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 好系统,我用了8年了。开始d525带过几百用户,最好的中文文档还是余松的,感兴趣的付费订阅不贵。还有个脚步工具不过站关了 [傻笑]

    校验提示文案

    提交
    是的,我如门也是看了余松的书

    校验提示文案

    提交
    收起所有回复
  • 吓死我了,还以为是防止上班摸鱼用的。

    校验提示文案

    提交
    米兔米兔,吓死宝宝了

    校验提示文案

    提交
    收起所有回复
  • Ros不适合新手玩。这和linux一样,新手会崩溃的。

    校验提示文案

    提交
  • 这个干啥用的?

    校验提示文案

    提交
  • ros老是会失联 最后还是用了op [小怒]

    校验提示文案

    提交
    最稳定的就是ros,设置好了就根本感觉不到它的存在了,除非你断网断电,不然感觉不到它有什么波动。

    校验提示文案

    提交
    rb4011半年没掉过线

    校验提示文案

    提交
    收起所有回复
  • 高手都玩ros! [赞一个]

    校验提示文案

    提交
  • ros进阶太难了…除非照着教程折腾一遍就放那吃灰…否则还是OP简单…

    校验提示文案

    提交
  • 希望多一点ROS的教程,我需要一些docker下安装Ros,软路由的。碰壁了。安装ROS的时候提示无法找到服务器。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

zobinqy

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
415
扫一下,分享更方便,购买更轻松