33 lines
1.2 KiB
Bash
33 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# 运行状态检测: 各组件健康 + 集群节点 + trunk 配置
|
|
set -uo pipefail
|
|
SECRET="f4f6c1a9e2b74d5893a0c8e17d2b6a45b7c93f1d6e284a05c9b3d7f2e6a81c04"
|
|
ok=0; fail=0
|
|
|
|
chk() { # name, command...
|
|
local name="$1"; shift
|
|
if out=$("$@" 2>&1); then echo "PASS $name"; ok=$((ok+1))
|
|
else echo "FAIL $name: $(echo "$out" | head -1)"; fail=$((fail+1)); fi
|
|
}
|
|
|
|
echo "== 容器状态"
|
|
docker ps --filter "name=lk-" --format "{{.Names}}\t{{.Status}}"
|
|
|
|
echo "== HTTP 健康"
|
|
code() { curl -s -o /dev/null -w "%{http_code}" --max-time 3 "$1"; }
|
|
for p in "livekit http://127.0.0.1:7880/" "sip1 http://127.0.0.1:8081/healthz" "sip2 http://127.0.0.1:8082/healthz"; do
|
|
set -- $p
|
|
c=$(code "$2")
|
|
[ "$c" = "200" ] || [ "$c" = "204" ] && { echo "PASS $1 ($c)"; ok=$((ok+1)); } || { echo "FAIL $1 ($c)"; fail=$((fail+1)); }
|
|
done
|
|
|
|
echo "== LiveKit API 功能检查"
|
|
LK=(docker run --rm --network host -e LIVEKIT_URL=http://127.0.0.1:7880
|
|
-e LIVEKIT_API_KEY=devkey -e LIVEKIT_API_SECRET=$SECRET livekit/livekit-cli:latest)
|
|
chk "lk room list" "${LK[@]}" room list
|
|
chk "lk sip outbound list" "${LK[@]}" sip outbound list
|
|
|
|
echo
|
|
echo "result: ok=$ok fail=$fail"
|
|
[ $fail -eq 0 ]
|