SigNoz
什么是 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 接收器。
- 确保您的子域名已注册并指向您的服务器,例如
https://signoz-grpc.example.com和https://signoz-http.example.com。 - 打开“Otel Collector”服务设置。
- 添加您的域名,格式为
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_USERNAME和SIGNOZ_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__USERNAME和SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__AUTH__PASSWORD用于向 SMTP 服务器进行身份验证。
更多环境变量可供使用,可通过身份/密钥进行身份验证或使用 TLS 代替 SmartTLS。阅读定义环境变量 以了解如何添加它们。
使用非 root 用户时的权限问题
该问题主要是由于 Coolify 重新应用其用户对挂载在容器中的文件的权限和 chmod 设置。
此处的解决方案是使文件对所有人可读。在服务器上打开终端,进入 /data/coolify/services/<SERVICE ID>/ clickhouse 并运行命令 chmod o+r *。这应该允许 Clickhouse 根据需要访问文件。
