news 2026/9/4 15:30:44

Wiki.js 操作日志怎么配?安全监控 4 步闭环指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Wiki.js 操作日志怎么配?安全监控 4 步闭环指南

Wiki.js 操作日志怎么配?安全监控 4 步闭环指南

【免费下载链接】wiki-Wiki.js | Next Generation Open Source Wiki项目地址: https://gitcode.com/GitHub_Trending/wiki78/wiki-

凌晨三点,某账号 10 分钟登录失败 40 次,安全组要你 1 分钟说清:哪个 IP、动了哪条记录。靠记忆答不上来——这正是 Wiki.js 操作日志与安全监控该兜底的场景。下面按最短路径走一遍:拉基线、分事件、定响应。

5 分钟把日志基线跑起来

这节解决:默认装完你只有一条控制台日志,debug 级别什么都看不见,先把基线拉起来。

Wiki.js 启动时会构建 winston logger(见 server/core/logger.js):默认只挂一个 Console 输出,级别读配置里的logLevel(默认info),格式读logFormat。也就是说默认状态下 debug、verbose 全被吞掉。

跑起来分三步:

  1. 照 config.sample.yml 改两行:logLevel: debuglogFormat: json。json 格式让每条日志是一行独立 JSON,后面接日志聚合工具时省事。
  2. 重启服务(docker 部署直接docker restart容器即可)。
  3. 看终端:启动、配置加载、模块初始化会各打一行带时间戳和级别的内容,看到[default] info: ...这种输出,说明基线已通。

级别与格式的核心配置就是这一段(精简版):

const logger = winston.createLogger({ level: 'debug', // 默认 info,调低后 debug/verbose 都会打出来 format: winston.format.combine( winston.format.label({ label: 'default' }), winston.format.timestamp(), winston.format.json() ) })

顺手开一下后台「Logging」页面:实时控制台走 GraphQL 订阅loggingLiveTrail滚动输出,不用 ssh 进服务器盯终端。排障完记得把logLevel调回infodebug别留在生产环境过夜。

三类事件,各记各的

这节解决:你想查某类事件时,不用猜它落在哪儿——一张表说清记什么、存在哪、去哪看。

事件类型记什么落在哪在哪看
用户行为登录/登出、页面编辑与删除、标签和分组变更console(启用 disk 模块后另有文件)终端,或后台日志实时控制台
系统事件启动、配置加载、模块初始化、定时任务console终端;级别 info 起就可见
安全审计登录失败、权限变更、用户创建等敏感操作文件 + 实时 trail(level/output/timestamp 三字段)实时:后台控制台;历史:GraphQL 查询

三点补充:

  • 用户行为和系统事件本质是同一条 winston 流,靠级别和 label 区分,不存在独立存储,按消息文本过滤即可。
  • 安全审计多一层:trail 行结构定义在 server/graph/schemas/logging.graphql,实时走订阅推、历史走查询拉。
  • 想把日志落到文件而不是随终端消失,就在后台 Logging 设置里启用 server/modules/logging/disk/ 下的 disk 模块(把isEnabled置为 true)。内置模块实现较薄,更稳的做法是直接采集控制台 JSON 输出给 filebeat/fluentd。

安全事件来了,四步闭环

这节解决:真出事时别慌着乱翻,按这四步走,每步 5 分钟内能收口。

1. 发现——盯两个地方:后台日志控制台的实时滚动(loggingLiveTrail订阅),和终端里grep '"level":"warn"'。短时间内 warn/error 密度突增,就是第一信号。

2. 定位——用 GraphQL 拉审计状态,拿到时间戳、操作人、动作摘要(需系统管理权限):

query { logging { loggers(orderBy: "level") { key isEnabled level config { key value } } } }

再对照时间轴:哪个模块在哪个级别打的这行、从几点开始,就是谁、在何时。

3. 处置——按清单顺序做,不跳步:

  1. 撤销涉事账号权限(先降为只读,止血优先)
  2. 恢复被改坏的内容(从历史版本回滚)
  3. 拉取该账号近 24 小时全部操作,确认影响面
  4. 归档事件记录并通知相关方,原始日志一条不删

4. 复盘——把这次漏掉的条件写回配置:本该告警却没报的事件,把对应模块级别提到warn以上。下周例会过一遍近期告警率,闭环才算真正合上。

自定义日志模块怎么加

这节解决:想把日志推给 ELK/Splunk 时,怎么自己扩。三件套放进modules/logging目录,下次启动自动加载:

  • definition.yml:声明模块 key、默认级别与配置项,后台按它渲染设置页
  • index.js:写处理逻辑,接 ELK / Splunk / syslog 就从这里插
  • schema.graphql:可选,向管理界面暴露自定义字段

三个高频坑:

  • 📦 日志量过大:生产logLevel回到info,只让 error 落文件
  • ⏱️ 查询慢:按时间分区,或导出到外部工具
  • 🔍 漏报:安全类事件级别至少warn,每季度审计一次配置

今天就先改一行logLevel拉到 debug 看一眼。最重要的习惯:出事后 1 分钟内能翻到日志——翻不到,等于没配。

【免费下载链接】wiki-Wiki.js | Next Generation Open Source Wiki项目地址: https://gitcode.com/GitHub_Trending/wiki78/wiki-

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 15:29:22

Archify 时序图实战:完整追踪一次缓存缺失的 API 调用链

Archify 时序图实战:完整追踪一次缓存缺失的 API 调用链 【免费下载链接】archify Agent skill for beautiful, verifiable architecture, workflow, sequence, data-flow, and lifecycle diagrams—self-contained HTML with motion and crisp export. 项目地址:…

作者头像 李华
网站建设 2026/9/4 15:28:56

基于Notion API构建自动化触发器:监听数据库变更并执行本地脚本

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 15:27:03

Codex计划模式实战:构建AI自动化工作流的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 15:26:50

Pixelle-Video:主题到成片的全自动 AI 短视频引擎,从零到上手

Pixelle-Video:主题到成片的全自动 AI 短视频引擎,从零到上手 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video Pi…

作者头像 李华
网站建设 2026/9/4 15:23:54

DSOGI-PLL锁相环原理与仿真:APF谐波补偿中的基波正序相位锁定

实际调试有源电力滤波器(APF)时,真正决定补偿效果的不是功率管开关频率,而是控制系统能否从畸变、不平衡的并网点电压里稳定拿到“基波正序相位”。这个相位通常由软件锁相环提供,其中最常用的改进方案之一就是 DSOGI-…

作者头像 李华
网站建设 2026/9/4 15:21:44

面对不合适的技术主题,如何构建标准的本地部署教程?

这个输入内容不是一个具体的开源项目、模型工具或可操作的技术方案,无法在 CSDN 技术博客的语境下展开部署教程、功能测试、接口调用或问题排查。标题中的“[铁虫]“我希望你成为比我更好的人””看起来更像是来自影视、动画或二次创作的内容,不属于本地…

作者头像 李华