对一套「智慧停车 + 充电桩 + 社区门禁」物联网平台进行只读排查:服务未宕机,但定位到 5 个真实问题(地锁控制失败、微信推送失败、退款失败、系统过载、设备误连开发环境)与 5 个运维隐患,按用户影响排序逐项给出处理方向。
服务器:
[生产服务器](主机名已隐去)· 排查日期:2026-08-16 原则:只读排查,未做任何修改。涉及改动项均需确认后再操作。 说明:文中 IP、域名、实例 ID、订单号等均已脱敏。
总体结论
服务器没有服务宕机:Nginx、php-fpm(php56/php72)、EMQX、FTP、supervisord 均正常运行;阿里云 RDS MySQL/Redis 连接正常(PING 通);各消息队列积压为 0(图片上传等队列持续消费中)。但存在 5 个真实问题,按用户影响排序如下。
问题清单
① 地锁/设备控制频繁失败(充电桩应用)★最可能用户投诉点
- 日志:
/data/wwwroot/[应用A]/runtime/log/202608/16.log - 当日:482 次
switchLockByLot|未向设备成功发送指令+ 532 次switchLockByLot|未在所属厂区设置由平台控制地锁(两者是同一次失败的成对日志) - 根因:
RfMqtt::lockOption(RfMqtt.php:101)在region.is_platform_control != 1(或厂区lot_id_str未收录该车位)时,按安全逻辑主动拒绝下发地锁指令 - 用户表现:地锁落不下/抬不起
- 解决方向:在后台把相关厂区配置为"由平台控制地锁";属业务数据配置问题,需确认后修改
② 微信推送大面积失败
- 门禁后台域名 当日 332 次
推送物业人员失败: 没有授权公众号:代码在[门禁后台域名]/application/api/controller/Mqtt.php:225,原因是这些物业用户的wx_bind.gzh_openid为空(未绑定公众号) - EP 应用
公众号模板发送失败 errcode=48001 api unauthorized:公众号未开通模板消息权限或模板未配置 43101 user refuse:用户主动关闭订阅消息,属正常,无需处理- 备注:如开发人员已帮授权公众号,上述 48001 / 没有授权公众号 类报错会自动消失,可观察确认
③ 退款失败
MsgQueueHandle.out.log大量退款失败,请在订单详情联系场站管理员(如 pay_amount=2.00、refund_amount=2.00)- 解决方向:查微信支付商户号退款失败原因码(常见:商户余额不足、参数错误)
④ 系统过载(整体变慢)
- 4 核机器负载 5.75~8.0;php-fpm worker 高达 180 个(php72 max_children=100 + php56 max_children=50)
- 8/13 php72-fpm 日志显示 park 后台查询超时 120s+ 被杀,有
failed to acquire scoreboard - 解决方向:下调 php-fpm 池(php72 建议 ≤30、php56 ≤20,配好 start/min/max_spare);开启 php-fpm slow log 定位慢查询
⑤ 一台设备误连 dev 服务器(死循环)
- IP
[异常设备IP](运营商已隐去)对[开发环境域名]持续POST //device/login,已 361,947 次,仅刷此站点 - 根因:该设备请求不带 User-Agent,被
protect.conf的 UA 白名单规则拦成 403 → 设备无限重试;其上游 Node-RED 返回 404,说明 dev 不是它该连的服务器(正确地址应为生产[核心业务平台域名]/device/login) - 解决方向:设备端改配置指向生产服务器;或先在 dev vhost 加
deny [异常设备IP];(需备份 conf)
运维隐患(不紧急,建议后续处理)
- Supervisor 的 websocket 程序自 2026-06-05 起 FATAL:端口被手动启动的 Workerman(:2346)占用;当前 websocket 由手动进程服务,建议统一管理
- Supervisor 主日志被刷屏:
OvertimeCheckQueueHandle的输出通道报I/O operation on closed file,其.out.log已丢失,日志采集失效 - OvertimeCheckQueueHandle 任务反复失败:
overtime_fee=0,同一订单(如[订单号])多次重投,疑似逻辑 bug,需开发确认 - park 收费规则缺失:当日 86 次
get_park_price:未配置蓝牌小汽车/新能源车辆收费规则→ 可能计费错误,需在后台补齐规则 - ThinkPHP 调试页外泄:公网可触发完整异常页 + 环境变量,建议关闭 debug
已确认的关键事实
| 项目 | 值 |
|---|---|
| 主机名 | 已隐去,CentOS 7,内核 3.10,4核8G,无 swap |
| 运行时长 | 393 天 |
| MySQL | 阿里云 RDS [阿里云RDS MySQL实例] |
| Redis | 阿里云 RDS [阿里云RDS Redis实例] |
| MQTT | 本机 EMQX(1883/8883/8081/8083/8084/18083)+ 远端 [远端MQTT服务器] |
| WebSocket | Workerman websocket://0.0.0.0:2346(park 岗亭推送) |
| 队列 | 全部消费正常,积压 0 |
| 异常流量 | [异常设备IP] → dev 环境域名 361,947 次(仅此站) |