Files
han-app/codebase/Signoz/README.md
T

146 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`:
```bash
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-конфигурацию, которой нет локально.
На ВМ:
```bash
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`:
```sshconfig
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:
```powershell
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 выполните:
```bash
cd /opt/signoz
sudo docker compose -f pours/deployment/compose.yaml restart ingester
sudo ./scripts/30-verify-signoz.sh
```
После успешной проверки настройте host firewall. Подставьте реальный приватный
IP backend:
```bash
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](docs/NETWORK.md), подключите
backend по [docs/BACKEND_OTLP.md](docs/BACKEND_OTLP.md) и только после
успешной end-to-end проверки удалите внешний IP.
## Проверка и управление
```bash
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:
```bash
cd /opt/signoz
sudo ./scripts/20-deploy-signoz.sh
```
Перед обновлением сделайте snapshot диска ВМ. Данные находятся в Docker
volumes ClickHouse и PostgreSQL; `docker compose down -v` удалит их и поэтому
для штатного обслуживания запрещён.
## Документация
- [NETWORK.md](docs/NETWORK.md) — сеть, группа безопасности, SSH-туннель;
- [BACKEND_OTLP.md](docs/BACKEND_OTLP.md) — передача телеметрии HAN Chat;
- [SIGNOZ_RUNBOOK.md](docs/SIGNOZ_RUNBOOK.md) — что смотреть в SigNoz;
- [MVP_DASHBOARDS_ALERTS.md](docs/MVP_DASHBOARDS_ALERTS.md) — versioned
спецификация первых dashboards и alerts.