1. 登录失败的第一反应往往是错的先把登不上分成四类早上八点四十业务部门在企业沟通群里甩出一句金蝶云星空登不上去了后面跟着三张截图有人卡在登录页转圈有人提示用户名或密码错误还有人干脆打不开网页。这三个现象在业务同事眼里是同一件事——系统坏了但在我眼里它们指向三条完全不同的链路处理顺序和责任人都不一样。云星空登录失败这件事最怕的不是问题复杂而是一上来就被重置密码试试这种惯性动作带偏方向白白消耗掉业务高峰期的黄金半小时。这篇文章想解决的正是这件事把云星空登录这件事从点一下按钮拆成一条可以被逐段验证的链路让遇到问题的人知道先看什么、后看什么、哪些现象可以互相排除。它适合三类人参考——日常要接一线报障的内部运维、负责部署和上线实施的顾问、以及需要判断问题边界该不该找厂商支持的项目负责人。哪怕你只懂一点点服务器操作只要按顺序走一遍也能把大部分登录故障的范围压缩到一个具体组件上而不是在网络问题数据库问题许可问题之间反复猜测。先说一个我自己总结的判断原则登录故障的排查顺序应该和用户请求的行走顺序一致而不是和问题的严重程度一致。用户从浏览器发起请求先到域名解析、再到Web服务器、再到应用服务、再到数据中心所在数据库、最后到许可与会话校验这条路径是单向的。你沿着这条路从外往里走每走通一段就把这一段排除掉剩下的范围会越来越小。反过来如果先怀疑数据库、先去翻许可往往会在一个根本没问题的地方耗掉大量时间。1.1 四种表象背后是四条不同的链路业务同事描述的登不上实际至少可以分成四类每类的第一怀疑对象差别很大。我把它们整理成一张对照表这张表我基本是打印出来贴在工位旁边的接报障的时候先对号入座能省掉大量来回确认。表象用户原话第一怀疑对象通常不需要先查的页面根本打不开网页转圈打不开提示无法访问域名解析、端口、站点进程、负载均衡账号、许可页面能开但登录框报错提示密码错误提示用户不存在账号状态、认证模式、域账号映射数据库连接登录框正常但选不到数据中心没有账套可选数据中心是空的管理中心地址、数据中心注册、数据库连通性用户密码登录成功但立刻被踢出刚进去就掉线提示会话过期票据有效期、时间同步、会话存储、并发许可前端浏览器这张表最有价值的地方在于它的排除列。很多人排查慢不是因为不会查而是因为查了太多不需要查的东西。比如页面打不开的时候去数据库里翻用户表那就是纯粹的时间浪费反过来能打开登录页却提示密码错误时你花时间去重启应用服务同样没有意义。提示接报障时先让用户把完整报错文字或截图发过来不要只接受登不上这种描述。云星空的报错文案区分度很高一句话往往就能定位到具体环节。1.2 为什么我坚持先问卡在哪一步而不是先要账号密码刚接触这套系统的时候我也习惯性地先问你账号多少我看看是不是被锁了。吃过几次亏之后彻底改了这个习惯。原因很实在账号被锁在真实故障里的占比并不高而卡在哪一步这个信息几乎百分百有用。用户能清楚说出我输完密码点了登录转了很久然后提示连接数据中心失败这句话直接就把范围从整个系统缩小到了应用服务到数据库这一段。我现在的开场白基本固定成三句话你现在看到的是登录页还是错误页报错的原文是什么是所有人都这样还是只有你一个人第三句尤其关键它能一刀切开个体问题和全局问题。只有一个人登不上优先查账号状态、域账号映射、浏览器环境、并发占用所有人都登不上优先查服务、网络、数据库、证书有效期。这两条分支的排查路径几乎没有重叠先分清能省掉一半工作量。还有一个小细节值得强调别忽略什么时候开始的。登录故障的时间点和最近做过的变更几乎总能对上——周末打了补丁、换了证书、改了域名、迁移了数据库、调整了网络策略、更新了许可文件。我养成了一个习惯接报障时顺手翻一下最近三天的变更记录十次里有六七次能直接命中原因。这个动作花不了一分钟但比任何工具都好用。2. 一次点击背后的六段链路云星空登录到底校验了什么要把排障做扎实得先知道正常登录时系统在忙什么。很多人对云星空登录的理解停留在输账号密码对了就进去实际这条链路上至少叠了六层校验站点可达、数据中心可枚举、身份可验证、许可有余量、会话可建立、权限可加载。任何一层不通过用户看到的都是登不上但背后的原因天差地别。下面按请求行走的顺序把这条链路一段段摊开讲。理解这条链路还有一个附加好处你能判断某个故障该找谁。网络层的问题归网络组证书和域名归运维账号和权限归系统管理员许可归采购和厂商数据库归DBA。范围定得准扯皮就少。2.1 第一跳域名、端口与站点可用性用户在浏览器输入地址的那一刻第一件事是域名解析。云星空典型的部署里前端会有一个访问地址可能是内网域名、也可能是IP加端口。这一步出问题的表现非常典型页面完全打不开、浏览器报连接超时或者证书警告。判断方法很朴素在能访问服务器的机器上依次做三件事——解析、连通性、端口。# 1. 看域名解析到哪个地址是否符合预期 nslookup erp.example.internal # 2. 看目标端口是否真的开着Linux 环境用 ncWindows 用 Test-NetConnection nc -vz erp.example.internal 443 # 3. 直接请求一次看返回码和响应头 curl -I -k https://erp.example.internal/Windows 环境下我更常用 PowerShell因为大部分云星空部署跑在 Windows 服务器上不用额外装工具Test-NetConnection -ComputerName erp.example.internal -Port 443 Invoke-WebRequest -Uri https://erp.example.internal/ -UseBasicParsing -Method Head这里有个很容易被忽略的点能 ping 通不代表端口通端口通不代表站点正常。服务器防火墙放行了 ICMP 但没放行 443你会看到 ping 通、网页打不开端口开着但应用池停了你会看到 TCP 握手成功、HTTP 返回 503。所以这三个动作要分开做不能合并成一个ping 一下看看。还有一类特别隐蔽的情况多层代理或者负载均衡后面挂了两台应用服务器其中一台的应用池挂了。这时候故障表现是时好时坏刷新几次就能进用户描述成系统卡。这种间歇性故障用单次请求测不出来得连续打十几次看返回码分布。我一般会用循环快速验证for i in $(seq 1 20); do curl -s -o /dev/null -w %{http_code}\n -k https://erp.example.internal/ done | sort | uniq -c如果输出里同时出现 200 和 503基本可以确定是后端节点状态不一致去逐台检查应用池和站点而不是继续在用户端折腾浏览器。2.2 第二跳数据中心列表从哪里来登录页打开之后很多版本会要求先选择数据中心也就是账套。这个下拉列表不是写死在前端的它来自管理中心对数据中心的注册信息。管理中心是一套独立的站点负责创建、注册、备份数据中心应用站点通过配置里的地址去问它现在有哪些数据中心可用。这就解释了一个高频现象登录页能打开但数据中心下拉是空的或者选了之后提示连接失败。这个时候问题十有八九不在用户的账号上而在两个地方——应用站点配置里的管理中心地址是否正确可达以及目标数据中心的数据库连接是否还通。配置一般在应用站点的配置文件里形如!-- 应用站点配置片段字段名以实际版本为准 -- appSettings add keyManagementSiteUrl valuehttp://mgmt.example.internal:8000/ / add keyDefaultDataCenter valuePROD / /appSettings排查顺序我一般是这样先在应用服务器上用浏览器直接打开管理中心地址看能不能正常访问能访问的话再进管理中心看目标数据中心的状态是不是正常最后单独验证这个数据中心对应的数据库连接。注意管理中心能打开不代表它注册的数据中心能用这两件事要分开验证否则很容易得出管理中心没问题那问题肯定在别处的错误结论。另外提醒一句数据中心列表加载是有缓存的。改过数据中心注册信息或者迁移过数据库之后如果列表还是旧的别急着怀疑配置没生效先清一次应用缓存再看。这一点在后面日志那节还会提到。2.3 第三跳身份校验的三种模式与各自的坑身份校验这一段是最容易踩坑的地方因为云星空支持多种认证模式不同模式失败的原因完全不同。常见的有本地账号、目录服务账号域账号、以及通过统一身份平台做的单点登录。这三种模式的排错思路几乎没有交集搞混了就会南辕北辙。本地账号最直接账号密码存在系统自己的用户表里校验失败基本就是密码错、账号被锁、账号被禁用、有效期过了这几种。这类问题的排查最简单管理员在后台看一眼账号状态就行。目录服务账号的坑多得多。用户的密码实际存在目录服务里云星空只是把用户输入转过去做校验。一旦目录服务那边有问题——账号被禁用、密码过期、账号被移出了某个组织单元、绑定的服务账号权限被回收——云星空这边表现为密码错误但用户其实密码没输错。这种情况下重置云星空里的密码毫无意义得去目录服务侧看账号状态。单点登录是三种里最复杂的一种。它的本质是信任一张票据统一身份平台验证完用户身份后签发票据云星空拿着票据去校验签名和有效期。这条链路上任何一环出问题都会失败——票据签名证书换了、票据有效期太短、服务器时间偏差过大、回调地址配置不一致。我处理过最典型的一次是应用服务器的时间比标准时间慢了将近十分钟导致票据刚签发就被判定为过期用户看到的现象是点登录闪一下就回到登录页一点报错都没有。认证模式校验发生地典型失败现象优先检查项本地账号应用与数据库明确的密码错误提示账号状态、锁定、有效期目录服务账号目录服务提示密码错误但实际密码正确目录账号状态、密码策略、绑定账号权限单点登录统一身份平台无提示跳回登录页、票据无效证书、时间同步、回调地址、票据有效期注意单点登录故障里没有任何报错是最常见也最容易被误判的情况。别因为没报错就往浏览器缓存上想先去比对两台机器的时间。2.4 第四跳票据、会话与并发的三重闸门身份验证通过只是拿到了入场券后面还有三道闸门。第一道是票据签发系统会给这次登录生成一个会话票据第二道是会话建立票据要能被应用服务识别并维持住第三道是并发许可同时在线的人数不能超过许可允许的数量。这三道闸门任何一道卡住用户看到的都是登录成功但马上被踢出或者提示会话已过期。会话维持不住最常见的两个原因是票据有效期配置得太短以及会话存储不共享。后者在多节点部署里特别典型用户第一次请求落到A节点会话存在A节点本地第二次请求被负载均衡分到B节点B节点不认识这个会话于是把用户踢回登录页。现象就是登录后点两下就掉线而且换个时间点可能又正常了。解决办法是会话集中存储或者做会话保持具体选哪种要看部署规模和维护成本。并发许可这道闸门的问题是它特别安静。许可用满了新用户登录时会提示许可不足或者直接登录失败但在线的用户完全无感。更麻烦的是幽灵在线——用户直接关掉浏览器、断电、网络断了服务端并不知道这个人已经走了会话还占着许可名额时间一长可用名额就被慢慢吃光。这类问题的典型特征是早上好好的下午陆续有人登不上重启一下应用服务就好了。重启确实能好但那只是把问题推迟到第二天根子还是要调整会话超时时间、清理失效会话或者干脆按实际并发重新评估许可数量。3. 分层定位法从外到内把范围压到一个点上有了链路认知排障就有了地图。但地图不等于路线真到现场还是需要一个可执行的动作序列。我用的是分层定位法把整条链路切成网络层、服务层、数据层、应用层四段每一层都有最小验证集——用最少的动作证明这一层是通的还是断的。原则是从外往内、从低成本往高成本先用一分钟能做完的动作排除掉整层再决定要不要深入。这套方法的另一个价值是留痕。每一层的验证结果我都会记下来格式很简单时间、动作、结果。事后复盘或者交接给厂商支持的时候这份记录比任何口头描述都管用也能避免我明明查过了和其实没查的争论。3.1 网络与服务层的最小验证集网络层的验证我固定做四件事解析、端口、HTTP响应、证书有效期。前三个前面讲过了第四个经常被跳过但极其重要。证书过期这件事有个很讨厌的特性——它不会在部署当天出问题而是在某个毫无预兆的日期突然爆发而且往往发生在节假日或者月初结账这种最不能出问题的时候。# 查看证书到期时间注意 notAfter 字段 echo | openssl s_client -connect erp.example.internal:443 -servername erp.example.internal 2/dev/null \ | openssl x509 -noout -dates -subject输出里notAfter就是到期时间。我建议把这个动作做成例行检查每月跑一次比出事之后再查省心得多。顺便说内部系统用自签证书的情况很常见这时候浏览器会报警告有些用户会点继续访问有些不会于是同一个系统在不同人电脑上表现不一样。这种部分人能用部分人不能用的故障八成就是证书信任链的问题不是系统本身的问题。服务层的最小验证集是进程 站点 端口三件套。云星空的应用服务通常是几个 Windows 服务加 IIS 站点组成的任何一个没起来都会导致功能异常。我习惯用一条命令把关键服务的状态全打出来Get-Service | Where-Object { $_.Name -like *K3* -or $_.DisplayName -like *K3* } | Select-Object Name, Status, StartType | Format-Table -AutoSize重点看两件事状态是不是 Running启动类型是不是自动。有些服务被设成了手动启动服务器重启之后就再也没起来而系统可能还能部分工作导致故障表现很诡异。这种情况我在一次机房断电恢复后遇到过当时登录能进但某些功能报错查了半天才发现是一个辅助服务没启动。IIS 站点状态也要单独看应用池停了站点会返回 503站点停了直接连不上。这两个是不同层面的问题不要混为一谈。3.2 中间件与应用服务哪些进程必须活着中间件这一层最容易被忽略因为它不像数据库那样一看就知道重要。但云星空的很多功能依赖缓存、消息、任务调度这些组件登录环节虽然不直接依赖全部但依赖其中的缓存和会话部分。缓存服务挂了登录页面可能还能打开但登录动作会因为拿不到必要的数据而失败或者变慢。我的做法是先确认必须活着的清单再看可以降级的清单。必须活着的通常是Web 站点、应用服务、数据库、缓存。可以降级的通常是报表服务、任务调度、消息推送——这些挂了会影响功能但不至于让人登不进来。把这两类分清故障时就不会因为看到一个不重要的服务是停止状态就慌了。还有一个实操细节值得说重启服务要讲顺序。我见过有人图省事直接按服务器重启结果数据库先起来、应用后起来还算幸运赶上应用先起、数据库后起应用启动时就报连接失败然后一直保持失败状态。正确的顺序是先起数据库和缓存确认可用再起应用服务最后起前端站点。多花两分钟少一次返工。3.3 数据库与缓存登录为什么绕不开它们很多人不理解为什么登录这种看起来很简单的事会依赖数据库。原因很直接用户信息、账号状态、许可占用、会话票据、登录日志这些全都要落库。数据库连不上登录必然失败而且报错文案往往是笼统的系统异常不会直白告诉你数据库有问题。验证数据库连通性的最小动作是单独建一个连接测试不要依赖应用报错去猜。云星空的数据中心在管理中心里有对应的连接配置最省事的验证方式是直接在管理中心里对目标数据中心做一次连接测试或者在数据库服务器上用客户端工具连一次。-- 连接后在目标库执行确认库可读写且响应正常 SELECT 1;如果连接测试通过但登录还是失败就往下一层想数据库能连上但用的账号权限不够或者连接池被打满了连接池耗尽是个高频问题表现是系统时快时慢高峰期大量登录超时。这时候看数据库的活动会话数如果接近上限基本可以确认。-- 查看当前活动会话数量用于判断连接池是否吃紧 SELECT COUNT(*) AS active_sessions FROM sys.dm_exec_sessions WHERE is_user_process 1;缓存层的问题更隐蔽。缓存里存着数据中心列表、部分配置、会话数据。缓存脏了的表现是配置明明改了但系统还是老样子用户明明解锁了但还是提示锁定。这类问题的处理方式很直接——清缓存。但要提醒一句清缓存前先确认业务低峰因为清完的瞬间所有请求都会回源到数据库量大的话会有一波性能抖动。3.4 一次完整排查的现场复盘讲个真实的场景隐去具体信息。某制造企业在周一早上反馈登录页面能打开输入账号密码后转很久最后提示连接数据中心失败所有人都一样。这个描述一出来范围就很小了页面能打开说明站点和网络没问题所有人都失败说明不是账号问题连接数据中心失败直接指向应用服务到数据库这一段。我按顺序做了四件事。第一在应用服务器上打开管理中心正常说明管理中心本身活着。第二在管理中心看目标数据中心状态显示正常说明注册信息没丢。第三从应用服务器上用数据库客户端连目标库连不上报网络超时。到这一步范围就锁死了。第四找网络组确认周末做了一次网段调整数据库服务器的访问策略没同步更新。全程不到二十分钟。如果一开始就去查账号、查许可、查浏览器可能半天都出不来。这次之后我把应用服务器到数据库的连通性加进了例行检查项每周跑一次成本几秒钟。4. 高频故障对症处理六类现场与对应动作前面的方法论解决的是怎么想这一节解决的是怎么做。我把这几年遇到过的登录类问题归了归类挑出六类出现频率最高的每一类给出可直接执行的处理动作。这些不是理论推演都是实际操作里验证过的路径按着做基本能覆盖大部分现场。4.1 数据中心列表空、选不到账套这个现象的判断逻辑很清晰列表空说明应用站点没能从管理中心拿到数据中心信息。可能的原因有三个——管理中心地址配置错了、管理中心不可达、管理中心里没有注册数据中心。处理顺序我固定为先验证配置里的地址在应用服务器上能不能打开能打开就进管理中心看数据中心列表里有没有目标项有的话再看状态是不是正常状态也正常就去验证数据库连接。这四步走完还没解决的情况我只遇到过一次最后发现是配置文件被改过但应用没重启配置没生效。所以第四步之后还有一步确认改动之后服务重启过。提示改配置文件一定要重启对应服务这一点在应急处理时最容易被忘。改完不重启等于没改。4.2 许可超限与幽灵在线的清理许可不足的报错一般比较明确但幽灵在线引发的许可不足往往没有报错只是用户陆续登不进来。识别方法是看当前在线人数和实际办公人数是否对得上。如果显示在线一百多人但办公室里只坐了三十个人那基本就是会话没释放。处理分两步。第一步是应急清理失效会话或者重启应用服务先把业务恢复。第二步是治本调整会话超时时间让长时间无操作的会话自动失效同时排查是不是有用户习惯直接关浏览器而不是点注销。后者听起来是小事但在一千人的组织里这个习惯能让许可占用翻倍。-- 查看登录会话相关记录确认是否存在大量长时间未活动的会话 -- 表名与字段以实际版本为准仅作思路参考 SELECT user_account, login_time, last_active_time FROM t_sec_login_session WHERE last_active_time DATEADD(HOUR, -8, GETDATE());许可这部分还有一个管理上的坑许可文件更新之后没有重新导入或者导入到了错误的环境。测试环境用了生产许可、生产环境用了过期许可这类低级错误在赶工期的时候真的会发生。我的建议是把许可到期时间当成一个必须要监控的指标提前一个月就开始走续期流程。4.3 单点登录票据失效与时间偏移单点登录失败最典型的表现是点了登录页面闪一下又回到登录页没有任何错误提示。这种无声失败最折磨人因为它连排查方向都不给。我的处理顺序是先比对应用服务器、统一身份平台服务器、数据库服务器三者的时间偏差超过几分钟就先把时间同步做掉时间没问题再看票据签名证书是否一致有没有换过证书但只换了一边证书也没问题就看回调地址配置特别是域名切换之后回调地址还指着老域名的情况。时间偏移这个原因值得单独强调。它引发的问题不止登录还会导致日志时间错乱、定时任务执行异常、票据校验失败。我现在的做法是所有服务器统一指向内部时间源并且把时间偏差加入监控超过阈值就告警。这个投入很小收益很大。4.4 证书过期与域名切换后的连锁反应证书过期的爆发性很强某天早上所有人同时打不开页面浏览器显示刺眼的警告页。有些用户会点高级-继续访问绕过去有些不会于是又变成部分人能用。这种时候不要被有人能用误导先去看证书有效期。域名切换的问题更复杂因为涉及的地方多前端访问地址、反向代理配置、应用站点绑定、单点登录回调地址、证书绑定的域名、甚至用户收藏的旧链接。切换之后如果只改了一部分就会出各种奇怪现象——页面能开但登录跳转失败、登录成功但资源加载不出来、部分人正常部分人异常。我的经验是域名切换必须列清单逐项确认别指望改完试试看。清单至少包含解析记录、代理规则、站点绑定、证书、回调地址、外部系统对接地址、用户通知。少一项就等着出问题。4.5 账号锁定、密码策略与域账号映射账号被锁这件事本身不复杂但它有个讨厌的特点反复发生。用户改了密码但某个地方还存着旧密码——手机上的邮件客户端、浏览器保存的密码、某个集成的小系统——这些地方会不停地用旧密码去尝试登录试够次数账号就被锁。用户很委屈管理员很烦。处理这类问题不能只解锁要找到那个一直用旧密码重试的来源。方法是看登录失败日志的来源IP和时间分布如果是有规律的间隔重试基本就是某个客户端在自动重连。域账号映射的问题则是另一类。用户明明在目录服务里是正常的但云星空里登不上常见原因是映射关系丢了或者映射到了错误的账号。这种情况在人员调动、组织调整之后特别容易出现。建议在人员变动流程里加一步确认云星空账号映射比事后排查省事。4.6 浏览器与客户端环境导致的白屏卡死最后一类严格来说不是服务端故障但在报障里占比不低。表现是页面白屏、一直转圈、点了没反应。原因可能是浏览器版本太老、缓存脏了、某个插件拦截了请求、或者是浏览器的安全策略阻止了某些资源加载。处理这类问题最快的办法是让用户开一个无痕窗口试一次。无痕窗口不加载缓存和大部分插件如果无痕能正常登录那问题就在本地环境清缓存、禁用插件、换浏览器逐个试就行。这个动作三十秒能做完比远程连过去查半天高效得多。现象快速验证动作结论方向页面白屏无痕窗口重试能进则是本地缓存或插件问题一直转圈换个浏览器试都转则是服务端问题点了没反应看浏览器控制台报错有明确报错则定位到具体资源5. 把排障成本降下来日志、检查表与上线前自查排障能力强的团队和排障能力弱的团队差距往往不在技术上而在准备上。有日志、有清单、有基线的团队故障来了是执行动作没有这些的团队故障来了是现场发明流程。这一节讲的就是怎么把准备工作做在前面让下一次登录故障的处理时间从两小时压到二十分钟。5.1 该看哪几个日志、搜什么关键字云星空的日志分散在几个地方Web 站点的访问日志和错误日志、应用服务的运行日志、数据库的错误日志、以及操作系统的应用日志。故障时不可能全看得有优先级。我的顺序是应用服务日志优先因为登录链路的绝大部分逻辑在这里然后是 Web 服务器日志主要用于确认请求有没有到达最后才是数据库日志。搜关键字比从头翻效率高得多。登录类问题我常搜的关键词有这么几组和连接相关的、和认证相关的、和许可相关的、和超时相关的。具体词各版本不一样但思路一致——先搜错误级别再按时间窗口过滤。# 按时间窗口筛错误日志先看错误级别再看上下文 grep -iE error|exception|timeout|denied /path/to/app/logs/*.log \ | awk $0 ~ /2024-06-1[0-9]/ | tail -n 200Windows 环境下我更习惯用 PowerShell 按时间段筛事件日志Get-WinEvent -FilterHashtable { LogName Application StartTime (Get-Date).AddHours(-2) Level 1,2,3 } | Select-Object TimeCreated, ProviderName, Message | Format-List看日志有个技巧别只看第一条错误往下看三条。第一条错误往往是表象真正的根因藏在后面。比如第一条是连接失败后面几条是连接池已满那根因就是连接池不是网络。5.2 我常用的登录健康检查清单这份清单我现在是每周跑一次五分钟左右能挡掉大部分突然爆发的故障。它不复杂但坚持做和不做差别很大。域名解析结果是否指向预期地址有没有漂移到备用节点站点 HTTP 返回码是否稳定为 200连续请求二十次无异常证书剩余有效期是否大于三十天应用服务与站点的运行状态启动类型是否为自动应用服务器到数据库的连通性与响应时间缓存服务可用性与内存占用许可剩余额度与在线人数是否匹配各服务器时间偏差是否在阈值内最近三天是否有变更变更是否已记录提示这份清单最大的价值不是发现问题而是建立基线。你知道正常状态长什么样异常一眼就能看出来。5.3 几个让我印象深刻的坑第一个坑是改了配置没重启。这个坑我踩过不止一次后来给自己定了个规矩任何配置改动操作记录里必须包含重启并验证这一步没做就不算完成。第二个坑是用测试环境的经验处理生产环境。测试环境单节点、数据量小、没人抢许可很多问题根本暴露不出来。生产环境多节点、有负载均衡、有并发会话不共享这类问题只有在生产才会显现。所以任何涉及会话、许可、负载的改动必须按生产架构评估不能拿测试环境的结论直接套。第三个坑是只修不复盘。故障处理完就结束下次同类问题还得重新查一遍。我现在的习惯是每次处理完写三行记录现象、根因、动作。积累下来就是一份属于自己的故障库比任何文档都好用。最后一个算不上坑是个体会登录故障看起来是技术问题实际上很大一部分是流程问题。证书到期没人管、许可续期没人跟、人员变动不同步账号、变更不上报这些流程漏洞引发的故障比技术缺陷引发的多得多。技术手段能缩短恢复时间但只有流程才能减少故障次数。这套东西我用了几年最大的感受是排障的速度取决于你对正常状态的熟悉程度而不是你对故障的了解程度。你越清楚一次正常登录背后每一段该是什么样子就越容易在异常时一眼看出哪一段不对。所以平时多看一眼日志、多跑一次清单看起来是在做无用功真出事的时候才知道值不值。