Hướng dẫn thực hành · MikroTik
Trong trang này
Cài đặt cảnh báo mạng mở rộng MikroTik
Phạm vi
Gói cảnh báo được gom thành ba nhóm độc lập:
router: CPU, RAM, storage và thông báo reboot.wan: số lần rớt PPPoE, packet loss/latency, CGNAT và lỗi cổng WAN.lan-security: loop Layer 2 và DHCP Server lạ.
Tất cả dùng lại Bot Token, Chat ID, PPPoE interface và probe trong pppoe-monitor-config. Phải cài PPPoE Monitor trước. Không nhập lại Bot Token vào các Source bên dưới.
Cài nhanh bằng Terminal
Dán nguyên dòng sau sau khi PPPoE Monitor đã hoạt động:
/tool fetch url="https://mikrotik.thachanhitt.vn/network-alerts-install.rsc" dst-path="network-alerts-install.rsc" check-certificate=yes; /import file-name="network-alerts-install.rsc"; /file remove [find where name="network-alerts-install.rsc"]
Installer tạo ba nhóm ở trạng thái Disabled. Chạy thử rồi bật theo mục 7.
Cập nhật lỗi tin khởi động bị lặp
Với router đã cài, không cần chạy lại installer:
- Trong System → Scripts → network-alert-router, thay Source bằng Source mới.
- Trong System → Scripts và System → Scheduler, tích thêm quyền policy cho các script/scheduler của gói được liệt kê bên dưới; giữ nguyên các quyền đang có. Áp dụng tương tự cho
pppoe-monitor,pppoe-monitor-config,pppoe-monitor-resetvà Schedulerpppoe-monitor-every-3mnếu đã cài. - Sau khi cập nhật, lần khởi động tiếp theo chỉ gửi một tin thành công, gồm IP WAN PPPoE. Nếu Telegram lỗi, script vẫn thử lại trong 10 phút đầu.
Quyền chạy script phụ thuộc cách gọi; xem MikroTik Script permissions.
1. Tạo Script
Trong WinBox/WebFig, vào System → Scripts → +. Tạo năm Script:
| Name | Policy | Source |
|---|---|---|
network-alert-config |
read, write, policy, test |
Mở Source |
network-alert-router |
read, write, policy, test |
Mở Source |
network-alert-wan |
read, write, policy, test |
Mở Source |
network-alert-lan-security |
read, write, policy, test |
Mở Source |
network-alert-lan-dhcp |
read, write, policy, test |
Mở Source |
Mở từng file Source, sao chép toàn bộ nội dung rồi dán vào ô Source. Không dán khối Source dài vào Terminal.
Nếu cài hoàn toàn thủ công thay vì chạy installer, chạy một lần:
:global netAlertRouterBootSent; :set netAlertRouterBootSent true
Lệnh này tránh báo reboot giả ngay sau khi vừa cài.
2. Tạo ba Scheduler
Vào System → Scheduler → +. Tạo ba Scheduler và giữ Disabled cho tới khi thử xong.
Router
- Name:
network-alert-router-every-1m - Interval:
00:01:00 - On Event:
/system script run network-alert-router - Policy:
read,write,policy,test
CPU được đọc mỗi phút. RAM/storage được đọc mỗi 5 lần chạy. Sau reboot, script thử gửi thông báo mỗi phút trong 10 phút đầu cho tới khi thành công. Tin khởi động liệt kê IP WAN của các PPPoE đang kết nối, không đọc hoặc đính kèm log reboot. Gửi thành công một lần thì dừng trong lần khởi động đó.
Quyền policy cùng test cần cho biến global giữ trạng thái giữa các lần Scheduler chạy. Thiếu policy có thể làm tin khởi động gửi lại mỗi phút dù log đã ghi SUCCESS; chạy thử bằng Terminal với quyền admin sẽ không phát hiện lỗi này.
WAN
- Name:
network-alert-wan-every-1m - Interval:
00:01:00 - On Event:
/system script run network-alert-wan - Policy:
read,write,policy,test
Trạng thái PPPoE được kiểm tra mỗi phút. Packet loss/latency và counter cổng WAN được kiểm tra mỗi 5 lần chạy. CGNAT được kiểm tra mỗi 60 lần chạy.
Khi một đường PPPoE đang rớt, đang chờ gửi báo phục hồi, hoặc mới phục hồi chưa đủ 5 phút, các cảnh báo wan của riêng đường đó tạm dừng. Nhóm router và lan-security vẫn chạy. Cơ chế này tránh Quality, CGNAT, link flap và lỗi cổng gửi dồn khi Internet vừa lên lại.
LAN Security
- Name:
network-alert-lan-security-every-1m - Interval:
00:01:00 - On Event:
/system script run network-alert-lan-security - Policy:
read,write,policy,test
CLI tương đương:
/system scheduler add name="network-alert-router-every-1m" interval=1m on-event="/system script run network-alert-router" policy=read,write,policy,test disabled=yes
/system scheduler add name="network-alert-wan-every-1m" interval=1m on-event="/system script run network-alert-wan" policy=read,write,policy,test disabled=yes
/system scheduler add name="network-alert-lan-security-every-1m" interval=1m on-event="/system script run network-alert-lan-security" policy=read,write,policy,test disabled=yes
3. Cấu hình phát hiện loop mạng
network-alert-lan-security chỉ báo loop Layer 2 khi có bằng chứng từ RouterOS:
- Interface có
loop-protect-status=disablevì nhận lại gói Loop Protect của chính nó. - Không đọc log
probably loop/loop-protectđể suy ra sự cố; log có thể chứa source script.
Ưu tiên dùng protocol-mode=rstp trên bridge. Kiểm tra:
/interface bridge print detail
Không tự đổi toàn bộ bridge/port từ xa nếu chưa hiểu topology. Nếu muốn chủ động chặn loop, chỉ bật Loop Protect trên cổng LAN vật lý đã xác định:
/interface ethernet set ether2 loop-protect=on loop-protect-disable-time=5m
Không bật trên WAN, cổng quản trị duy nhất hoặc toàn bộ port cùng lúc.
4. Tạo DHCP Alert
Chỉ dùng trên interface LAN đang chạy DHCP Server hoặc dùng IP tĩnh. Không bật trên interface đang chạy DHCP Client.
Vào IP → DHCP Server → Alerts → +:
- Interface: interface LAN của DHCP Server, với generator là
BridgeLAN. - Valid Servers: MAC của MikroTik/bridge và mọi DHCP Server hợp lệ khác.
- Alert Timeout:
01:00:00. - On Alert:
:global netAlertDhcpInterface $interface; :global netAlertDhcpAddress $address; :global netAlertDhcpMac $"mac-address"; /system script run network-alert-lan-dhcp
Giữ Disabled lúc đầu. DHCP Alert là tính năng RouterOS có sẵn; nó gửi DHCP Discover mỗi phút để tìm server lạ. Xem MikroTik DHCP Alerts.
5. Chất lượng WAN và device-mode
Nhóm WAN luôn đo packet loss bằng /ping. Nó dùng thêm /tool flood-ping để lấy độ trễ trung bình. Nếu RouterOS 7 device-mode chặn flood-ping, packet loss vẫn hoạt động và latency hiển thị không đo được.
Không tự bật thêm quyền device-mode từ xa. Thay đổi device-mode cần xác nhận vật lý và có thể ảnh hưởng bảo mật.
6. Cổng WAN được giám sát
Nhóm WAN tự lấy interface nền của PPPoE và lần qua một lớp VLAN. Nếu topology khác hoặc log báo không tìm thấy Ethernet port, sửa trong Source network-alert-config:
:global netAlertWanPort1 "ether1"
:global netAlertWanPort2 "ether2"
Script chỉ đọc counter, không reset counter và không tắt cổng.
7. Chạy thử và bật nhóm
/system script run network-alert-router
/system script run network-alert-wan
/system script run network-alert-lan-security
/log print where message~"NET-ALERT"
Không có ERROR hoặc TELEGRAM ... FAILED thì bật nhóm cần dùng:
/system scheduler enable [find where name="network-alert-router-every-1m"]
/system scheduler enable [find where name="network-alert-wan-every-1m"]
/system scheduler enable [find where name="network-alert-lan-security-every-1m"]
/ip dhcp-server alert enable [find where on-alert~"network-alert-lan-dhcp"]
Muốn tắt nhóm LAN Security hoàn toàn phải tắt cả Scheduler và DHCP Alert.
8. Ngưỡng mặc định
Sửa đầu Source network-alert-config nếu cần:
- CPU:
>90%trong 5 lần kiểm tra liên tiếp; phục hồi khi<=80%. - Rớt mạng: xác nhận sau 3 lần ping lỗi liên tiếp; cảnh báo từ lần rớt thứ 4 trong ngày.
- CGNAT:
100.64.0.0/10; đồng thời báo private IPv410/8,172.16/12,192.168/16. - Chất lượng WAN: loss
>=30%hoặc RTT trung bình>=200mstrong 3 mẫu liên tiếp; mỗi mẫu cách khoảng 5 phút. - RAM/storage: phần trống
<=10%trong 3 mẫu liên tiếp; phục hồi từ>=15%. - Link flap: cảnh báo từ lần link down thứ 4 trong ngày.
- Counter lỗi WAN: tổng FCS/alignment/overflow/collision tăng ít nhất 100 trong khoảng 5 phút.
9. Tải và tính khả thi
- Nhẹ: CPU, RAM, storage, uptime, IP WAN và counter Ethernet chỉ đọc thuộc tính RouterOS.
- Trung bình: kiểm tra PPPoE dùng vài ICMP mỗi phút.
- Nặng nhất: WAN Quality gửi 10 ICMP mỗi 5 phút trên mỗi đường; vẫn rất nhỏ so với lưu lượng Internet bình thường.
- Loop log quét log trong RAM mỗi phút. Log RouterOS có kích thước hữu hạn; chi phí thường thấp, nhưng nên kiểm tra CPU thực tế trên thiết bị rất yếu.
- DHCP Alert gửi một DHCP Discover mỗi phút theo cơ chế native của RouterOS.
- Telegram chỉ gọi HTTPS khi phát sinh cảnh báo hoặc phục hồi, không gọi mỗi chu kỳ bình thường.
Ba nhóm dùng ba Scheduler vì vẫn cần bật/tắt độc lập. Gom tiếp thành một Scheduler sẽ giảm rất ít tải nhưng mất khả năng tách nhóm.
Sau khi bật, theo dõi 24 giờ:
/system resource print
/system script job print
/log print where message~"NET-ALERT"
Kiểm tra thực tế trên đúng RouterOS và model router vẫn bắt buộc trước khi dùng chính thức.