? 項目已穩定運行 180+ 天,累計巡檢 14 萬接口,郵件告警 0 漏報
?? CSDN 質量分 5.0 標準:代碼 + 圖表 + 可落地 + 可復制, 歡迎收藏、點贊、評論三連!
一、背景
某 高校學生宿舍采用銳捷 RG-AM5532 系列交換機下掛無線 AP,高峰期 2.4 萬終端并發。
網絡中心痛點:
-
傳統人肉登錄交換機
show interface status
→ 眼瞅 100M/10M 協商異常,效率低; -
異常接口無法第一時間通知到值班 QQ;
-
學期末大流量時問題集中爆發,排障時間 > 30 min。
于是有了本自動化巡檢腳本:
每天 06:00 定時跑腳本 → 生成 Excel → 自動發 QQ 郵件 → 值班同學 1 min 內收到告警。
二、運行效果
指標 | 落地值 |
---|---|
覆蓋樓棟 | 8 棟宿舍 + 13棟教學樓 |
交換機數量 | 80 臺 AM5532 |
接口總數 | 14 112 |
巡檢耗時 | 5 min 34 s |
10/100M 異常占比 | 1.8 % |
郵件漏報次數 | 0 |
三、整體流程圖
四、代碼倉庫結構(共 5 個文件,不要改動)
文件 | 作用 |
---|---|
AM_ip.txt | 設備清單,格式 AS-G1-2F-1#-RG-AM5532_1:172.18.200.5 ,支持 # 注釋 |
AM-main.py | 主調度腳本,讀取設備→Telnet→Excel→QQ郵件一條龍 |
telnet_utils.py | 封裝 Telnet 連接、登錄、分頁處理 --More-- |
Analyze_device_files.py | 解析 AM_ip.txt,返回 {設備名: IP} |
interface_status.py | 正則解析 show interface status & description ,提取接口、速率、VLAN、下聯 AP 名稱 |
五、核心代碼拆解(全部實測通過,請勿修改)
1?? AM_ip.txt(節選)
AS-學生宿舍1-RG-AM5532_1:172.18.200.5
AS-學生宿舍2-RG-AM5532_2:172.18.200.6
注意:分隔符用中文冒號 :
或英文 :
均可,空行和 #
注釋自動忽略。
2?? AM-main.py(主程序)
import datetime
from telnet_utils import connect_telnet, execute_telnet_command
from Analyze_device_files import parse_devices
from interface_status import parse_interface_status, parse_interface_description
import pandas as pd
from openpyxl.styles import Border, Side
import smt