Coolify logoCoolify

SigNoz

SigNoz logo

什么是 SigNoz

SigNoz 是一个原生支持 OpenTelemetry 的开源可观测性平台,涵盖日志、链路追踪和指标。

配置 SigNoz

以下步骤将指导您在 Coolify 中创建服务后完成 SigNoz 的配置。

URL 配置

由于 SigNoz 是一个完整的可观测性平台,需要暴露多个端口才能正常工作。 第一个是 UI 的 URL。您可以在 Signoz 服务的“Service URL”字段中找到它,例如:https://signoz.example.com:8080

然后,您需要暴露 Otel Collector,这是一个负责从您的应用程序和服务接收链路追踪、指标和日志的服务。 它支持多种不同的格式,如 GRPC、HTTP 格式、Prometheus 指标以及多种日志格式(FluentBit/FluentD、系统日志、云服务日志等)。

每个接收器都暴露了不同的端口,我们需要为每个接收器暴露相应的端口。 您有两种策略来实现这一点:

  • 为每个接收器配置不同的 URL。
  • 直接将端口暴露给主机和外部世界。

您选择哪种选项取决于您的安全需求以及如何组织您的域名。

每个接收器一个子域名

此解决方案只需要您将子域名映射到 Otel Collector 服务。我们将介绍两个默认的接收器:HTTP 和 GRPC 接收器。

  1. 确保您的子域名已注册并指向您的服务器,例如 https://signoz-grpc.example.comhttps://signoz-http.example.com
  2. 打开“Otel Collector”服务设置。
  3. 添加您的域名,格式为 https://<subdomain>.example.com:<container中的端口>,用逗号分隔。例如:https://signoz-grpc.example.com:4317,https://signoz-http.example.com:4318

如果您想暴露额外的端口/接收器,只需在列表中添加一个新地址即可。

在主机上暴露端口

如果您更喜欢为所有接收器使用单个域名,您可以编辑 Docker Compose 以直接在 otel-collector 容器中暴露端口:

services:
  # ...
otel-collector:
  image: signoz/signoz-otel-collector:latest
  container_name: signoz-otel-collector
  # ...
  ports:
  - 4317:4317 # GRPC Collector
  - 4318:4318 # HTTP Collector
 
  # ...

现在您可以将端口附加到您的服务 URL 以向接收器发送数据:https://signoz.example.com:4318

启用 SMTP 邮件

SigNoz 使用邮件进行两件事:邀请用户和发送警报

SigNoz 邮件

要启用 SMTP 邮件(包括邀请新团队成员),您需要从 Coolify 服务的“环境变量”选项卡设置以下变量:

  • SIGNOZ_EMAILING_ENABLED 启用 SigNoz 中的邮件功能。
  • SIGNOZ_EMAILING_SMTP_ADDRESS 是要使用的 SMTP 服务器的地址,格式为 host:port
  • SIGNOZ_EMAILING_SMTP_FROM 是“发件人”字段中要使用的电子邮件地址。
  • SIGNOZ_EMAILING_SMTP_AUTH_USERNAMESIGNOZ_EMAILING_SMTP_AUTH_PASSWORD 用于向 SMTP 服务器进行身份验证。

更多环境变量可供使用,可通过身份/密钥进行身份验证或使用 TLS 代替 SmartTLS。阅读传递模板中未包含的环境变量) 以了解如何添加它们。

警报管理器邮件

只有在为警报管理器专门配置了 SMTP 服务器时,才能发送电子邮件警报。全局 SMTP 配置和警报管理器配置使用不同的环境变量。

注意:SigNoz 目前存在一个已知问题,导致无法保存电子邮件警报配置。您可以在其问题跟踪器中跟踪此问题的进展

要启用电子邮件警报,您需要从 Coolify 服务的“环境变量”选项卡设置以下变量:

  • SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__SMARTHOST 是要使用的 SMTP 服务器的地址,格式为 host:port
  • SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__FROM 是“发件人”字段中要使用的电子邮件地址。
  • SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__AUTH__USERNAMESIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__AUTH__PASSWORD 用于向 SMTP 服务器进行身份验证。

更多环境变量可供使用,可通过身份/密钥进行身份验证或使用 TLS 代替 SmartTLS。阅读定义环境变量 以了解如何添加它们。

使用非 root 用户时的权限问题

该问题主要是由于 Coolify 重新应用其用户对挂载在容器中的文件的权限和 chmod 设置。

此处的解决方案是使文件对所有人可读。在服务器上打开终端,进入 /data/coolify/services/<SERVICE ID>/ clickhouse 并运行命令 chmod o+r *。这应该允许 Clickhouse 根据需要访问文件。

链接

On this page