运维巡检
1. 概述
本手册通过 ansible 进行 finclaw 系统巡检并生成 HTML 报告,覆盖:
- 基础服务(PostgreSQL / TimescaleDB / Restate / Redis / TEI / NATS / MinIO)
- K8s 集群(RKE2 节点、Pod、Deployment、PVC)
- finclaw 应用层(21 个微服务健康)
- 资源水位(CPU / 内存 / 磁盘 / 网络)
适用于通过 ansible 部署的集群。
2. 准备
巡检 playbook 与部署 playbook 同源,已随部署包一同提供,不需要单独下载 check-master.tar.gz。
在中控机执行:
bash
cd /data/finclip-installation/finclip-deploy-ansible-master
# 复用部署时的 inventory(或新建)
# inventory 已存在则跳过
ls inventory3. 操作步骤
bash
cd /data/finclip-installation/finclip-deploy-ansible-master
# 执行巡检(会读取 .secret.yaml 获取各服务密码)
ansible-playbook check.yaml执行完毕,无报错信息即巡检通过。
4. 巡检覆盖项
对应 roles/check/files/ 下 6 个脚本:
| 脚本 | 覆盖范围 |
|---|---|
check_linux.sh | 主机层:CPU / 内存 / 磁盘 / 网络 / 进程 |
check_docker.sh | 单机模式:容器状态、Docker daemon |
check_k8s.sh | K8s 集群:节点、Pod、Deployment、StatefulSet、PVC |
check_mysql.sh | MySQL(仅旧版残留,finclaw 不依赖 MySQL,inventory 无 mysql 组时自动跳过) |
check_redis.sh | Redis Cluster:节点状态、主从复制 |
check_minio.sh | MinIO:节点状态、桶 |
5. 报告生成
对应 roles/check/templates/ 下 5 个 HTML 模板:
| 模板 | 内容 |
|---|---|
report-system.html | 系统资源(CPU / 内存 / 磁盘 / 网络) |
report-docker.html | 容器状态 |
report-k8s.html | K8s 集群状态 |
report-data.html | 数据服务(PG / Redis / MinIO) |
report-cssinline.html | 内联 CSS 的合并报告 |
6. 查看报告
报告文件生成在中控机 /tmp/report-YYYY-MM-DD.html。
下载文件到本地电脑用浏览器打开。
关注项
- 服务器资源使用 正常指标:
ok Total = Total - K8s 集群及服务情况 正常指标:集群正常,服务状态正常,对比上次巡检无重启 Pod
- 数据服务
- PostgreSQL 主从同步正常
- Restate 集群所有节点
Member - Redis Cluster 3 主 3 从
- finclaw 应用层
- 21 个 Deployment
Available - 无
CrashLoopBackOff
- 21 个 Deployment
7. finclaw 专属巡检补充
ansible roles/check/ 未覆盖 finclaw 应用层细节,手工补查:
contract 版本
bash
curl -s http://<host>:26450/health | jq .contract_version非 unknown 即可。
license 状态
bash
curl -s http://<host>:26101/health | jq .deployment_licensestatus 为 active 即可;expired 表示已过期,到期时间见 expires_at。K8s 下先执行 kubectl -n <ns> port-forward svc/identity-service 26101:26101 再访问本地端口。
LLM 连通
bash
curl -s -H "Authorization: Bearer $LLM_API_KEY" $LLM_BASE_URL/v1/models | jq .返回模型列表即通。
渠道连通
各发一条测试消息到飞书 / 企业微信 / 钉钉机器人。
内网代理(如适用)
bash
# 代理日志无 4xx / 5xx 突增(<proxy-container> 替换为实际代理容器名)
docker logs <proxy-container> 2>&1 | tail -100 | grep -E "40[0-9]|50[0-9]"8. 巡检频率建议
| 频率 | 内容 |
|---|---|
| 日常(每天) | ansible 巡检 + Grafana 看板 |
| 周巡 | 补查 finclaw 专属项 + Loki 错误日志趋势 |
| 月巡 | 备份恢复演练 + license 到期前提醒 |
