Seq在centos Docker上的使用
Docker入门
Seq在Docker上可用datalust/seq。Seq基于Linux的Docker映像非常适合部署到Linux主机和容器协调器,以及Linux或macOS上的本地开发。它还具有用于简化Kubernetes部署的Helm图表。
Seq在Docker Hub上作为官方支持的容器映像分发。
使用Docker预览Seq
docker run --name seq -e ACCEPT_EULA=Y -p 5341:80 datalust/seq:latest这个命令中的/zhongweb就是日志的存储地址docker run --name seq -e ACCEPT_EULA=Y -v /path/to/seq/data:/zhongweb -p 5341:80 datalust/seq:latest您将能够浏览Seq UI,向其发送日志并与http:// localhost:5341上的HTTP API进行交互。
注意:请继续阅读以了解如何在容器重启之间保留日志(即在生产环境中使用的日志)。
Kubernetes支持
Seq有一个Helm图表,用于简化Kubernetes中的部署。有关更多详细信息,请参见Kubernetes部署文档。
这将以以下形式启动一个Seq实例:
-
--name seq能够使用容器名称运行命令,例如docker stop seq
-
-d以后台程序模式运行(在后台),省略此参数以查看容器日志stdout
-
--restart unless-stopped如果停止运行,请始终重新启动Seq泊坞窗容器,除非运行时docker stop seq
-
-e ACCEPT_EULA=Y要运行Seq,您必须接受最终用户许可协议
-
-e SEQ_FIRSTRUN_ADMINPASSWORDHASH="$PH"为用户帐户设置初始密码;用您想要的密码替换;上面的第一行将密码的加密哈希存储到环境变量中(bash语法)admin<password>$PH
-
-v /path/to/seq/data:/data安装在主机上的docker容器上-这是Seq存储其所有配置和日志文件的位置。/path/to/seq/data/data
-
-p 80:80将主机映射到Seq UI和API(端口80)localhost:80
-
-p 5341:5341将主机映射到Seq的特殊“仅摄取”端口(端口5341)。我们建议单独暴露仅摄入端口。localhost:5341
可以分别使用和命令停止和启动容器。
docker stop seq
运行上面的命令后,在http:// localhost:80浏览Seq UI 。

Seq Web UI,以降序显示搜索栏和最新事件列表。
为了使Seq准确测量可用内存,具体取决于托管基础结构,通常有必要为容器指定内存限制。如果Seq容器意外退出,或者由于内存不足错误而失败,请为指定的和参数:
--memory
这些标志的参数是系统应为容器提供的总内存(越多越好)。通常,两个标志应具有相同的值,从而有效地禁用容器的交换。
Seq Docker容器将配置和日志事件存储在其目录中。为了使该目录能够在容器重新启动后继续运行,如上例所示,需要使用命令行将其映射到持久卷。
/data
Seq是一个数据库;提供给它的卷应等效于本地磁盘存储,例如Azure磁盘VHD或AWS EBS卷。
只有一个正在运行的Seq容器可以同时访问一个存储卷:不可能运行两个或多个指向同一存储的容器实例。
Azure文件卷
在Microsoft Azure上运行Seq时,仅建议将Azure磁盘卷(已挂载的VHD)用于持久性存储。
对于非关键工作负载,Azure Premium文件可以用于事件存储,但是元数据必须在此配置中持久保存到SQL Azure。不支持标准(非高级)Azure文件卷。
如果您在命令行中为admin帐户指定了初始密码,则身份验证将已启用。
docker run
如果没有,那么下一步应该是访问“设置”>“用户”并启用身份验证。
在使用Seq之前,您需要将应用程序配置为通过支持的日志记录库之一发送日志事件。
- 使用Serilog - Serilog是.NET平台的现代日志记录库,具有对结构化事件数据的深入支持。
- 使用ASP.NET Core-ASP.NET Core中包含的Microsoft.Extensions.Logging库与Seq配合良好。
- 使用Node.js-在Node.js上,我们支持Pino,Winston和Bunyan日志记录库。
Seq集成了多种语言,库和框架,并具有用于接收日志数据的简单HTTP API。了解有关将日志放入Seq的更多信息。
如果您不确定从哪里开始,我们建议您选择Serilog。
您的应用程序还可以通过在命令行客户端添加输出来将事件记录到Seq
或直接将JSON发布到Seq:
容器化服务还可以使用Docker的GELF(Graylog扩展日志格式)日志驱动程序将其日志本地转发到Seq。
除了API端口以外,容器还可以公开有限的接收端口。在容器中,提取端口映射到:
5341
在哪里:
-
$HOST_PATH_TO_SEQ是容器主机上供Seq实例使用的绝对路径。
-
$HOST_INGESTION_PORT是主机上用于公开Seq接收终结点的端口。
在命令中的映像之后指定的任何参数都将作为参数传递给Seq二进制文件:
datalust/seq:latest
在哪里:
-
$HOST_PATH_TO_SEQ是容器主机上供Seq实例使用的绝对路径。
容器中Seq使用的重要文件路径。
| 价值 | 描述 |
|---|---|
|
/data
|
Seq范围和日志的位置 |
容器中Seq使用的重要端口。
| 价值 | 描述 |
|---|---|
|
:80
|
Seq绑定到API和UI的端口 |
|
:5341
|
Seq绑定到仅摄取端点的端口 |
容器中Seq使用的环境变量。有关容器支持的环境变量的完整列表,请参见“服务器配置”参考。
| 价值 | 描述 |
|---|---|
|
ACCEPT_EULA
|
必须设置为表明已接受Seq EULA
Y
|
|
SEQ_API_CANONICALURI
|
可用于到达容器外部的Seq的外部URI(以前称为)
BASE_URI
|
|
SEQ_FIRSTRUN_ADMINUSERNAME
|
默认管理员帐户的用户名,仅在首次初始化容器时使用;默认是
admin
|
|
SEQ_FIRSTRUN_ADMINPASSWORDHASH
|
默认管理员密码的加密加密哈希,仅在首次初始化容器时使用;默认为不设置密码;使用创建哈希并提供密码
docker run datalust/seq config hash
STDIN
|
一旦您的应用愉快地将事件发送到Seq,您就可以:

浙公网安备 33010602011771号