← 文章 / 云原生与基础设施
signoz 5小时前 · 2026-10-09 15:11:34 · 6 阅读

在 DigitalOcean Kubernetes 上安装 SigNoz - 自建指南

本指南介绍如何使用 SigNoz Helm chart 在 DigitalOcean Kubernetes 集群上安装 SigNoz,可以通过 Foundry 完成,也可以直接使用 Helm。

前提条件

  • 已创建 DigitalOcean 集群(详情参考 DigitalOcean 官方文档)
  • kubectl 已配置好可连接集群,且同一台机器上已安装 Helm 3。
  • 集群有足够的容量运行 SigNoz。容量规划请参考资源规划文档。
HelmFoundry

安装 SigNoz

第 1 步:添加 Helm 仓库

在你使用 kubectl 的机器上运行:

Copy
helm repo add signoz https://charts.signoz.io
helm repo update

第 2 步(可选):选择存储类

SigNoz 的数据存储在持久化卷上,存储类决定了集群为这些卷创建什么类型的磁盘。如果不做这一步,SigNoz 会使用集群的默认存储类。DigitalOcean Kubernetes 集群自带 do-block-storage 存储类。查看集群有哪些存储类:

Copy
kubectl get storageclass

要指定某个存储类,创建一个名为 values.yaml 的文件:

Copy
global:
  storageClass: <storage-class>

请核对以下值:

  • <storage-class>:从 kubectl get storageclass 输出中选择一个存储类名称,例如 do-block-storage。

其他 chart 配置值也放在同一个文件里。详见 chart 配置参考。

第 3 步:安装 chart

在包含 values.yaml 的目录下运行:

Copy
helm install signoz signoz/signoz \
   --namespace signoz --create-namespace \
   --wait --timeout 1h \
   -f values.yaml

如果跳过了第 2 步,则去掉 -f values.yaml。加上 --wait 后,命令会等到所有 pod 就绪后才返回。

第 4 步:验证安装

检查 pod 是否正常运行:

Copy
kubectl get pods -n signoz

输出应与下面类似(pod 后缀会有所不同):

NAME                                         READY   STATUS      RESTARTS   AGE
chi-signoz-clickhouse-cluster-0-0-0          1/1     Running     0          3m
signoz-0                                     1/1     Running     0          3m
signoz-clickhouse-operator-7f8c9d6b5-q4w2z   2/2     Running     0          3m
signoz-otel-collector-6d9c7b8f5c-k2x9p       1/1     Running     0          3m
signoz-telemetrystore-migrator-x7h3k         0/1     Completed   0          2m
signoz-zookeeper-0                           1/1     Running     0          3m

待所有 Pod 状态变为 Running 后,执行端口转发以访问 SigNoz UI,并在浏览器中打开 http://localhost:8080/:

kubectl port-forward -n signoz svc/signoz 8080:8080

在另一个终端中,检查健康状态端点:

curl -X GET http://localhost:8080/api/v1/health

响应结果如下:

{"status":"ok"}

默认情况下,日志和追踪数据的保留周期为 7 天,指标数据为 30 天。如需调整,请进入 SigNoz UI 的 Settings(设置)页面,并在 General(常规)选项卡中进行配置。

更多详情可参阅 保留周期指南。

向 SigNoz 发送数据

应用程序将追踪、指标和日志数据发送至 SigNoz 采集器。在集群内部,采集器的监听地址为:

http://signoz-otel-collector.signoz.svc.cluster.local:4318

将此地址用作插桩代码中的 OTLP 端点,例如作为环境变量 OTEL_EXPORTER_OTLP_ENDPOINT 的值。若使用 gRPC,请改用端口 4317。

上述地址中的第二个 signoz 代表命名空间。如果将 SigNoz 安装到了其他命名空间,请相应替换该部分。

对于集群外部的应用程序,请参阅 自托管数据摄入指南。

自定义安装配置

每次修改都遵循相同流程:编辑 values.yaml 文件,然后升级 Helm release:

helm upgrade signoz signoz/signoz --namespace signoz -f values.yaml
  • Chart 参数:可在此处查阅Chart 配置参考了解所有可用设置。
  • ```html
  • Chart 版本:在 helm install 和 helm upgrade 命令中添加 --version <chart-version>。可用版本请参见 SigNoz charts releases。

请核对以下参数:

故障排查

helm install 超时

--wait 参数会等待所有 Pod 就绪。如果命令超时,请使用 kubectl get pods -n signoz 列出 Pod,然后按照以下两项建议操作。

Pod 保持 Pending 状态

描述 Pod 以查看未能调度的原因:

Copy
kubectl describe pod -n signoz <pod-name>

将 <pod-name> 替换为 kubectl get pods -n signoz 输出中的 Pod 名称。

如果 Pod 报告 CPU 或内存不足,需要增加节点容量。详情请参阅 资源规划。

修复后,kubectl get pods -n signoz 应显示该 Pod 为 Running 状态。

Pod 持续重启

检查其日志:

Copy
kubectl logs -n signoz <pod-name>

要查看上次重启前的日志,请添加 --previous 参数。

安装 SigNoz

Foundry 是什么?

Foundry 是一个开源 CLI,用于以代码形式管理您的自托管可观测性堆栈。一份声明式配置即可完成基础设施配置、安装 SigNoz 后端,并在裸机、容器或 Kubernetes 上设置 OpenTelemetry 采集。了解 Foundry 的更多信息。

步骤 1:安装 foundryctl

在运行 kubectl 的机器上执行以下命令:

Copy
curl -fsSL https://signoz.io/foundry.sh | bash

如需手动安装(如 Windows PowerShell、气隙网络等)或配置 PATH,请参阅 foundry 入门指南。

步骤 2:创建 casting.yaml

创建一个名为 casting.yaml 的文件。该文件描述安装配置:使用 Helm Chart 安装 SigNoz,指定命名空间为 signoz:

``` Copy
apiVersion: v1alpha1
kind: Installation
metadata:
  name: signoz
spec:
  deployment:
    flavor: helm
    mode: kubernetes
  telemetrykeeper:
    kind: zookeeper

telemetrykeeper 这几行指定使用 ZooKeeper,Helm chart 会用它来协调 ClickHouse。

所有可用选项请参考 casting file 参考文档 和 Kubernetes Helm 示例。

修改命名空间或固定 chart 版本

metadata 下的 annotations 用于指定 SigNoz 的安装位置和所用 chart。默认值如下:

Copy
metadata:
  name: signoz
  annotations:
    foundry.signoz.io/kubernetes-namespace: signoz            # 安装到的命名空间,不存在会自动创建
    foundry.signoz.io/kubernetes-helm-chart: signoz           # chart 名称、归档 URL 或本地路径
    foundry.signoz.io/kubernetes-helm-repo-url: https://charts.signoz.io
    foundry.signoz.io/kubernetes-helm-chart-version: latest   # 也可以固定版本号,如 0.144.0

casting file 参考文档 对各项配置有详细说明。

第 3 步(可选):选择存储类

SigNoz 的数据存储在持久卷上,而存储类决定了集群为这些卷创建哪种磁盘。不做这一步的话,SigNoz 会使用集群的默认存储类。DigitalOcean Kubernetes 集群自带 do-block-storage 存储类。查看集群提供了哪些存储类:

Copy
kubectl get storageclass

如果要指定某个存储类,在 casting.yaml 中加入以下内容:

Copy
spec:
  patches:
    - target: deployment/values.yaml
      operations:
        - op: add
          path: /global
          value:
            storageClass: <storage-class>

确认以下取值:

  • <storage-class>:kubectl get storageclass 输出中的存储类名称,例如 do-block-storage。

第 4 步:部署

在包含 casting.yaml 的目录下运行:

Copy
foundryctl cast -f casting.yaml

此命令会将 SigNoz Helm chart 安装到 signoz 命名空间,如果该命名空间不存在则自动创建。修改 casting.yaml 后,再次运行相同命令即可应用变更。

Run Helm yourself

若要直接运行 Helm,请生成 values 文件并将其传递给 Helm:

Copy
foundryctl forge -f casting.yaml   # 写入 pours/deployment/values.yaml
helm repo add signoz https://charts.signoz.io
helm repo update
helm upgrade --install signoz signoz/signoz \
   --namespace signoz --create-namespace \
   -f pours/deployment/values.yaml

第 5 步:验证安装

检查 Pod 是否正在运行:

Copy
kubectl get pods -n signoz

输出内容应类似于以下示例,Pod 的后缀会有所不同:

Copy
NAME                                                        READY   STATUS      RESTARTS   AGE
chi-signoz-telemetrystore-clickhouse-cluster-0-0-0          1/1     Running     0          3m
signoz-0                                                    1/1     Running     0          3m
signoz-ingester-6d9c7b8f5c-k2x9p                            1/1     Running     0          3m
signoz-metastore-postgres-0                                 1/1     Running     0          3m
signoz-telemetrykeeper-zookeeper-0                          1/1     Running     0          3m
signoz-telemetrystore-clickhouse-operator-7f8c9d6b5-q4w2z   2/2     Running     0          3m
signoz-telemetrystore-migrator-x7h3k                        0/1     Completed   0          2m

当所有 Pod 均处于运行状态后,对 SigNoz UI 执行端口转发,并在浏览器中打开 http://localhost:8080/:

Copy
kubectl port-forward -n signoz svc/signoz 8080:8080

在另一个终端中,检查健康端点:

Copy
curl -X GET http://localhost:8080/api/v1/health

响应结果如下:

Copy
{"status":"ok"}
Info

默认情况下,日志和追踪的保留期为 7 天,指标数据为 30 天。如需修改,请前往 SigNoz UI 的 Settings 页面,在 General 选项卡中进行设置。

更多详细信息,请参阅

原始来源: signoz

评论 (0)