1. 企业OPC系统数据断连的典型场景与排查思路总览
OPC数据断连这件事,干过工业自动化或者数据采集的人应该都不陌生。你正盯着SCADA画面上跳动的产线数据,突然某个关键工位的温度、压力、转速全部变成灰色,或者数值卡在最后一次刷新的状态一动不动。更让人头疼的是,这种情况往往不是持续性的,而是间歇性发作——你去现场看的时候它好了,你一走它又断了。这种“幽灵故障”在企业OPC系统里非常常见,尤其是涉及西门子OPC软件、Schneider Electric OPC Factory Server这类传统OPC DA/OPC AE架构,以及近几年越来越多的OPC UA协议读取PLC、传感器、数控机床等设备运行状态的场景。
先把这个问题的边界划清楚。OPC数据断连,指的是OPC客户端(通常是SCADA、MES、Historian或自研的数据采集程序)与OPC服务器之间,或者OPC服务器与底层设备(PLC、CNC、智能仪表)之间的数据交互出现中断、超时、质量戳变差甚至完全失联的现象。它可能表现为三种形态:第一种是连接层断连,TCP会话直接断开,客户端报“无法连接到服务器”或“会话超时”;第二种是数据层断连,连接还在,但数据不更新了,OPC Item的质量戳变成Bad或Uncertain;第三种是间歇性抖动,数据时有时无,刷新频率极不稳定。
这三种形态对应的排查路径完全不同。连接层断连优先查网络和DCOM配置,数据层断连优先查设备侧和服务器组态,间歇性抖动则要同时考虑网络抖动、服务器负载和客户端轮询策略。很多人在排查时容易犯一个错误:一上来就重启OPC服务器或者重启采集程序。重启确实能暂时恢复,但根因没找到,过几个小时又断,反复几次之后现场操作工都对你翻白眼。
我自己的经验是,排查OPC断连要遵循“先分层、后聚焦、再验证”的原则。分层是指把整个数据链路拆成设备层、网络层、OPC服务器层、客户端层四个层级,逐层排除。聚焦是指在某一层内,用最小化的测试手段锁定具体故障点。验证是指找到疑似原因后,不要急着改配置,先做对照实验确认因果关系。这套方法听起来简单,但真正执行到位的人不多,因为现场往往有生产压力,大家倾向于“先恢复再说”。
还有一个背景需要交代:传统OPC DA依赖Windows的DCOM机制,这在跨网段、跨防火墙、跨操作系统的场景下极其脆弱。很多企业早期上的OPC系统跑在Windows XP或Windows 7上,后来IT部门为了安全把防火墙策略收紧、把操作系统升级,结果OPC断连频率明显上升。这不是OPC本身的问题,而是DCOM的动态端口分配和身份验证机制在现代网络环境下水土不服。所以如果你的企业正在从OPC DA向OPC UA迁移,很多断连问题会自然消失,但迁移过程中的配置不当又会引入新的断连模式。这个后面会详细展开。
这篇文章面向的是企业里负责OPC系统运维的工程师、自动化集成商的技术人员,以及需要从OPC服务器取数据做二次开发的数据工程师。不管你是刚接手一个烂摊子,还是正在设计新的数据采集架构,下面这些排查办法和实操细节都能直接拿去用。
2. 从设备层到客户端:OPC数据链路的逐层拆解
2.1 设备层:PLC与数控机床的数据供给是否稳定
设备层是整个数据链路的源头。如果PLC本身就不往外吐数据,或者吐出来的数据质量有问题,那OPC服务器再稳定也没用。我遇到过好几次这样的情况:OPC服务器日志显示某个Item的质量戳频繁变Bad,查了半天网络和服务器配置都没问题,最后发现是PLC那边的通信模块负载过高,或者PLC程序里某个DB块被频繁读写导致扫描周期抖动。
排查设备层,第一步是确认PLC的通信负载。以西门子S7-1200/1500为例,你可以通过TIA Portal的在线诊断功能查看CPU的通信负载率。如果通信负载长期超过50%,说明PLC的通信资源已经被大量占用,这时候OPC服务器再往上加轮询请求,PLC响应不过来就会丢包或超时。解决办法要么是降低OPC客户端的轮询频率,要么是把部分数据采集任务转移到独立的通信模块上。
第二步是检查PLC与OPC服务器之间的物理链路。网线、交换机端口、光电转换器这些环节都可能出问题。我见过一个案例,现场用的是百兆工业交换机,OPC服务器和PLC都接在上面,平时数据量不大没问题,但一旦产线满负荷运行,PLC上传的数据量激增,交换机背板带宽不够,就开始丢包。后来换成千兆交换机,断连问题直接消失。所以别小看物理层,很多时候问题就出在最不起眼的地方。
对于数控机床,情况更复杂一些。很多老式CNC系统用的是RS-232串口或者专用总线,需要通过协议转换网关才能接入OPC服务器。这类网关的缓冲区和超时设置非常关键。如果网关的缓冲区太小,CNC瞬间吐出一大批数据就会溢出,导致部分数据丢失甚至连接重置。我的建议是,在选型阶段就确认网关的缓冲区深度和最大帧长度,现场调试时把超时时间适当放宽,宁可慢一点也不要丢数据。
2.2 网络层:DCOM配置与防火墙策略的隐形陷阱
网络层是OPC DA断连的重灾区。传统OPC DA基于DCOM,而DCOM在跨主机通信时会动态分配端口。这意味着你没法简单地在防火墙上开一个固定端口就完事,除非你手动把DCOM的端口范围限制住。很多企业的IT安全策略默认禁止动态端口,结果OPC客户端和服务器之间的DCOM握手时好时坏,表现为间歇性断连。
解决这个问题的标准做法是:在OPC服务器和客户端两端的注册表里,把DCOM的端口范围限定在一个固定的区间,比如5000-5100,然后在防火墙上放行这个区间。具体操作是在HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc下新建一个Internet项,在里面添加Ports和PortsInternetAvailable等键值。这个操作有风险,改之前一定要备份注册表,而且要在停机窗口做。
除了DCOM端口,还要注意Windows防火墙的入站和出站规则。很多人只开了入站规则,忘了出站规则,结果客户端能连上服务器但收不到数据回调。另外,如果OPC服务器和客户端不在同一个域里,DCOM的身份验证会走NTLM,这时候需要在两端创建相同的本地用户账号和密码,否则会出现“拒绝访问”的错误。
对于OPC UA,网络层的问题相对简单,因为UA用的是固定的TCP端口(默认4840)。但UA的安全策略配置不当也会导致断连。比如客户端和服务器之间的证书不匹配、安全通道超时设置过短、会话心跳间隔不合理等。我建议在调试阶段先把安全策略设为None,确认数据能正常流通后再逐步启用签名和加密,这样能把网络问题和安全配置问题分开排查。
2.3 OPC服务器层:组态、缓存与资源占用的关键检查点
OPC服务器层是很多人容易忽略的环节。大家往往觉得服务器软件是商业产品,应该很稳定,但实际上服务器端的组态错误和资源瓶颈是断连的常见原因。
先说组态。以Schneider Electric OPC Factory Server为例,它在连接PLC时需要配置正确的通信驱动和地址映射。如果某个Item的地址写错了,服务器会反复尝试连接这个不存在的地址,消耗连接资源,严重时会导致整个通道堵塞。所以第一步是检查OPC服务器的日志,看有没有反复出现的“Item not found”或“Device not responding”之类的错误。把这些无效Item清理掉,往往能显著改善整体稳定性。
再说缓存。OPC服务器通常会在内存里缓存最近一次从设备读到的数据。如果缓存设置过大,服务器内存占用会持续上升,最终触发内存回收或进程重启。如果缓存设置过小,客户端请求的数据不在缓存里,服务器就要实时去设备读,响应时间变长,客户端可能等不及就超时断连。我的经验是,对于变化缓慢的模拟量,缓存时间可以设长一点,比如5到10秒;对于状态量或报警信号,缓存时间要短,最好1秒以内。
资源占用方面,重点看CPU和内存。OPC服务器如果同时处理几千个Item的轮询,CPU占用率会很高。你可以通过Windows性能监视器查看OPC服务器进程的CPU和内存曲线。如果发现CPU周期性飙高,说明轮询任务过于集中,可以考虑把Item分组,错开轮询时间。另外,OPC服务器的日志文件如果长期不清理,磁盘写满也会导致服务异常。这个坑我踩过,服务器跑了半年没管日志,结果某天凌晨磁盘满了,OPC服务直接挂掉,产线数据断了四个小时。
2.4 客户端层:轮询策略与超时参数的合理设置
客户端层的问题往往出在轮询策略和超时参数上。很多自研的采集程序为了“实时性”,把轮询间隔设得非常短,比如100毫秒甚至50毫秒,然后一次性请求几千个Item。这种用法对OPC服务器和网络的压力极大,尤其是在传统OPC DA架构下,每个Item的读取都是一次独立的DCOM调用,几千个Item就是几千次调用,服务器根本处理不过来。
合理的做法是分组轮询。把实时性要求高的Item放在一组,轮询间隔设500毫秒到1秒;把实时性要求不高的Item放在另一组,轮询间隔设5秒到10秒。同时,尽量使用OPC服务器的订阅模式(Subscription)而不是同步读取模式。订阅模式下,服务器只在数据变化时通知客户端,大大减少了通信量。很多客户端开发人员习惯用同步读取,因为实现简单,但这种方式在Item数量多的时候性能极差。
超时参数也很关键。客户端的超时时间要略大于服务器的平均响应时间,但也不能太长,否则断连后要等很久才能发现。我通常会把超时设为3到5秒,重试次数设为2到3次。如果连续重试都失败,就触发断连告警,而不是无限等待。另外,客户端要正确处理OPC质量戳的变化。有些程序只看数值不看质量戳,结果设备已经断线了,程序还在用最后一次的旧值做计算,导致误判。正确的做法是,一旦质量戳变Bad,立即停止使用该数据并触发告警。
3. 高效排查OPC断连的实操流程与工具清单
3.1 第一步:用最小化链路快速定位故障层级
当你接到“OPC又断了”的电话时,不要急着远程连上去看。先问现场人员几个问题:是所有数据都断了,还是只有部分工位断了?是刚刚断的,还是已经断了一段时间?断之前有没有人动过网络、重启过设备、或者改过什么配置?这几个问题的答案能帮你快速缩小范围。
如果所有数据都断了,问题大概率在OPC服务器本身或者服务器到客户端的网络链路上。如果只有部分工位断了,问题更可能在设备侧或者OPC服务器到这些设备的通信通道上。如果断之前有人动过网络或配置,那优先怀疑最近的变更。
接下来做最小化链路测试。在OPC服务器所在的机器上,直接用OPC客户端工具(比如Matrikon OPC Explorer或者UAExpert)连接本机的OPC服务器,看能不能读到数据。如果能读到,说明服务器到设备这一段是通的,问题在服务器到远程客户端的网络或DCOM配置上。如果读不到,说明问题在服务器到设备这一段,继续往设备层排查。
这个最小化测试非常关键,它能把故障范围从“整个系统”缩小到“某一段链路”,后续的排查就有了明确方向。我见过很多人跳过这一步,直接去查防火墙或者重启服务,结果绕了一大圈才发现是PLC那边的问题。
3.2 第二步:抓包分析与日志对照的联合诊断
当你确定了故障层级之后,下一步就是抓包和看日志。抓包用Wireshark,日志看OPC服务器自带的日志和Windows事件查看器。
抓包的时候要注意,OPC DA的流量是DCOM/RPC,端口是动态的,所以过滤条件不能只写端口。你可以先按IP地址过滤,把OPC服务器和客户端的IP都加进去,然后看TCP流的重传率和重置率。如果看到大量TCP Retransmission或者TCP RST,说明网络链路不稳定,可能是网线质量差、交换机端口故障或者网络拥塞。如果看到DCOM绑定失败或者认证失败,那就是DCOM配置问题。
OPC服务器的日志通常会记录每个Item的读取状态和错误码。比如西门子OPC软件的日志里会显示“Read failed with error code 0x80070005”,这个错误码就是典型的DCOM权限问题。Schneider Electric OPC Factory Server的日志则会记录通信驱动的状态变化,比如“Driver stopped responding”或者“Reconnect attempt failed”。把这些日志和抓包结果对照着看,往往能快速定位到具体原因。
Windows事件查看器里的“系统”和“应用程序”日志也要看。如果看到DCOM相关的错误事件,比如事件ID 10009或10010,说明DCOM通信出了问题。如果看到网络适配器的错误事件,说明网卡或驱动有问题。这些信息单独看可能不起眼,但和OPC日志结合起来,就能拼出完整的故障图景。
3.3 第三步:参数调优与配置修正的验证方法
找到疑似原因之后,不要一次性改一堆参数。每次只改一个变量,改完观察至少30分钟,确认断连频率有没有变化。如果一次改太多,即使问题解决了你也不知道是哪个改动起的作用,下次再遇到类似问题还是抓瞎。
举个例子,如果你怀疑是轮询频率过高导致服务器过载,那就先把客户端的轮询间隔从100毫秒改成500毫秒,其他参数不动,观察一段时间。如果断连明显减少,说明方向对了,可以进一步优化分组策略。如果没变化,那就把轮询间隔改回去,换下一个怀疑点。
对于DCOM配置的修改,验证起来更麻烦一些,因为需要重启服务甚至重启机器。我的建议是,在停机窗口做DCOM配置调整,调整完之后用压力测试工具模拟多个客户端同时连接,观察是否还会断连。压力测试可以用OPC服务器的自带工具,也可以用第三方的OPC压力测试软件。测试的时候要记录连接数、请求频率、响应时间和错误率,这些数据是判断配置是否有效的客观依据。
3.4 常用排查工具与命令速查表
下面这张表是我平时排查OPC断连时最常用的工具和命令,按使用频率排序。你可以把它打印出来贴在工位上,遇到问题直接照着用。
| 工具/命令 | 用途 | 使用要点 |
|---|---|---|
| Wireshark | 抓包分析网络层问题 | 过滤条件用IP地址,重点看TCP重传和RST |
| OPC Explorer | 最小化链路测试 | 在服务器本机测试,排除网络因素 |
| UAExpert | OPC UA连接测试 | 支持安全策略配置,可查看会话状态 |
| Windows事件查看器 | 查看DCOM和系统错误 | 关注事件ID 10009、10010、10016 |
| 性能监视器 | 监控CPU、内存、网络 | 重点看OPC服务器进程的资源曲线 |
| ping和tracert | 基础网络连通性测试 | 持续ping,观察丢包率和延迟抖动 |
| netstat | 查看TCP连接状态 | 关注TIME_WAIT和CLOSE_WAIT的数量 |
| OPC服务器日志 | 查看Item级错误信息 | 按时间排序,找断连前后的错误记录 |
这张表里的工具都很基础,但组合起来用就能覆盖大部分排查场景。关键是不要只用一个工具就下结论,要多源交叉验证。比如ping通不代表OPC就能通,因为OPC DA还依赖DCOM的认证和动态端口。所以ping只是第一步,后面还要用OPC Explorer和抓包来确认。
4. 高频断连根因分析与针对性解决策略
4.1 DCOM权限与身份验证导致的间歇性断连
DCOM权限问题是OPC DA断连里最经典也最让人头疼的一类。它的典型表现是:客户端能连上服务器,也能读到数据,但过一段时间就断,断了之后重启客户端又能连上,反复循环。或者多个客户端里,有的能连有的不能连,有的连上后频繁掉线。
根因在于DCOM的身份验证机制。当OPC客户端和服务器不在同一个域,或者虽然在同一域但登录用户不同时,DCOM会走NTLM认证。NTLM认证对时间同步非常敏感,如果两台机器的系统时间相差超过5分钟,认证就会失败。另外,DCOM的默认身份验证级别是“连接时验证”,这意味着每次建立新连接都要重新认证,如果认证过程被防火墙拦截或者超时,连接就会断。
解决办法分几步走。第一步,确保OPC服务器和客户端在同一个域里,或者至少创建相同的本地用户账号和密码。第二步,在DCOM配置里把OPC服务器的身份验证级别设为“无”或“连接时验证”,身份模拟级别设为“标识”或“模拟”。第三步,把OPC服务器和客户端的系统时间同步到同一个NTP源。第四步,如果跨网段,在防火墙上放行DCOM的端口范围,并且确保135端口(RPC端点映射器)是通的。
还有一个容易被忽略的点:Windows的“远程过程调用(RPC)”服务如果被禁用或者异常,DCOM通信会直接失败。检查一下这个服务的启动类型是不是“自动”,状态是不是“正在运行”。另外,如果服务器上装了某些安全软件,它们可能会拦截DCOM的动态端口分配,这时候需要把OPC服务器的进程加入白名单。
4.2 OPC UA证书过期与安全通道超时的处理
OPC UA虽然比OPC DA稳定很多,但证书和安全通道配置不当也会导致断连。最常见的是证书过期。UA客户端和服务器在建立安全通道时会交换证书,如果任何一方的证书过期了,握手就会失败,表现为连接被拒绝或者会话建立后立即断开。
排查方法是查看UA服务器的日志,通常会明确提示“Certificate expired”或“BadCertificateExpired”。解决办法是重新生成证书并更新到双方的可信列表里。注意,UA的证书信任模型是双向的,客户端要信任服务器的证书,服务器也要信任客户端的证书。很多人只更新了一边,结果还是连不上。
安全通道超时是另一个坑。UA的安全通道有一个“通道生命周期”参数,默认可能是10分钟或1小时。如果客户端和服务器之间的通信间隔超过了这个时间,通道会被关闭,下次通信时需要重新建立通道。如果客户端没有正确处理通道重建,就会表现为断连。解决办法是把通道生命周期设长一点,比如24小时,同时在客户端实现通道重建的逻辑。
会话超时也类似。UA会话有一个“会话超时”参数,默认可能是60秒。如果客户端在60秒内没有向服务器发送任何请求,会话就会被服务器关闭。对于轮询间隔较长的采集程序,要把会话超时设得比轮询间隔长,或者定期发送KeepAlive请求来维持会话。
4.3 服务器资源耗尽与轮询风暴的预防措施
服务器资源耗尽导致的断连往往发生在系统运行一段时间之后,表现为越来越频繁的断连,重启服务器后能好一阵子,然后又慢慢变差。这种渐进式的恶化说明有资源在持续泄漏或累积。
最常见的资源泄漏是内存。OPC服务器如果处理大量Item,每个Item都会占用一定的内存。如果Item数量持续增长(比如客户端动态创建Item但从不释放),内存占用会不断上升,最终触发操作系统的内存回收或进程重启。解决办法是定期审计OPC服务器上的Item列表,清理无效Item,并确保客户端在断开连接时正确释放Item。
另一个资源瓶颈是句柄数。Windows对每个进程的句柄数有限制,如果OPC服务器打开了大量文件句柄或网络句柄而不关闭,最终会达到上限,导致无法建立新连接。你可以通过性能监视器查看OPC服务器进程的句柄数曲线,如果持续上升不回落,说明有句柄泄漏。
轮询风暴是指多个客户端同时以极高的频率向OPC服务器请求数据,导致服务器CPU和网络带宽被占满。预防措施包括:在客户端侧限制最大并发请求数,在服务器侧设置每个客户端的最大请求速率,以及使用订阅模式代替同步读取。如果条件允许,还可以把不同的客户端分配到不同的OPC服务器实例上,做负载分担。
4.4 网络抖动与交换机配置的隐蔽影响
网络抖动是间歇性断连的常见原因,但因为它不像完全断网那么明显,所以容易被忽略。网络抖动的表现是:ping的延迟忽高忽低,偶尔丢一两个包,OPC数据偶尔卡顿一下然后恢复。如果OPC客户端的超时设置比较严格,这种短暂的卡顿就会触发超时断连。
排查网络抖动,首先要做持续ping测试。在OPC服务器上对每个PLC和客户端做持续ping,比如ping 1000次,看丢包率和延迟的最大值、平均值、标准差。如果丢包率超过0.1%或者延迟标准差很大,说明网络质量有问题。
网络抖动的原因可能包括:网线质量差或过长、交换机端口故障、网络环路导致广播风暴、以及QoS配置不当。工业现场的环境比较恶劣,电磁干扰强,网线如果没有屏蔽或者屏蔽层接地不好,很容易受到干扰。我建议在OPC系统的网络里全部使用屏蔽网线,并且确保屏蔽层单端接地。
交换机配置方面,重点检查STP(生成树协议)和VLAN配置。如果网络里有环路,STP收敛过程中会导致短暂的广播风暴,OPC数据就会断。另外,如果OPC服务器和PLC在不同的VLAN里,三层交换机的路由性能也会影响通信质量。对于实时性要求高的OPC系统,最好把服务器和PLC放在同一个VLAN里,减少路由跳数。
5. 从被动救火到主动预防:OPC系统稳定性建设经验
5.1 建立OPC数据链路的日常巡检清单
与其等断了再排查,不如平时就把巡检做起来。我给自己负责的OPC系统定了一份日常巡检清单,每天早上花10分钟过一遍,大部分隐患都能提前发现。
巡检清单包括:检查OPC服务器进程的CPU和内存占用,如果比昨天同期明显升高,就要查原因;检查OPC服务器日志里的错误数量,如果错误数突然增多,说明有异常;检查关键Item的质量戳,确认没有Bad或Uncertain;检查网络设备的端口状态和流量,看有没有异常丢包;检查磁盘剩余空间,确保日志文件不会写满;检查DCOM和RPC服务的状态,确保没有异常停止。
这份清单看起来简单,但坚持做下来能避免很多半夜被叫起来救火的情况。我印象最深的一次是巡检时发现OPC服务器的内存占用比平时高了30%,查了一下发现是某个客户端的Item列表里多了一批无效地址,清理之后内存就降下来了。如果没发现,可能过几天内存耗尽服务就挂了。
5.2 关键参数备份与快速恢复方案
OPC系统的配置参数很多,DCOM配置、防火墙规则、OPC服务器组态、客户端连接参数,任何一项丢了或改错了都可能导致断连。所以一定要做配置备份,而且备份要能快速恢复。
我的做法是:把OPC服务器和客户端的DCOM配置导出成注册表文件,把防火墙规则导出成脚本,把OPC服务器的组态文件定期复制到备份目录。所有这些备份文件放在一个U盘或者网络共享里,确保紧急情况下能拿到。另外,在服务器上保留一个“已知良好”的系统快照,如果改配置改出问题了,能快速回滚。
快速恢复方案还包括:准备一台备用OPC服务器,配置和主服务器一样,平时不接生产数据,但保持运行状态。一旦主服务器出问题,把客户端的连接地址切到备用服务器上,几分钟就能恢复数据采集。这个方案的成本不高,但效果非常好,尤其适合那些对数据连续性要求高的产线。
5.3 从OPC DA向OPC UA迁移的断连改善实录
最后说一下迁移的事。我参与过几个从OPC DA向OPC UA迁移的项目,迁移之后断连频率普遍大幅下降。原因很简单:UA不依赖DCOM,用的是标准TCP和HTTP/HTTPS,网络穿透性好,配置也简单得多。而且UA自带心跳和会话恢复机制,客户端能更快地感知断连并自动重连。
但迁移过程中也有坑。最大的坑是地址映射。DA的Item ID和UA的Node ID格式完全不同,迁移时需要重新映射。如果映射错了,客户端读不到数据,看起来就像断连。所以迁移前一定要做完整的地址对照表,迁移后逐项验证。
另一个坑是安全策略。UA默认启用安全策略,如果客户端不支持或者配置不对,连接会直接被拒绝。我的建议是迁移初期先把安全策略设为None,确认数据流通后再逐步启用。启用安全策略时,证书管理要跟上,确保证书不过期、双方互信。
迁移完成后,我建议保留一段时间的DA和UA双跑,用同一套数据源做对照,确认UA的数据质量和实时性满足要求后再切掉DA。这样即使UA出问题,也能快速回退到DA,不影响生产。
5.4 团队协作与知识沉淀的实操建议
OPC系统的稳定性不只是技术问题,也是管理问题。我见过很多企业,OPC系统本身配置得不错,但因为运维人员流动、知识没有沉淀,新人接手后一出问题就抓瞎,反复踩同样的坑。
我的建议是建立一份“OPC系统运维手册”,内容包括:系统架构图、设备清单和IP地址表、OPC服务器和客户端的配置参数、常见故障和解决办法、紧急联系人。这份手册要定期更新,每次处理完断连问题后,把新的发现和解决办法补充进去。
另外,建议在团队内部做定期的故障演练。比如模拟一次OPC服务器宕机,看团队能不能在30分钟内恢复。演练过程中暴露出来的问题,就是手册需要补充的内容。这种演练做几次之后,团队的应急能力会明显提升,断连造成的停机时间也会大幅缩短。
还有一个很实用的做法:在OPC服务器上部署一个简单的监控脚本,每隔几分钟检查一次关键Item的质量戳和服务器资源占用,如果发现异常就发邮件或短信告警。这样即使半夜出问题,也能第一时间知道,而不是等操作工发现数据不动了才打电话。告警阈值不要设得太敏感,否则误报太多大家就麻木了。我的经验是,连续三次检查都异常才告警,这样能过滤掉大部分瞬时抖动。