半夜被报警电话叫醒的日子,终于能翻篇了
上周三凌晨两点,路由器配置出问题,监控系统一连发了十几条告警。老张一边打哈欠一边登录设备,手动检查接口状态、抓日志、回滚配置。这种场景对很多网工来说太熟悉了——明明知道该做什么,却得亲自一步步点,像极了当年抄写课文的小学生。
不是不想偷懒,是怕出事
很多人觉得自动化门槛高,得会写代码、搭平台,其实现在不少工具已经把操作封装得很友好。比如日常的备份配置、批量改密码、端口启停,完全可以用图形化工具拖拖拽拽就搞定。
像某银行省级分支,以前每周五下午都要花三小时做设备健康巡检。现在用一个轻量脚本定时跑,自动生成PDF报告扔进共享文件夹,连邮件都自动抄送相关人。省下来的时间够开完两个会。
从“人肉执行”到“流程托管”
真正改变工作方式的,是把整套运维动作串成流程。比如新服务器上线,传统做法是:申请IP、配交换机端口、加防火墙策略、登记资产表……每个环节找不同人,来回确认。
换成自动化工具后,填个表单就触发整个链条:IP地址自动分配,交换机命令下发,安全组同步开通,台账自动更新。全程不到五分钟,出错率反而比人工低。
试试这个小例子:自动清理闲置端口
很多交换机上挂着一堆没人管的端口,既占资源又有安全隐患。下面这段Python脚本结合Netmiko,可以定期登录设备,查Last Input时间超过7天的接口,自动shutdown:
from netmiko import ConnectHandler
import re
switch = {
"device_type": "cisco_ios",
"host": "192.168.1.1",
"username": "admin",
"password": "secret123"
}
connection = ConnectHandler(**switch)
output = connection.send_command("show interfaces status")
for line in output.splitlines():
if_match = re.search(r"(Gi\d+/\d+)\s+\w+\s+\w+\s+(\d+)", line)
if if_match:
interface, vlan = if_match.groups()
detail = connection.send_command(f"show interface {interface}")
if "last input 7d" in detail.lower():
connection.send_config_set([f"interface {interface}", "shutdown"])
connection.disconnect()
这脚本跑在计划任务里,每周一早上自动执行。运维人员只需要看一眼日志有没有异常,不用再一条条翻命令行。
别等出事才想起自动化
去年有家公司核心交换机配置被误删,恢复花了七小时。事后复盘发现,只要每天自动备份一次配置,根本不会这么被动。自动化不是炫技,它是给重复劳动上保险。
现在主流工具像Ansible、Rundeck、Zabbix Trigger配合Webhook,甚至国内一些零代码平台,都能快速实现常见场景的流程自动化。关键是先动手,哪怕从最简单的开始。
把那些固定套路交给机器去跑,你才能腾出手处理更复杂的问题,比如优化架构、分析流量模型,或者——准点下班。