访问链路检查
当客户端无法访问 FinClaw 时,按从外到内的顺序逐层排查访问链路。
1. 入口网关
bash
curl -v http://<host>:26100/health确认 API Gateway(26100)可达、TLS(如启用)正常、JWT 校验未拦截合法请求。
2. 入站对话链路
入站请求路径为:api-gateway -> ag-ui-server -> orchestrator -> ai-infra-rs -> delivery。逐跳确认:
bash
curl http://localhost:26103/health # ag-ui-server
curl http://localhost:26102/health # orchestrator
curl http://localhost:26450/health # ai-infra-rs3. 基础设施连通
确认 PostgreSQL(26110)、TimescaleDB(26111)、NATS(26112)、Redis(26114)等可达。完整端口见 部署组件。
4. 防火墙与端口
单机
bash
firewall-cmd --list-ports # RHEL/CentOS
ufw status # Ubuntu放行 26100 对外,261xx-265xx 内部。
K8s
bash
kubectl -n <ns> get svc # 看 NodePort / LoadBalancer
kubectl -n <ns> get networkpolicy # NetworkPolicy 排查CLAW_FLEET_MANAGER_BASE_PORT 动态端口段 26463-26549 在 K8s NodePort 模式下需预留。
5. SELinux
现象
容器无法写入卷、bwrap 拒绝执行、FinSAFE/hermes-adapter 启动失败。
排查
bash
getenforce # 当前模式
ausearch -m avc -ts recent # 最近 AVC 拒绝处理
bash
setenforce 0 # 临时切 Permissive(重启失效)或定制 SELinux 策略。FinSAFE/hermes-adapter 需要 --privileged 与 SELinux 互斥,推荐生产用 permissive 模式 + 审计日志。
6. 容器网络
单机
bash
docker network inspect chatkit-network
docker exec <a> ping <b>
docker exec <a> nslookup identity-serviceK8s
bash
kubectl -n <ns> exec -it <pod> -- nslookup identity-service
kubectl -n kube-system get pods -l k8s-app=kube-dns # CoreDNS跨命名空间:<svc>.<ns>.svc.cluster.local。
7. TLS 与证书
bash
openssl s_client -connect <host>:26100常见问题
- 自签证书:浏览器警告、SDK 报
x509: certificate signed by unknown authority - 证书链不完整:补全 intermediate CA
- 内网代理 MITM 证书:容器需注入 CA(
NODE_EXTRA_CA_CERTS、REQUESTS_CA_BUNDLE、RustSSL_CERT_FILE)
8. DNS 解析
单机
docker-compose.yml 的 dns: 段指向宿主机或内部 DNS。
K8s
CoreDNS ConfigMap 自定义 stub domain:
bash
kubectl -n kube-system edit configmap coredns内网场景
内部 DNS 添加 registry.finogeeks.internal 解析。
