{{ pageTitle }}
账号信息
当前登录账号的基本信息与权限修改密码
至少 8 位、含字母和数字;需当前密码确认登录二次验证
绑定手机后,登录需额外输入短信验证码7日注册趋势
最近注册
语音转文字统计
7日转写趋势
今日 TOP 用户
| 用户 | UID | 手机号 | 夜探号 | 状态 | 注册时间 | 操作 |
|---|---|---|---|---|---|---|
|
{{ avatarText(u) }}
{{ u.nickname || '-' }}
|
{{ u.uid }} | {{ u.phone || '-' }} | {{ u.yetan_id || '-' }} | {{ userStatusLabel(u) }} | {{ formatTime(u.created_at) }} | |
| 暂无数据 | ||||||
| 群名称 | 群ID | 群主 | 成员数 | 全员禁言 | 封群状态 | 群链接 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|---|---|
|
{{ g.name?.[0] || 'G' }}
{{ g.name }}
|
{{ g.id }} | {{ g.owner_nickname || g.owner_uid }} | {{ g.member_count }} / {{ g.display_max_members === -1 ? '无限' : g.display_max_members }} | {{ g.mute_all ? '是' : '否' }} | {{ isGroupBanned(g) ? '已封群' : '正常' }} {{ groupBanUntilText(g) === '永久' ? '永久封禁' : '解封 ' + groupBanUntilText(g) }} | {{ g.group_link || '-' }} | {{ formatTime(g.created_at) }} | |
| 暂无数据 | ||||||||
{{ a.nickname }}
UID: {{ a.uid }}
{{ a.signature }}
创建于 {{ formatTime(a.created_at) }}
暂无系统账号
点击上方按钮添加系统通知、客服等特殊账号
| 编号 | 投诉人 | 投诉类型 | 投诉原因 | 描述 | 状态 | 时间 | 操作 |
|---|---|---|---|---|---|---|---|
| #{{ r.id }} |
{{ avatarText({ nickname: r.reporter_name }) }}
{{ r.reporter_name || r.reporter_uid }}
|
{{ reportTargetType(r.target_type) }} | {{ reportReason(r.reason) }} | {{ r.description ? r.description.substring(0, 30) + (r.description.length > 30 ? '...' : '') : '-' }} | {{ reportStatus(r.status) }} | {{ formatTime(r.created_at) }} | |
| 暂无投诉记录 | |||||||
| 申诉人 | 处置范围 | 申诉理由 | 状态 | 申诉时间 | 操作 |
|---|---|---|---|---|---|
|
{{ avatarText({ nickname: a.nickname }) }}
{{ a.nickname || a.uid }}
|
{{ appealScope(a.scope) }} | {{ a.reason ? a.reason.substring(0, 30) + (a.reason.length > 30 ? '...' : '') : '-' }} | {{ appealStatus(a.status) }} | {{ formatTime(a.created_at) }} | |
| 暂无申诉记录 | |||||
| ID | 敏感词 | 分类 | 等级 | 近30天命中 | 来源 | 状态 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ w.id }} | {{ w.word }} | {{ w.category }} | {{ w.level === 'block' ? '拦截' : '只记录' }} | {{ swExposure[w.word].cnt }} 次 0 | {{ sensitiveSourceZh(w.source) }} | {{ w.is_active ? '已启用' : '已停用' }} | {{ formatTime(w.created_at) }} | |
| 暂无敏感词 | ||||||||
| 用户 | UID | 累计 | 警告 | 被拦截 | 违规封禁 | 封禁到期 | 最近违规 | 操作 |
|---|---|---|---|---|---|---|---|---|
|
{{ avatarText(v) }}
{{ v.nickname || '(未设置昵称)' }}
|
{{ v.total_count }} | {{ v.warn_count }} | {{ v.blocked_count }} | {{ v.reported_count }} | 全局 {{ formatTime(v.ban_until) }} 聊天 {{ formatTime(v.chat_ban_until) }} 朋友圈 {{ formatTime(v.moment_ban_until) }} 资料 {{ formatTime(v.profile_ban_until) }} 社交 {{ formatTime(v.social_ban_until) }} 群管理 {{ formatTime(v.group_ban_until) }} - | {{ v.last_violation_at ? formatTime(v.last_violation_at) : '-' }} | ||
| 暂无违规记录 | ||||||||
| 群名称 | 群主 | 累计 | 投诉核实 | 命中 | 警告 | 封群状态 | 最近违规 | 操作 |
|---|---|---|---|---|---|---|---|---|
{{ g.group_name?.[0] || 'G' }} {{ g.group_name || g.group_id }} |
{{ g.owner_nickname || g.owner_uid || '-' }} | {{ g.total_count }} | {{ g.report_count }} | {{ g.audit_hit_count }} | {{ g.warn_count }} | {{ isGroupBanned(g) ? '已封群' : '正常' }} {{ groupBanUntilText(g) === '永久' ? '永久' : '解封 '+groupBanUntilText(g) }} | {{ formatTime(g.last_violation_at) }} | |
| 暂无群违规记录 | ||||||||
| 链接 | 结果 | 违规类型 | 用户 | IP | 缓存 | 时间 | 操作 |
|---|---|---|---|---|---|---|---|
| 加载中... | |||||||
| 暂无链接审核记录 | |||||||
| {{ urlResultLabel(r.result) }} | {{ r.label || '-' }} | {{ r.uid || '-' }} | {{ formatClientIp(r.client_ip) }} | {{ r.from_cache ? '是' : '否' }} | {{ r.created_at }} | ||
| ID | 时间 | 用户 | UID | 手机号 | 入口 | 动作 | 命中词 | 内容预览 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ log.id }} | {{ formatTime(log.created_at) }} | {{ log.nickname || '-' }} | {{ log.phone || '-' }} | {{ auditLogScope(log.scope) }} | {{ auditLogActionLabel(log.action) }} | {{ auditLabelZh(w) }} |
|
||
| 暂无审核日志 | |||||||||
| 用户 | 反馈内容 | 联系方式 | 状态 | 时间 | 操作 |
|---|---|---|---|---|---|
|
{{ avatarText(f) }}
{{ f.nickname || f.uid }}
|
{{ f.content ? f.content.substring(0, 40) + (f.content.length > 40 ? '...' : '') : '-' }} | {{ f.contact || '-' }} | {{ feedbackStatus(f.status) }} | {{ formatTime(f.created_at) }} | |
| 暂无反馈记录 | |||||
| ID | 时间 | Admin 账号 | 动作 | 目标 | 客户端 IP | 详情 |
|---|---|---|---|---|---|---|
| {{ log.id }} | {{ formatTime(log.created_at) }} | {{ log.admin_uid }} | {{ adminActionLabel(log.action) }} | {{ formatAdminAuditTarget(log) }} | {{ formatClientIp(log.client_ip) }} | |
| 暂无操作记录 | ||||||
下载配置
备案 / 基础信息
下载趋势
最近下载
| 时间 | 平台 | 来源 IP |
|---|---|---|
| {{ fmtDlTime(r.created_at) }} | {{ r.platform === 'ios' ? 'iOS' : '安卓' }} | {{ formatClientIp(r.ip) }} |
| 暂无下载记录 | ||
{{ settingsTabs.find(t => t.key === settingsTab)?.name }}
{{ settingsTabHeaderHint }}查看生效范围与来源
TURN 活跃分配趋势
服务器信息
MySQL 状态
后端服务
无法连接到后端服务,请确认后端是否正在运行。
Redis 缓存
Redis 未连接,限流/验证码/分布式锁会降级到内存模式。
后端未连接,无法获取 Redis 状态。
IM 内核
无法连接到 IM 内核,消息收发会受影响。
文件转换
无法连接到文件转换服务
通话服务
TURN分配用于网络中继,不等于通话人数或通话数量。
{{ sysInfo.turn.warning }}
{{ sysInfo.turn?.error || '无法连接到 TURN 服务' }}
⚠️ 无法获取后端节点数据
{{ n.name }} {{ n.ip }}
该节点无响应,ALB 会自动摘除、把流量转到另一台(不停机)。
趋势统计
⚠️ IM 内核不可用
{{ (imMetrics && imMetrics.error) || '无法连接到 IM 内核' }}
运行指标
消息与流量 (自启动累计)
接入 / 监听地址
趋势统计
⚠️ 文件转换服务不可用
{{ (convertMetrics && convertMetrics.error) || '无法连接到文件转换服务(8.134.86.77:3001)' }}
服务器资源
转换统计 (自启动以来)
配置信息
最近转换记录(最多50条)
暂无转换记录(服务重启后清零)
| 时间 | 文件名 | 类型 | 大小 | 耗时 | 结果 |
|---|---|---|---|---|---|
| {{ formatTime(r.time) }} | {{ convertTypeName(r.type) }} | {{ r.sizeMB }}M | {{ r.durationMs }}ms | {{ convertResultBadge(r.result).t }} |
⚠️ 获取 MySQL 详情失败
{{ (mysqlDetail && mysqlDetail.error) || '' }}
连接监控
性能健康 (累计)
RDS 实例(阿里云)
{{ (mysqlDetail.rds && mysqlDetail.rds.error) || 'RDS 指标不可用' }}
表大小排行 Top 10 (库总 {{ mysqlDetail.storage.totalMB }}MB,行数估算)
| 表名 | 大小(MB) | 行数(约) |
|---|---|---|
| {{ t.name }} | {{ t.mb }} | {{ fmtNum(t.rowCount) }} |
当前活跃查询
当前无活跃查询(连接都在 Sleep)
| ID | 用户 | 库 | 耗时(s) | 状态 | SQL |
|---|---|---|---|---|---|
| {{ p.id }} | {{ p.user }} | {{ p.db }} | {{ p.time }} | {{ p.state }} |
⚠️ 获取 Redis 详情失败
{{ (redisDetail && redisDetail.error) || '' }}
内存
驱逐 / 过期 (256M关键)
⚠️ 有驱逐=内存满,缓存/锁/验证码在被淘汰,该升内存!
驱逐为 0,内存健康。
命中 / 性能 (累计)
连接
Key 空间
暂无 key
| DB | Key 数 | 带过期(TTL) |
|---|---|---|
| {{ k.db }} | {{ fmtNum(k.keys) }} | {{ fmtNum(k.expires) }} |