Geejing WebBuilder 日志、在线用户、系统监控,出问题时的三个第一现场

日志、在线用户、系统监控,出问题时的三个第一现场

本文是「geejing WebBuilder 快速开发平台」管理运维系列的第 5 篇,约 2300 字,预计阅读时间 9 分钟。系统出问题时,运维最怕的不是故障本身,而是"两眼一抹黑"。本篇基于平台自带的三类监控工具------操作日志、在线用户、系统信息,把"出事后先看哪里"讲成一套固定动作,截图来自实际运行环境。

一、操作日志:谁在什么时候干了什么

geejing WebBuilder 快速开发平台把用户会话行为自动记录成日志,无需开发者埋点。打开"日志"工具(admin/log):

顶部一排过滤条件:开始时间、结束时间、日志级别、日志类型、用户名称、内容、IP 地址,点"重置"清空条件。列表按时间倒序展示,截图里能看到典型的 session 类记录------logged in / logged out 交替出现,系统已积累 268 条。

查询日志的两个高频套路:

  • 按人查:输入用户名称,看这个账号什么时间登录过、活跃在什么时段------排查"账号是不是被盗用"就靠它;
  • 按时段查:设定故障发生的时间窗,过滤出该时段全部记录,重建时间线。

注意列表里的 IP 地址 列。全部记录都是 0:0:0:0:0:0:0:1(IPv6 的 localhost)说明访问都来自本机;一旦生产环境里某个 IP 短时间内出现大量登录失败,就要警觉暴力破解尝试------配合下一篇要说的封禁功能处理。

日志会自己长大,268 条只是开始。运维上要定期关注两个数字:总量(影响查询速度)与磁盘占用(日志通常落库或落盘)。按平台日志配置设置保留周期,过期的归档或清理,别让"记录一切"变成"拖垮一切"。

查询时还有两个字段值得认识:日志级别 与日志类型 。级别区分 info/warn/error 这类严重程度------日常巡检直接过滤 error 级别,一屏看完所有异常;类型区分记录来源(session 会话、模块访问等),排查登录问题时先锁 session 类型,排查接口问题时再看模块访问类。两个条件叠加过滤,比在几千条记录里肉眼翻找快一个数量级。

二、在线用户:实时会话的一块屏幕

第二个工具是"在线用户"(admin/online-users),页面很直接:

上表是当前在线用户 :用户名称、显示名称、IP 地址、会话创建时间、最后访问时间。下表是IP 维度的会话汇总。截图里只有一个 admin 在线------正是截这张图的会话本身。

这个页面的价值在两个时间差:

  • 会话创建时间 vs 最后访问时间:差值大的,是"挂着没动"的僵尸会话;差值小的,是正在活跃操作的;
  • 在线人数 vs 授权数:如果系统按并发数授权,这块屏幕就是实时的"占用仪表盘"。

上表左上角有一个红色 注销 按钮------这是运维的"紧急断电"手段。场景很具体:发现某账号异常操作、或需要发版前清场,选中会话点注销,该用户下次请求即被踢回登录页。比改密码温和(不影响正常用户),比重启服务精准(其他会话不受影响)。发版窗口的标准动作之一:发版前看一眼在线人数,非高峰时段执行,注销残余会话。

三、系统信息:一页看清服务器的健康度

第三个工具是"系统信息"(admin/sysinfo),也是信息密度最高的一页:

页面分三块:

左上:系统属性表。 当前时间、系统启动时间、可用处理器 16 核、CPU 使用率、JVM 内存四件套(Total/Used/Free/Max,截图里 128MB 总量、91MB 已用、上限 4008MB)、主机名、IP、操作系统 Windows 11、Java 版本 21.0.5。这 42 行属性里最该盯的是内存四件套:Used 长期贴近 Max 就是扩容信号;系统启动时间则帮你确认"刚才的重启生效了没"。

右上:模块执行统计。 每个被调用模块的名称、CPU 耗时(秒)、调用次数、平均耗时(毫秒)、最后访问时间。截图里 admin/perm/select-modules 累计耗 CPU 4 秒、平均 4230 毫秒,sys/session/verify 平均 659 毫秒。这张表就是"慢在哪个接口"的直接答案------不用装 APM,打开这一页按平均耗时排个序,优化目标自己浮出来。

下方:监控曲线。 CPU 使用率与内存用量的折线图,随时间刷新。趋势比瞬时值重要:偶尔冲高是正常业务波动,持续爬升不回落才是内存泄漏或慢查询堆积的信号。

给你一张健康水位参考表,巡检时对照着看:

|----------------|-----------|--------------------|
| 指标 | 健康区间 | 需要行动的信号 |
| CPU 使用率 | 日常 < 40% | 持续 > 70% 且无对应业务高峰 |
| JVM Used / Max | < 50% | 长期 > 80% 或只涨不跌 |
| 会话在线数 | 远低于设计并发 | 接近授权/设计上限 |
| 模块平均耗时 | 与历史基线持平 | 无改动情况下明显变大 |

水位的意义在于对比:知道正常长什么样,异常才一眼可见。这也正是"每天扫一眼"这条建议的由来。

四、出问题时的固定动作清单

把三个工具串成一套"事故响应 SOP":

  1. 先看系统信息:服务活着吗?内存爆了吗?CPU 异常吗?启动时间是预期的吗?------30 秒内判断"是资源问题还是业务问题";
  1. 再看模块统计:按平均耗时排序,找到最慢的接口;结合调用次数判断是"高频慢"还是"单次巨慢";
  1. 然后查日志:以异常时间点为中心拉时间线,看异常模块调用前后的用户操作与报错记录;
  1. 必要时动用在线用户:故障由某账号的极端操作引起时,先注销该会话止血,再慢慢修。

这套动作的价值在于全部在浏览器里完成------不需要登服务器翻日志文件,不需要装监控探针,出问题的人(往往不在服务器旁边)也能第一时间自查。

五、给运维的三条预防性建议

监控工具是"事后看"的,但用法可以是"事前防":

  • 每天上班先扫一眼系统信息页,记住内存与 CPU 的"正常水位"。没有基线,异常就看不出来;
  • 每周导出一次模块耗时统计,平均耗时持续变大的模块就是要优化的下一个目标;
  • 日志保留策略与备份一起定:日志是审计的证据,也是排错的线索,删太早会在下一次故障时让你后悔。
相关推荐
wtblszn1 小时前
光伏发电与光热发电有什么区别
大数据·运维·物联网
卓怡学长1 小时前
w202springboot基于B_S架构的图书信息管理系统
java·spring boot·spring·intellij-idea
走到天涯海角1 小时前
用springBoot写几个简单的接口
java·spring boot·intellij-idea
troy1281 小时前
Java 技术栈全景指南:从基础到微服务的完整知识体系
java·开发语言·微服务
Escalating_xu1 小时前
【C 语言】深入理解指针(2):数组名、数组传参、二级指针与指针数组
java·c语言·开发语言
锅巴编程1 小时前
nginx-413-client-max-body-size
运维·nginx
景熙55231 小时前
JDBC 详解:从原理到实战(含完整可运行 Demo)
java·spring·tomcat·mybatis·jdbc
我是小白呀2 小时前
n8n 实战:把 AcmeFlow 的 READY 事件接到 CRM 通知
数据库·人工智能·workflow
蓝速科技2 小时前
仓储盘点移动终端选型与蓝速科技 K10 实战方案
运维·数据库·人工智能·科技·材质