{{ pageTitle }}
{{ user.display_name || user.username }}
当前使用的是临时密码,请先修改密码。
CPU 使用率
{{ sys ? sys.cpu_pct.toFixed(1) : '—' }}%
{{ nproc }} 核 · iowait {{ sys ? sys.cpu_iowait_pct.toFixed(1) : '—' }}%
负载(1/5/15 分钟)
{{ sys ? sys.load1.toFixed(2) : '—' }}
{{ sys ? sys.load5.toFixed(2) : '—' }} / {{ sys ? sys.load15.toFixed(2) : '—' }}
已用内存
{{ memLive ? kb2g(memLive.used_kb) : '—' }}GB
共 {{ memLive ? kb2g(memLive.total_kb) : '—' }}GB · Swap {{ memLive ? kb2g(memLive.swap_used_kb) : '—' }}GB
磁盘读写
{{ sys ? fmtRate(sys.disk_read_kb) : '—' }}MB/s
写 {{ sys ? fmtRate(sys.disk_write_kb) : '—' }} MB/s
网络
{{ sys ? fmtRate(sys.net_rx_kb) : '—' }}MB/s
上行 {{ sys ? fmtRate(sys.net_tx_kb) : '—' }} MB/s
监控进程
{{ procs.length }}个
启用 {{ enabledCount }} 个 · 异常 {{ badCount }} 个
监控中的进程
名称PID状态CPU%内存线程采样点数最后采样采集操作
{{ p.name }}
{{ p.cmdline }}
{{ p.pid || '—' }} {{ stateText(p.state) }} {{ p.last ? p.last.cpu_pct.toFixed(1) : '—' }} {{ p.last ? kb2m(p.last.rss_kb) + ' MB' : '—' }} {{ p.last ? p.last.threads : '—' }} {{ nf(p.sample_count) }} {{ p.last_sample_ts ? ago(p.last_sample_ts) : '从未' }} {{ p.enabled ? '采集中' : '已暂停' }}
还没有监控任何进程,去「进程查看」挑一个加入监控吧
系统负载趋势(今天)
当前进程(手工执行 top / ps)
当前角色(viewer)没有执行命令的权限,请用 operator 或 admin 账号。
{{ topHeader.join('\n') }}
PID用户CPU%内存%RSS状态运行时长命令操作
{{ r.pid }} {{ r.user }} {{ r.cpu.toFixed(1) }} {{ r.mem.toFixed(1) }} {{ r.rss_kb ? kb2m(r.rss_kb) + ' MB' : (r.res || '—') }} {{ r.state || '—' }} {{ r.elapsed || r.time_add }} {{ r.command }} 已监控
点上面的「执行 top」或「执行 ps」获取当前进程
新增监控
PID 会变的程序(脚本、容器)用「命令行关键字」匹配,程序重启后自动跟上;名称 2~40 字符。
监控对象
名称PID周期状态采样点事件备注操作
{{ p.name }}
{{ p.cmdline }}
{{ p.pid || '—' }} {{ p.interval }}s {{ stateText(p.state) }} {{ nf(p.sample_count) }} {{ p.event_count }} {{ p.note }}
还没有监控对象
趋势分析
曲线说明:实线为均值,虚线为区间峰值;右轴为内存/线程等绝对值,左轴为百分比。 没有采集到数据的时段曲线断开(不是 0)。
进程事件(重启 / 消失 / PID 复用)
时间类型旧 PID新 PID详情
{{ ts(e.ts) }} {{ eventText(e.type) }} {{ e.old_pid || '—' }} {{ e.new_pid || '—' }} {{ e.detail }}
无事件
数据报表
按{{ reportBucket===3600 ? '小时' : '天' }}汇总,采样间隔 {{ reportInterval }} 秒
时间CPU 均值%CPU 峰值%内存均值内存峰值线程均值样本数完整性
{{ bucketLabel(r.bucket_start) }} {{ r.cpu_avg.toFixed(1) }} {{ r.cpu_max.toFixed(1) }} {{ kb2m(r.rss_avg_kb) }} MB {{ kb2m(r.rss_max_kb) }} MB {{ r.threads_avg.toFixed(1) }} {{ r.samples }} {{ completeText(r) }}
该时段没有数据
新增用户
临时密码(仅显示一次,请立即转交):{{ tempPwd }}
用户列表
登录名显示名角色状态最后登录来源 IP操作
{{ u.username }} {{ u.display_name }} {{ u.status==='active'?'启用':'停用' }} {{ u.last_login_at ? ts(u.last_login_at) : '—' }} {{ u.last_login_ip || '—' }}
审计日志(近 7 天)
时间用户操作对象详情IP
{{ ts(r.ts) }} {{ r.username || '—' }} {{ r.action }} {{ r.target }} {{ r.detail }} {{ r.ip }}
无记录
系统设置
{{ s.n }}
{{ s.d }}
保存后采集器会在下一次轮询时生效(最长 1 分钟)。
修改密码
{{ pwdForm.msg }}
帮助 · 常用命令
{{ h.n }}
{{ h.d }}
{{ h.c }}
功能说明与统计口径
  • 采集口径:每 {{ settings.default_interval || 10 }} 秒直读 /proc 一次;CPU% 以单核为 100% 基准,多线程进程可以超过 100%(与 top 一致)。
  • 进程身份:用 PID + 进程启动时刻识别,PID 被别的进程复用时自动暂停并记事件,避免数据张冠李戴。
  • 数据保留:10 秒原始数据 {{ settings.raw_keep_days || 7 }} 天,1 分钟聚合数据 {{ settings.minute_keep_days || 30 }} 天,事件 {{ settings.event_keep_days || 90 }} 天。
  • 空档:没采集到的时段曲线断开,不画成 0;报表里显示「数据不完整」。
  • 命令白名单:网页只能执行 top / ps / uptime / free / df,参数固定,仅 operator 及以上角色可用,且限流 {{ settings.top_rate_limit_sec || 1 }} 秒 1 次。
  • 只读边界:本系统不会杀进程、改优先级或发送任何信号。
{{ toast }}