当前位置: 首页 > news >正文

在Docker上部署datalust/Seq日志服务系统

应用环境
Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-139-generic x86_64)
Docker version 28.1.1, build 4eba377

Seq 是用于结构化应用程序日志和跟踪的实时搜索和分析服务器。其精心设计的用户界面、JSON 事件存储和熟悉的查询语言使其成为检测和诊断复杂应用程序和微服务中问题的高效平台。

Seq 是自托管的,可在 Windows 或 Docker/Linux 下运行。您可以在本地将 Seq 部署到自己的基础设施中,也可以在任何公有云中轻松启动实例。

可以从各种日志记录库和协议中提取应用程序遥测数据。警报和通知可以发送到各种输出。而且,输入和输出插件都可以用任何语言或使用 .NET 应用程序 SDK 编写。
img

文章目录

    • 拉取容器镜像
    • 1. 生成Run脚本
      • 1.1 实例脚本
      • 1.2 参数解读
    • 2. 运维管理
      • 2.1 配置Root账号
      • 2.2 创建API Keys
      • 2.3 清空日志事件
      • 2.4 仪表盘
      • 参考文档

本文Seq 基于 Linux 的 Docker 映像非常适合部署到 Linux 主机和容器编排器,以及在 Linux 或 macOS 上进行本地开发,官方提供一个单用户免费的开发版本。

拉取容器镜像

# datalust/seq:2024.3.13545
sudo docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/datalust/seq:latest# 添加标签名Tag
sudo docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/datalust/seq:latest datalust/seq:latest
# 移除标签名Tag
sudo docker rmi swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/datalust/seq:latest

国内镜像参考:
渡渡鸟镜像

1. 生成Run脚本

可参考:渡渡鸟-Run助手

1.1 实例脚本

sudo docker run -itd \
--restart=unless-stopped \
--name seq \
-e ACCEPT_EULA=Y \
-e SEQ_FIRSTRUN_ADMINPASSWORDHASH="" \
-v /docker/seq:/data \
-p 1080:80 \
-p 5341:5341 \
--memory=16g \
--memory-swap=16g \
--privileged=true \
datalust/seq:latest

1.2 参数解读

# 将镜像进实例化成容器并运行
docker run# 【i】保持STDIN(标准输入)开放,即使没有附加任何东西。这通常用于让容器的进程保持运行,即使没有附加到终端。例如,你可以在容器内部运行一个交互式shell
# 【t】分配一个伪终端(pseudo-TTY),这对于交互式shell非常重要,比如当你想要在容器中运行bash或sh时。
# 【d】后台运行,即所谓的“detached”模式。容器会在后台启动,并且你会得到容器的ID或名称
-itd# 重启策略
## no:不自动重启,缺省时默认
## always:始终重启
## unless-stopped:Docker 服务重启后自动启动容器,除非容器被手动停止。可指定最大重试次数,例如 --restart=on-failure:3(最多重启3次)。
## on-failure:仅在容器非正常退出(退出状态码非0)时重启。
--restart=unless-stopped \# 容器命名
--name seq# 设置为Y表示接受 Seq 最终用户许可协议
-e ACCEPT_EULA=Y# Seq 在生成返回 Seq 服务器的链接时将使用的基本 URI(可选;OIDC 登录、警报通知和 Kubernetes 入口支持通常需要)
## Example: api.canonicalUri=https://seq.example.com/
-e SEQ_API_CANONICALURI=# 不使用缓存
-e SEQ_CACHE_SYSTEMRAMTARGET=0# 设置初始管理员用户名和密码,SEQ_FIRSTRUN_*此步骤只能在容器首次启动时执行。在此之后设置将不起作用。
-e SEQ_FIRSTRUN_ADMINPASSWORDHASH="$SeqPwd"# Web端口root访问密码Hash值为空,暂不设
-e SEQ_FIRSTRUN_ADMINPASSWORDHASH=""# 挂载卷映射(宿主:容器)
## /docker/seq:/data:实例化数据
-v /docker/seq:/data# 【p】映射策略,<宿主端口>:<容器端口>
## 80:http web端口,5341:http webapi端口
-p 1080:80
-p 5341:5341# 最后一行所引用的docker镜像源

2. 运维管理

# 检查实例化配置
sudo docker run --rm -it -v seq datalust/seq config list
sudo docker run --rm -it -v seq datalust/seq:latest config list# 调取运行日志[实时]
sudo docker logs -f seq --tail 20# 登录后台bash终端
sudo docker exec -it seq /bin/bash# bash后端修改密码
seqsvr auth --basic -u admin -p admin@pwd# bash后端调取某天日志内容
cat /data/Logs/seq-202506xx.log

2.1 配置Root账号

可以通过调取运行日志,或者在Portainer Web管理端查看容器运行情况
在这里插入图片描述
然后直接访问到宿主机IP:1080地址,进入Seq Web日志管理系统
在这里插入图片描述
可按图上序号位置,将admin账号调整为root账号,同时设置其登录密码。由于本系统免费是单用户,多用户使用则可以通过TRY FREE FOR 30 DAYS进行申请30天免费使用,或直接通过旁边的按钮进行购买。

可按图上序号位置,将admin账号调整为root账号,同时设置其登录密码。由于本系统免费是单用户,多用户使用则可以通过TRY FREE FOR 30 DAYS进行申请30天免费使用,或直接通过旁边的按钮进行购买。

2.2 创建API Keys

API 密钥用于标识应用程序、写入事件以及与 Seq API 交互。每个 API 密钥都可以与一组属性相关联,这些属性将应用于使用它写入的事件。使用提取屏幕跟踪每个 API 密钥的提取。
在这里插入图片描述
按上图红色数字标识顺序打开后,填写以下几处内容
在这里插入图片描述
保存成功【SAVE CHANGES】后,会得到一串【API Key TOKEN】口令,客户端开发时会用到。
在这里插入图片描述

2.3 清空日志事件

按下图步骤操作(也可以点击【ADD POLICY】设定清理规则策略,来定时执行清理作业)
在这里插入图片描述
选择垃圾桶图标,点击【OK】。
在这里插入图片描述

2.4 仪表盘

在这里插入图片描述

参考文档

[SEQ日志]在.NET中快速集成轻量级分页式日志平台
.net 使用 Serilog 和 Seq 构建强大的日志系统
ASP.NET Core之Serilog、SEQ、ILogger构建可视化日志

http://www.xdnf.cn/news/1032859.html

相关文章:

  • 【DSP笔记 · 第5章】数字滤波器的蓝图:从数学公式到硬件实现的艺术
  • React--》使用vite构建器打造高效的React组件库
  • Docker 基础使用
  • TryHackMe (THM) - SOC基础知识
  • Android音视频流媒体基础总结
  • excel中添加进度条
  • 从大模型到 AI 应用,一共需要几步?
  • Git 工作流与版本管理策略
  • JVM(1)——运行时数据区
  • Hive SQL 执行计划详解:从查看方法到优化应用
  • 学习昇腾开发的第一天--环境配置
  • RabbitMQ的交换机和队列概念
  • 精益数据分析(104/126):免费移动应用的用户活跃率与付费转化优化策略
  • STM32F4通用定时器TIM9-TIM14讲解及PWM呼吸灯实例解读
  • 1 Studying《Arm A715 Software Optimization Guide》
  • 【Python-Day 26】解锁时间魔法:深入解析 time 与 datetime 模块
  • 双重特征c++
  • 共享项目中使用Wpf和Winform——c# CAD二次开发
  • 浏览器指纹-探究前端如何识别用户设备
  • 2.4.1 ASPICE的编码与单元测试
  • 新能源汽车电子架构革命:深度解析AUTOSAR标准与实践
  • 基于U-Net与可分离卷积的肺部分割技术详解
  • error:MISCONF Redis is configured to save RDB snapshots
  • Android 蓝牙默认名称设置分析总结
  • Laravel模板Blade 用法 x-layouts.guest 和x-guest-layout 什么区别
  • 《深度学习:基础与概念》第一章 学习笔记与思考
  • 数据结构 学习 链表 2025年6月14日08点01分
  • 微店商品详情API接口Python攻略
  • 代码随想录算法训练营第三十二天 |【动态规划1-13】
  • 从汇编的角度揭开C++ this指针的神秘面纱(上)