搬瓦工部署 SigNoz 全栈可观测平台教程

SigNoz 是一款开源的全栈可观测性平台,它将追踪(Traces)、指标(Metrics)和日志(Logs)整合在一个统一的界面中。SigNoz 原生基于 OpenTelemetry 构建,使用 ClickHouse 作为存储后端,在性能和成本效益方面表现出色。它可以替代 Datadog、New Relic 等商业 APM 产品,是自托管可观测性的优秀选择。本文将介绍如何在搬瓦工 VPS 上部署 SigNoz。部署前请确保已安装 Docker 和 Docker Compose

一、SigNoz 核心功能

  • APM 监控:服务延迟、错误率、吞吐量的 P50/P90/P99 指标。
  • 分布式追踪:瀑布图和火焰图展示请求链路。
  • 日志管理:集中化日志查询和分析。
  • 自定义仪表板:基于 PromQL 和 ClickHouse SQL 构建仪表板。
  • 告警系统:支持基于指标、追踪和日志的告警规则。
  • 服务地图:自动生成服务间的调用关系拓扑。
  • 异常检测:自动检测指标异常并触发告警。

二、系统要求

  • 操作系统:Ubuntu 20.04+ 或 Debian 11+。
  • 内存:至少 4GB,推荐 8GB(ClickHouse 需要较多内存)。
  • CPU:至少 2 核。
  • 磁盘:至少 20GB 可用空间。
  • Docker:Docker 和 Docker Compose。

建议选择搬瓦工高配方案。购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买入口:bwh81.net

三、使用官方安装脚本

cd /opt
git clone -b main https://github.com/SigNoz/signoz.git
cd signoz/deploy

四、启动服务

cd /opt/signoz/deploy
docker compose -f docker/clickhouse-setup/docker-compose.yaml up -d

等待所有容器启动完毕:

docker compose -f docker/clickhouse-setup/docker-compose.yaml ps

访问 http://your_server_ip:3301 进入 SigNoz Web UI,首次访问需要注册管理员账户。

五、接入应用程序

SigNoz 通过 OpenTelemetry 接收数据。配置应用的 OTLP Exporter 指向 SigNoz 的 Collector:

Python 应用

# pip install opentelemetry-distro opentelemetry-exporter-otlp
# opentelemetry-bootstrap -a install

OTEL_SERVICE_NAME=my-python-app \
OTEL_EXPORTER_OTLP_ENDPOINT=http://signoz-host:4317 \
OTEL_EXPORTER_OTLP_PROTOCOL=grpc \
opentelemetry-instrument python app.py

Node.js 应用

// npm install @opentelemetry/auto-instrumentations-node @opentelemetry/exporter-trace-otlp-grpc

OTEL_SERVICE_NAME=my-node-app \
OTEL_EXPORTER_OTLP_ENDPOINT=http://signoz-host:4317 \
node --require @opentelemetry/auto-instrumentations-node/register app.js

六、配置反向代理

cat > /etc/nginx/sites-available/signoz <<'EOF'
server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://127.0.0.1:3301;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
EOF

ln -s /etc/nginx/sites-available/signoz /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d your_domain.com

七、创建仪表板和告警

SigNoz 内置了多个预配置仪表板,你也可以创建自定义仪表板:

  • 进入 Dashboards 页面,点击 New Dashboard
  • 添加面板,选择数据类型(Metrics、Traces 或 Logs)。
  • 编写查询表达式,选择可视化类型。
  • Alerts 页面创建告警规则,配置通知渠道。

八、数据保留配置

在 SigNoz 设置中可以配置不同类型数据的保留时间:

  • Traces:默认保留 7 天。
  • Metrics:默认保留 30 天。
  • Logs:默认保留 15 天。

根据磁盘空间和使用需求调整保留策略。

九、常见问题

ClickHouse 内存溢出

ClickHouse 对内存要求较高,在低内存环境下可能崩溃。可以限制 ClickHouse 的内存使用:

# 在 docker-compose.yaml 的 clickhouse 服务中添加
deploy:
  resources:
    limits:
      memory: 2G

服务地图为空

确保应用程序正确配置了 OpenTelemetry SDK,并且追踪数据已成功发送到 SigNoz。

总结

SigNoz 是目前最完整的开源可观测性平台,将追踪、指标和日志整合在一起,原生支持 OpenTelemetry。虽然资源需求较高,但它提供了接近商业 APM 产品的功能体验。如果你只需要错误追踪功能,可以参考更轻量的 GlitchTip;如需独立的追踪系统,参考 Jaeger。选购搬瓦工 VPS 使用优惠码 NODESEEK2026 可享 6.77% 折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。