APM-SigNoz可观测性系统搭建
APM-SigNoz可观测性系统搭建
文件夹和配置初始化
mkdir -p /data/signoz
进入gitcode的SigNoz拉去项目, 将deploy文件拷贝到/data/signoz目录下
1. 下载https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2Fv0.0.1/histogram-quantile_linux_amd64.tar.gz
2. 解压
3. 将解压后的文件夹存放在/data/signoz/deploy/docker/clickhouse-setup/user_scripts目录下
SigNoz docker compose
version: "3"
x-common: &commonnetworks:- signoz-netrestart: unless-stoppedlogging:options:max-size: 50mmax-file: "3"
x-clickhouse-defaults: &clickhouse-defaults!!merge <<: *common# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afabimage: clickhouse/clickhouse-server:24.1.2-alpinetty: truelabels:signoz.io/scrape: "true"signoz.io/port: "9363"signoz.io/path: "/metrics"depends_on:init-clickhouse:condition: service_completed_successfullyzookeeper-1:condition: service_healthyhealthcheck:test:- CMD- wget- --spider- -q- 0.0.0.0:8123/pinginterval: 30stimeout: 5sretries: 3ulimits:nproc: 65535nofile:soft: 262144hard: 262144
x-zookeeper-defaults: &zookeeper-defaults!!merge <<: *commonimage: bitnami/zookeeper:3.7.1user: rootlabels:signoz.io/scrape: "true"signoz.io/port: "9141"signoz.io/path: "/metrics"healthcheck:test:- CMD-SHELL- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep nullinterval: 30stimeout: 5sretries: 3
x-db-depend: &db-depend!!merge <<: *commondepends_on:clickhouse:condition: service_healthyschema-migrator-sync:condition: service_completed_successfully
services:init-clickhouse:!!merge <<: *commonimage: clickhouse/clickhouse-server:24.1.2-alpinecontainer_name: signoz-init-clickhousecommand:- bash- -c- |version="v0.0.1"node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)echo "Fetching histogram-binary for $${node_os}/$${node_arch}"cd /tmp# 部署中下载histogram-quantile失败, 我们自己下载, 这里下载太慢了# 通过https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2Fv0.0.1/histogram-quantile_linux_amd64.tar.gz下载, 下载后解压放在/data/signoz/deploy/common/clickhouse/user_scripts# wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"# tar -xvzf histogram-quantile.tar.gz# mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantilerestart: on-failurevolumes:- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/zookeeper-1:!!merge <<: *zookeeper-defaultscontainer_name: signoz-zookeeper-1# ports:# - "2181:2181"# - "2888:2888"# - "3888:3888"volumes:- zookeeper-1:/bitnami/zookeeperenvironment:- ZOO_SERVER_ID=1- ALLOW_ANONYMOUS_LOGIN=yes- ZOO_AUTOPURGE_INTERVAL=1- ZOO_ENABLE_PROMETHEUS_METRICS=yes- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141clickhouse:!!merge <<: *clickhouse-defaultscontainer_name: signoz-clickhouse# ports:# - "9000:9000"# - "8123:8123"# - "9181:9181"volumes:- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/- ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml- clickhouse:/var/lib/clickhouse/# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xmlsignoz:!!merge <<: *db-dependimage: signoz/signoz:${VERSION:-v0.91.0}container_name: signozcommand:- --config=/root/config/prometheus.ymlports:- "8080:8080" # signoz port# - "6060:6060" # pprof portvolumes:- ../common/signoz/prometheus.yml:/root/config/prometheus.yml- ../common/dashboards:/root/config/dashboards- sqlite:/var/lib/signoz/environment:- SIGNOZ_ALERTMANAGER_PROVIDER=signoz- SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000- SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db- DASHBOARDS_PATH=/root/config/dashboards- STORAGE=clickhouse- GODEBUG=netdns=go- TELEMETRY_ENABLED=true- DEPLOYMENT_TYPE=docker-standalone-amd- DOT_METRICS_ENABLED=truehealthcheck:test:- CMD- wget- --spider- -q- localhost:8080/api/v1/healthinterval: 30stimeout: 5sretries: 3otel-collector:!!merge <<: *db-dependimage: signoz/signoz-otel-collector:${OTELCOL_TAG:-v0.128.2}container_name: signoz-otel-collectorcommand:- --config=/etc/otel-collector-config.yaml- --manager-config=/etc/manager-config.yaml- --copy-path=/var/tmp/collector-config.yaml- --feature-gates=-pkg.translator.prometheus.NormalizeNamevolumes:- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yamlenvironment:- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux- LOW_CARDINAL_EXCEPTION_GROUPING=falseports:# - "1777:1777" # pprof extension- "4317:4317" # OTLP gRPC receiver- "4318:4318" # OTLP HTTP receiverdepends_on:signoz:condition: service_healthyschema-migrator-sync:!!merge <<: *commonimage: signoz/signoz-schema-migrator:${OTELCOL_TAG:-v0.128.2}container_name: schema-migrator-synccommand:- sync- --dsn=tcp://clickhouse:9000- --up=depends_on:clickhouse:condition: service_healthyrestart: on-failureschema-migrator-async:!!merge <<: *db-dependimage: signoz/signoz-schema-migrator:${OTELCOL_TAG:-v0.128.2}container_name: schema-migrator-asynccommand:- async- --dsn=tcp://clickhouse:9000- --up=restart: on-failure
networks:signoz-net:name: signoz-net
volumes:clickhouse:name: signoz-clickhousesqlite:name: signoz-sqlitezookeeper-1:name: signoz-zookeeper-1
拷贝博主的docker compose覆盖掉/data/signoz/deploy/docker/docker-compose.yaml
启动
cd /data/signoz/deploy/docker
docker compose up -d
SigNoz 日志, 指标生成器的 docker compose
执行下边的命令, 进入到infra模块
otel-collector-config.yaml会默认收集本机的主机、容器等相关指标到signoz
cd /data/signoz/deploy/docker/generator/infra
直接执行docker命令启动容器, 会启动两个容器
docker compose up -d
访问
访问http://localhost:8080/signup, 并注册账号
进入后, 发现数据源已经添加了
查看日志
查看日志详情
查看日志关联的指标
查看基础设施
参考资料
搭建最新版开源监控平台SigNoz踩的坑-CSDN博客
Java OpenTelemetry Instrumentation | SigNoz
Get Started - APM and Distributed Tracing | SigNoz
GitHub - SigNoz/signoz: SigNoz is an open-source observability platform native to OpenTelemetry with logs, traces and metrics in a single application. An open-source alternative to DataDog, NewRelic, etc. 🔥 🖥. 👉 Open source Application Performance Monitoring (APM) & Observability tool
开源可观测性平台Signoz(二)【日志采集篇】-CSDN博客
新版signoz收集容器日志的真正方法研究,官方文档不能信…-CSDN博客