Добавлен OTLP-провайдер, реализовано отбрасывание метрик и трейсов в observability + добавлен перезапуск nginx при пересборке контейнеров (ошибка, когда докер меняет адреса сервисов)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
|
||||
PRIVATE_IP="${PRIVATE_IP:-192.168.0.5}"
|
||||
MIN_MEMORY_KIB=$((4 * 1024 * 1024))
|
||||
MIN_DISK_KIB=$((30 * 1024 * 1024))
|
||||
errors=0
|
||||
|
||||
ok() { printf 'OK %s\n' "$*"; }
|
||||
warn() { printf 'WARN %s\n' "$*" >&2; }
|
||||
fail() { printf 'FAIL %s\n' "$*" >&2; errors=$((errors + 1)); }
|
||||
|
||||
echo "=== ОС и ресурсы ==="
|
||||
. /etc/os-release
|
||||
[[ "${ID:-}" == ubuntu && "${VERSION_ID:-}" == "24.04" ]] \
|
||||
&& ok "Ubuntu ${VERSION_ID}" || warn "Проверено для Ubuntu 24.04; найдено ${PRETTY_NAME:-unknown}"
|
||||
|
||||
memory_kib="$(awk '/MemTotal/ {print $2}' /proc/meminfo)"
|
||||
((memory_kib >= MIN_MEMORY_KIB)) && ok "RAM не менее 4 GiB" || fail "SigNoz требует не менее 4 GiB RAM"
|
||||
|
||||
disk_kib="$(df -Pk /opt 2>/dev/null | awk 'NR==2 {print $4}')"
|
||||
((disk_kib >= MIN_DISK_KIB)) && ok "/opt: свободно не менее 30 GiB" \
|
||||
|| fail "Для начальной установки рекомендуется не менее 30 GiB свободно в /opt"
|
||||
|
||||
echo
|
||||
echo "=== Сеть ==="
|
||||
ip -br -4 address
|
||||
ip -4 route
|
||||
ip -4 addr show | grep -Fq "inet ${PRIVATE_IP}/" \
|
||||
&& ok "Приватный адрес ${PRIVATE_IP} назначен" \
|
||||
|| fail "Адрес ${PRIVATE_IP} не найден ни на одном интерфейсе"
|
||||
|
||||
if getent hosts archive.ubuntu.com registry-1.docker.io ghcr.io >/dev/null; then
|
||||
ok "DNS работает"
|
||||
else
|
||||
fail "DNS не разрешает адреса репозиториев"
|
||||
fi
|
||||
|
||||
for url in \
|
||||
https://archive.ubuntu.com \
|
||||
https://download.docker.com \
|
||||
https://registry-1.docker.io \
|
||||
https://github.com \
|
||||
https://signoz.io; do
|
||||
if curl -4fsSI --connect-timeout 8 --max-time 15 "$url" >/dev/null; then
|
||||
ok "доступен $url"
|
||||
else
|
||||
fail "нет доступа к $url"
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
echo "=== Занятость портов ==="
|
||||
for port in 8080 4317 4318; do
|
||||
if ss -H -lnt "( sport = :$port )" | grep -q .; then
|
||||
fail "TCP-порт $port уже занят: $(ss -H -lntp "( sport = :$port )")"
|
||||
else
|
||||
ok "TCP-порт $port свободен"
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
timedatectl show --property=NTPSynchronized --property=Timezone --no-pager
|
||||
if ((errors)); then
|
||||
printf '\nОбнаружено ошибок: %d\n' "$errors" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "Проверка завершена успешно."
|
||||
Reference in New Issue
Block a user