
影刀RPA新手教程IT运维自动化完全指南——服务器状态监控、日志采集与告警通知我在一家互联网公司做运维时每天晚上都要登录十几台服务器看 CPU、内存、磁盘再登录日志平台下载错误日志手工整理成告警邮件发给值班群。这项工作枯燥、容易漏而且半夜出问题根本来不及处理。后来我学了影刀RPA用两周时间搭了一套运维机器人每天早上八点自动发日报异常时立刻飞书告警。这篇文章把这个项目完整复盘。一、安装影刀与浏览器插件IT运维场景里影刀通常部署在运维堡垒机或值班电脑上。安装时建议用管理员权限运行安装包因为后面很多操作需要访问系统日志或远程桌面。浏览器插件必须装因为很多监控平台是网页版比如 Zabbix、Prometheus Grafana、阿里云监控。安装完成后用监控平台登录页测试捕获。如果影刀在服务器上运行注意远程桌面连接时本机和远程机器的缩放比例要一致否则捕获元素会偏移。我有一次远程到上海机房的服务器本地 100% 缩放远程 125%元素全部错位重启影刀和浏览器也没用最后把两边缩放统一才解决。二、元素定位四合一监控平台页面通常有大量的图表和表格。XPath 定位表格里的告警行例如//table[classalert-table]//tr[contains(.,Critical)]//td[1]。CSS 选择器定位图表标题和筛选按钮比如.dashboard-title、.time-range-picker。正则表达式从日志文本和告警标题里提取关键信息例如从CPU usage is 95.6% on server web-01里提取服务器名和数值server\s([a-z0-9-]).*?(\d\.?\d*)%。XPath 和 CSS 的选型监控平台表格动态刷新用 XPath 的文本匹配更稳筛选器和时间选择器用 CSS 的 class 定位更快。两者都搞不定时用图像识别点击按钮或读取图表状态。三、变量与数据类型运维数据通常以服务器为单位。一条服务器状态记录包括 IP、主机名、CPU、内存、磁盘、状态店群矩阵自动化突破运营极限server{ip:10.0.1.23,hostname:web-01,cpu:78.5,memory:82.1,disk:91.3,status:warning}数字用来做阈值判断比如 CPU 大于 80% 就告警。字符串处理主机名和 IP注意 IP 是字符串不是数字。列表存所有服务器记录字典存单条记录。JSON 在调用监控 API 时大量使用例如 Prometheus 的查询接口返回 JSONimportrequests urlhttp://prometheus:9090/api/v1/query?query100-(avg%20by%20(instance)%20(irate(node_cpu_seconds_total{mode%22idle%22}[5m]))*100)resprequests.get(url)dataresp.json()字典键不存在时用get方法给默认值比如server.get(disk, 0)避免监控数据缺失时流程崩溃。四、流程控制运维流程里循环用来遍历服务器列表。ForEach 列表循环处理每台服务器For 次数循环用于按固定时间间隔采集比如每 5 分钟采集一次。相似元素循环用于处理监控页面上的所有告警卡片。While 循环用于持续监控比如while True一直跑配合sleep实现定时采集。If 判断处理阈值规则CPU 大于 90% 严重告警大于 80% 一般告警大于 70% 提示。磁盘大于 90% 立即告警。日志里出现ERROR或FATAL关键字触发告警。Try-Catch 处理网络异常监控平台偶尔 502捕获异常后重试超过 3 次发通知说平台不可用。forserverinservers:try:statusfetch_status(server[ip])ifstatus[cpu]90:alert_critical(server)elifstatus[cpu]80:alert_warning(server)exceptExceptionase:print(获取状态失败str(e))五、网页自动化监控平台页面加载慢等待策略很关键。我通常先用等待元素存在等登录后的仪表盘出现再操作。弹窗处理五步流程监控平台常有确认框、筛选下拉和时间选择器要逐一处理。翻页在告警历史列表里常见用下一页按钮 disabled 判断。懒加载在日志平台很常见滚动加载更多日志先记录当前行数滚动到底部再获取去重后判断是否继续。iframe 在 Grafana 嵌入仪表盘时常见切换 frame 操作完切回。窗口切换在点击日志详情时常见新窗口打开日志全文机器人要切换过去读取再关闭。我踩过一个小坑日志详情窗口关闭后主窗口没有自动切回焦点后续操作失败。后来我加了激活窗口指令显式切回主窗口。六、数据处理日志采集是运维自动化的核心。影刀可以用执行 Python 代码读取本地日志文件也可以用 SSH 或 HTTP 请求远程获取。文本处理用正则提取时间、级别、模块、消息。例如 Nginx 错误日志^(?Ptime\d{4}/\d{2}/\d{2}\s\d{2}:\d{2}:\d{2})\s\[(?Plevel\w)\]\s(?Pmsg.*)$。Excel 用于生成日报。读取模板文件写入今日异常数、告警数、服务器状态摘要。数据清洗时要统一时间格式去掉重复日志按主机名分组。数据库操作方面把监控数据写入时序数据库或 MySQL方便后续分析。连接参数加read_timeout大日志查询不会断。关闭连接不能忘。七、鼠标键盘图像自动化有些运维工具是桌面客户端比如远程桌面连接、堡垒机客户端、某些旧版监控软件。影刀用图像识别点击菜单和按钮。模拟键盘输入用于输入命令比如按 WinR 打开运行输入 cmd 回车。图像锚点用窗口标题或图标偏移到目标按钮。我做过一个流程在远程桌面里打开任务管理器截图识别 CPU 占用最高的进程如果超过阈值就自动结束进程。八、进阶技能temu店群自动化报活动案例HTTP 请求是运维自动化的利器。Prometheus、Zabbix、阿里云、腾讯云都有 API影刀里可以直接调用。Python 协同用于复杂分析比如用 pandas 统计日志里的错误模式用 matplotlib 生成趋势图。OCR 用于识别截图里的告警数字如果监控平台没有 API只能截图后用 OCR 读数。ADB 在运维移动设备或工控机时用到。九、平台实战IT 运维经常要对接多个平台。比如从阿里云 ECS 控制台获取实例列表从 Zabbix 获取告警从 Grafana 获取图表统一汇总到飞书。影刀可以跨平台串联。我做过一个流程每天早上从 Prometheus 拉 CPU 数据从 ELK 拉错误日志生成一张汇总表发到值班群。十、系统联动告警通知是运维自动化的灵魂。飞书机器人最常用把异常信息和截图发到群。影刀里用 Webhook 地址Body 写成 Markdown 格式。邮件用于发送正式日报和告警记录。定时任务设置每 5 分钟采集一次关键指标每天早上 8 点发送日报每周一晚上发送周报。如果服务器宕机机器人无法运行需要结合云平台告警做兜底。十一、工程化与规范运维流程建议拆成采集服务器状态、采集日志、分析阈值、生成报告、发送通知。每个子流程独立用参数传递服务器 IP 和告警级别。命名规范变量v_、子流程sub_、元素ele_。调试时用断点我遇到过一次告警阈值判断错误逐行看才发现 CPU 值被读成了字符串比较时按字典序不是按数值。版本选择上单台服务器监控用社区版足够多服务器、多机器人协作上企业版。流程模板化方面可以把通用监控流程做成模板新项目只改 API 地址和阈值。安全方面密码和 Token 不要硬编码用影刀的变量加密或环境变量管理。十二、速查表与常见报错元素定位失败监控平台更新频繁class 可能变化用 XPath 文本匹配更稳。XPath 语法报错检查中括号。Excel 报错日期格式问题用格式化日期指令。循环报错服务器列表为空。弹窗拦截告警确认弹窗标题变化用contains模糊匹配。日志采集失败检查文件路径或权限。数据库报错连接超时加read_timeout截断字符串检查字段长度。我整理的影刀RPA学习主页有运维自动化模板和监控脚本home.linyan.cloud。IT 运维自动化的核心不是替代人而是把重复巡检和告警响应交给机器人让人去解决真正复杂的问题。#影刀RPA #RPA教程 #IT运维自动化 #服务器监控 #日志采集 #告警通知 #新手入门作者林焱