[Drcai's Noob Guide]第三期 RouterOS安装The Dude 做到全自动监控并使用Telegram Bot提醒

drcaidrcai 话题数:40会员, 大佬
最后编辑于 August 2019 教程 #0

查了一下淘宝运单 , 我的 RB4011 是 2019年5月7日买的 ...
自从入手这个路由器之后我3个月学到的东西比之前2年累计的还要多 ...

我要高升呼喊 : BugTik is the best ! ( 逃~

那么这一期我们要利用 Mikrotik 自带的一个附件 The Dude 来为自己所有的设备做一下全面监控 ...
监控的内容可以有 : 延迟...丢包率 ...当前网速...硬件温度...等等一切你想的到的 ...
用起来简单不说,作完之后就是一张网络拓扑图 ~ 非常容易识别 ~

这一期的教材全部参考的是俄文...印尼文翻英文整理出来的 ...所以你们还是看我唠叨比较好 .

首先安装 The Dude

https://mikrotik.com/download
下载你对应型号,对应固件版本号的 The dude . 如果使用的是老版本 , 下载link 手动修改一下版本号即可.
安装方式超级简单 : 打开Winbox -- Files , 把文件拖进去 ,上传完成之后,Reboot.
重启之后 继续 Winbox -- Dude -- Settings , 把Enabled 打勾 .

接下来下载 The Dude Client , 和Winbox 同理是个带图形界面的控制程序 .
进入界面后 后 Prefernces 先调整一下 : Auto Update To server Version 这个关掉 .
登录填写的 服务器 IP 账号密码 同Winbox ...

这一步就搞不定了 ? 退货换回 TP-LINK , 请 ~

开始真正进入教程 :

首先说一下 The Dude 添加设备的缺点 ,Winbox 端口必须用 8291 默认端口 , 那么还请各位自己做一下端口转发和防火墙白名单配置.

登录后他会让你 扫描整个网段中的设备 ...不推荐 .
直接按 + 号 ,在网格图上点一下添加位置 ,人工添加第一台设备 (The Dude 所属的 Master Server ) .

接下来 Add Device 这一步你可以按一下 Discover 按钮 ,或者无视直接按 Finish .

之后在地图上双击你的设备 ~
给他起个名字方便识别, Type 这里选择一下 可以调整设备的图标.

进入 RouterOS 选项卡,看看你的端口信息是否出现 确认是否在实时更新 . 确认配置无误再进入下一步.
The Dude 玩法有很多 , 本教程只教网络状态监控 .

接下来我们就可以添加需要监控的节点了 , 我们用如下网络拓扑来作为本次教学案例 :

首先我想监控一下 莫斯科的隧道 , 那么继续 + Device ,不是Network 哦 .
按照图片输入你要监控的 IP地址 , 比如我填的隧道对端的IP .

接下来 + Device 这一步 , 按一下加号 , 给他设个 ping的监控. 参数可以参考这张图片.
按照图片里的配置,监控会变得超灵敏,基本上一掉线就立刻改变状态 .
下文中你有 Master 和 Agent(Slave) 的教学 ,如果你的Agent 再海外切勿把灵敏度调的那么高.

在设备间添加连线 :

点一下 +号 -- Link . 对着你的ROS设备按下鼠标左键,把线多到你要监控的设备上.

Device : 选择你的The Dude 服务器
Mastering Type : RouterOS
Interface : 你连到这个监控目标用的网络接口
Speed : 网络带宽 , 建议写小一点,比如300M的带宽就写100M. (单位是 b/s)
因为他会根据负载来改变线的颜色 ,黑色 棕色 一路到红色为满载 .
Type: ethernet (这个参数只决定线的粗细)
负载上去之后的效果图:

好了 ,这么一来 实时网速监控做好了 ..

再来个添加 第二台ROS 作为 Agent的教学:

同样 按加号 添加一个 Device , IP 账号密码输完 , 设备选为RouterOS .
然后再添加一个你需要监控的设备 , 这里 Agent 选你另外那台Ros即可:

然而这里又有一个设计缺陷 : 当Master 和 Agent 网络不流畅的时候,所有的监控节点都会显示为掉线 .
所以尽量避免那种Master在国内 Agent在国外的方案 ,否则误报率大大提高.
调高下面的参数 ( 多检测几次才确认掉线 ) 这么做监测又不准了 ,平时那些 1分钟以内的断线你是不可能监测到了...
案例中 画圈部分就是靠这台 Agent来监控的~


你们最最关心的 Telegram BOT 制作部分来了 !

开始之前 ,先拿你的域名来反代一下 https://api.telegram.org .
这个你们都是专家了 , 不用我教 . 如果不会的话 ~ 那么到这里就可以放弃了 ~
如果 Master 放在国外可以不用这一步 .

先来帮自己建一个 Bot吧 ~
Telegram 客户端 @BotFather , /start 开始创建
/newbot , 给你BOT起个名 ,填写@的用户名 .
这个时候 他会给你一个 HTTP API Token ,先放一下 ..
把你新建的 BOT 加入到你的群里 ~

输入网址 :
https://api.telegram.org/bot(括号去掉里面的内容改成token)/getUpdates

然后出来一堆JB玩意 ,我什么都看不懂 ...
搜索 chat":{"id" , 后面又个 -号 这个不能去掉 ,包括这个 -数字 就是你这个群的Chat ID .

接下来测试一下 Bot ~
https://api.反代.域名/bot(括号去掉里面的内容改成token)/sendMessage?chat_id=-数字&text=测试

如果你的群里弹出 测试消息 , 就说明Bot的创建过程没有问题 .

进入 The Dude Notification 设置环节 :

根据图片把Type 选为 execute on server
Insert Variable 是用参数列表 , 你可以自行发挥.

Command 范例 :
/tool fetch url="https://api.反代.域名/bot编号/sendMessage?chat_id=-编号&text=[爆炸检验员] 我们的设备: [Device.Name] 情况转换为: [Service.Status]. "

别急 ,到了这一步还没完,我们还需要把这个监控 应用到每个监控节点中.
双击你的监控节点 , 再双击ping 选项 , Notifications 选项卡中安图片打勾:

完工了 ~ 你可以去设置一下 BOT的图标和简介 ..进入实战阶段:
拔网线,插网线 ... 群里出现这样的效果就说明一切成功了.

Drcai
2019.8.13

登录注册后才能评论。