Files
han-app/codebase/Signoz

SigNoz для HAN Chat

Одноузловой self-hosted SigNoz на Ubuntu 24.04 через официальный foundryctl и Docker Compose.

Сетевая модель:

  • VM SigNoz: 192.168.0.5;
  • OTLP/gRPC: 192.168.0.5:4317, только приватная сеть;
  • OTLP/HTTP: 192.168.0.5:4318, только приватная сеть;
  • UI/API: 127.0.0.1:8080, доступ только через SSH-туннель;
  • ClickHouse, PostgreSQL и ClickHouse Keeper наружу не публикуются.

Требования

  • минимум 4 GiB RAM (для эксплуатации лучше 8 GiB);
  • минимум 30 GiB свободного диска для старта;
  • временный исходящий доступ в интернет на время установки и обновлений;
  • рабочий приватный интерфейс с адресом 192.168.0.5;
  • доступ к ВМ по SSH через приватную сеть до отключения внешнего IP.

Установка

Скопируйте эту папку на ВМ, например в /opt/signoz:

rsync -rltD --no-perms --no-owner --no-group -ivc --delete \
  --exclude='.env' \
  --exclude='dist/' \
  --exclude='secrets/' \
  --exclude='pours/' \
  --exclude='casting.yaml.lock' \
  -e "ssh -i ~/.ssh/hansel-private" \
  /mnt/c/Users/MI/Documents/Assistent/HAN_chat_specification/codebase/Signoz/ \
  root@135.106.166.7:/opt/signoz/

Исключения pours/ и casting.yaml.lock обязательны при повторной синхронизации: Foundry создаёт их непосредственно на VM. Без исключений rsync --delete удалит runtime-конфигурацию, которой нет локально.

На ВМ:

cd /opt/signoz
sed -i 's/\r$//' scripts/*.sh
chmod +x scripts/*.sh

sudo ./scripts/05-configure-private-network.sh
sudo PRIVATE_IP=192.168.0.5 ./scripts/00-check-vm.sh
sudo ./scripts/10-install-docker.sh
sudo PRIVATE_IP=192.168.0.5 ./scripts/20-deploy-signoz.sh

После запуска создайте первого администратора и организацию SigNoz. До этого OpAMP не выдаст ingester рабочую OTLP-конфигурацию, хотя контейнер будет выглядеть запущенным.

Адреса 127.0.0.1 всегда означают loopback той машины, на которой интерпретируются. HAN_CHAT имеет приватный адрес 192.168.0.1, а SigNoz — 192.168.0.5. UI слушает 127.0.0.1:8080 именно на VM SigNoz.

Для постоянного доступа после удаления публичного IP SigNoz добавьте в C:\Users\MI\.ssh\config:

Host han-jump
    HostName 135.106.164.58
    User root
    IdentityFile C:\Users\MI\.ssh\hansel

Host signoz-private
    HostName 192.168.0.5
    User root
    IdentityFile C:\Users\MI\.ssh\hansel-private
    ProxyJump han-jump

Затем ssh signoz-ui -N

(устаревшее: На рабочем компьютере откройте туннель до SigNoz через HAN_CHAT:

ssh -L 8080:127.0.0.1:8080 signoz-private -N

) Маршрут SSH: Windows → публичный адрес HAN_CHAT → 192.168.0.5:22. Назначение 127.0.0.1:8080 в -L открывает конечная VM SigNoz, а не HAN_CHAT.

Откройте http://127.0.0.1:8080, создайте администратора/организацию, затем на VM выполните:

cd /opt/signoz
sudo docker compose -f pours/deployment/compose.yaml restart ingester
sudo ./scripts/30-verify-signoz.sh

После успешной проверки настройте host firewall. Подставьте реальный приватный IP backend:

sudo OTLP_SOURCE=192.168.0.1 \
  ADMIN_CIDR=192.168.0.0/24 \
  PRIVATE_IP=192.168.0.5 \
  ./scripts/40-configure-firewall.sh

Затем выполните чек-лист из docs/NETWORK.md, подключите backend по docs/BACKEND_OTLP.md и только после успешной end-to-end проверки удалите внешний IP.

Проверка и управление

cd /opt/signoz
sudo ./scripts/30-verify-signoz.sh
sudo docker compose -f pours/deployment/compose.yaml ps
sudo docker compose -f pours/deployment/compose.yaml logs --tail=200
sudo docker compose -f pours/deployment/compose.yaml restart

Не редактируйте pours/ вручную: Foundry перегенерирует эту папку. Постоянные изменения вносятся в casting.yaml, после чего снова запускается 20-deploy-signoz.sh.

Обновление требует временного доступа к Docker Hub, GitHub и SigNoz:

cd /opt/signoz
sudo ./scripts/20-deploy-signoz.sh

Перед обновлением сделайте snapshot диска ВМ. Данные находятся в Docker volumes ClickHouse и PostgreSQL; docker compose down -v удалит их и поэтому для штатного обслуживания запрещён.

Документация