跳到主要内容
版本:3.0.0

Seq 部署和维护

Seq 是 Aegis 框架推荐的集中式日志平台。应用通过 NLog.Targets.Seq 将结构化日志推送到 Seq,运维人员在 Seq Web UI 中检索和分析日志。

Docker 部署

Seq 官方提供 Docker 镜像,推荐使用 Docker 方式部署。

docker run -d \
--name seq \
-e ACCEPT_EULA=Y \
-p 5341:80 \
-v /data/seq:/data \
datalust/seq:latest

参数说明:

  • -p 5341:80:将容器 80 端口映射到宿主机 5341(Web UI 和 Ingestion 端口共用)
  • -v /data/seq:/data:持久化日志数据到宿主机
  • ACCEPT_EULA=Y:接受 Seq 许可协议

部署完成后访问 http://<服务器IP>:5341 即可打开 Seq Web UI。

NLog 配置

应用端需要在 NLog.config 中配置 Seq target。

<extensions> 标签里添加:

<extensions>
<add assembly="NLog.Targets.Seq"/>
</extensions>

<targets> 标签里添加:

<target name="seq" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="2000">
<target xsi:type="Seq" serverUrl="http://<Seq服务器IP>:5341" apiKey="你的ApiKey" />
</target>

<rules> 标签里添加:

<logger name="*" minlevel="Info" writeTo="seq" />

ApiKey 管理

进入 Seq Web UI,点开当前用户 → API Keys,进入 API Keys 管理页面。

创建 ApiKey 时需要填写以下字段:

  • Title:API Key 的名称,用于区分不同应用
  • Permissions:应用端只需要接收日志,选择 Ingest 即可
  • Minimum level:该 ApiKey 作用的日志最低级别
  • Filter:可选,过滤部分日志
  • Attached properties:可选,为该 ApiKey 设置内置的键值对属性

操作完成后点 SAVE CHANGES 保存。保存后会生成 API Key Token,将该 Token 填入应用端 NLog 配置中的 apiKey 字段。

通用属性约定

在 ApiKey 的 Attached properties 中推荐配置以下属性,便于按环境和应用检索日志:

  • app:应用标识(如 hismammdm
  • env:环境标识(如 devtestpreprod

配置后在 Seq 搜索中可以使用 app='his' and env='prod' 这样的表达式过滤日志。

数据维护

磁盘空间

Seq 日志数据存储在 /data 目录(Docker 部署时对应挂载卷)。当磁盘空间不足时,可以通过 Seq Web UI 的 Settings → Retention 配置日志保留策略。

备份

如需备份 Seq 数据,停止容器后打包 /data 目录即可:

docker stop seq
tar czf seq-backup-$(date +%Y%m%d).tar.gz /data/seq
docker start seq

更多日志检索和查询用法,参考 Seq 使用手册