应启用Kubernetes健康探针、配置主动监控策略、验证日志聚合服务、执行kubectl诊断、检查磁盘与内存基线。具体包括添加livenessProbe/readinessProbe、调低CPU告警阈值、启用错误日志识别、确认log_aggregator运行状态、检查Pod事件与资源使用率、确保磁盘≥2GB且内存充足、节点无Pressure条件。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您部署了Hermes Agent但无法确认其是否持续稳定运行,则可能是由于监控配置缺失或健康检查未启用。以下是验证与保障Hermes Agent健康状态的具体操作路径:
一、启用Kubernetes集群内建健康检查
Kubernetes通过livenessProbe和readinessProbe探针自动检测Pod运行状态,确保Hermes Agent容器在异常时被及时重启或隔离。该机制依赖于Agent暴露的HTTP健康端点。
1、编辑Hermes Agent部署清单文件deployment.yaml,定位到containers部分下的hermes-agent容器定义。
2、在该容器配置下添加livenessProbe字段,设置初始延迟为30秒、探测间隔为15秒、超时时间为5秒,请求路径为/healthz。
3、同步添加readinessProbe,使用相同参数但将initialDelaySeconds设为10秒,以区分启动就绪与持续存活判断。
4、执行更新命令:kubectl apply -f deployment.yaml,使配置生效。
二、配置config/kubernetes-monitor.yaml中的主动监控策略
该配置文件驱动Hermes Agent自身的健康采集逻辑,包括资源阈值告警、日志异常识别及指标上报频率,是实现精细化健康评估的核心依据。
1、进入Hermes Agent项目根目录,打开config/kubernetes-monitor.yaml文件。
2、定位resource_alerts节,将cpu_usage_percent阈值由默认85修改为75,避免高负载积压影响Agent响应能力。
3、在log_analysis节中,将error_pattern_detection设为true,并确认patterns列表包含"Connection refused"与"timeout after"等关键错误标识。
4、保存文件后,执行bash ./setup-hermes.sh --k8s-monitor触发配置热加载。
三、验证tools/log_aggregator.py日志聚合服务状态
日志聚合模块负责统一收集、解析并转发所有组件日志,若其停滞将导致健康事件丢失、错误模式无法识别,构成静默故障风险。
1、在Hermes Agent工作目录中执行:python tools/log_aggregator.py --status,检查输出是否显示"Running with PID XXXX"。
2、若返回"No process found",则手动启动服务:nohup python tools/log_aggregator.py > logs/aggregator.log 2>&1 &。
3、确认logs/aggregator.log末尾10行无ConnectionError或Permission denied类报错。
4、使用tail -f logs/aggregator.log | grep -i "aggregated\|error"实时观察日志吞吐与错误捕获情况。
四、执行kubectl层面的即时健康诊断
通过Kubernetes原生命令直接查询Pod状态、事件日志与资源占用,可绕过UI层延迟,快速定位底层异常。
1、运行kubectl get pods -n hermes-agent,确认所有Pod处于Running状态且READY列为1/1。
2、对任一Pod执行kubectl describe pod <pod-name> -n hermes-agent</pod-name>,重点检查Events节是否存在BackOff、CrashLoopBackOff或FailedScheduling条目。
3、执行kubectl logs <pod-name> -n hermes-agent --since=5m | grep -i "health\|panic\|fatal"</pod-name>,提取最近5分钟内与健康校验直接相关的日志片段。
4、运行kubectl top pod -n hermes-agent,比对CPU与内存使用率是否持续高于90%,该现象可能预示资源争用引发的健康探针失败。
五、检查磁盘空间与内存容量基线合规性
Hermes Agent运行依赖最低硬件基线,磁盘不足将导致日志写入失败、监控数据截断;内存不足则触发OOMKilled,造成Pod反复重建。
1、在宿主机上执行df -h /var/lib/kubelet/pods,确认挂载点可用空间不低于2GB。
2、运行free -h,验证总内存中至少有2GB可用(非缓存+空闲),且Available列数值稳定不趋近于零。
3、检查Kubernetes节点条件:kubectl describe node | grep -A 5 "Conditions:",确认MemoryPressure与DiskPressure均为False。
4、若发现DiskPressure=True,立即清理/var/log/pods下陈旧日志,或调整log_aggregator.py的max_log_age_days参数至3。


















