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:应用标识(如his、mam、mdm)env:环境标识(如dev、test、pre、prod)
配置后在 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 使用手册。