告警未及时推送可能是因告警路由配置缺失、通知模块未启用或目标服务连接异常;可行路径包括:一、Prometheus Alertmanager集成邮件推送;二、启用原生应用内通知;三、对接企业微信;四、配置Telegram Bot推送;五、基于Cron定时任务触发离线告警回拨。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您已部署Hermes Agent用于Linux服务器监控,但告警事件未能及时推送至指定渠道,则可能是由于告警路由配置缺失、通知模块未启用或目标服务连接异常。以下是实现报警推送的多种可行路径:
一、通过Prometheus Alertmanager集成邮件推送
Alertmanager作为标准化告警中枢,可接收Hermes Agent暴露的指标并执行多级路由与去重,最终调用邮件发送技能完成推送。该方式适用于需保留完整告警上下文与历史归档的运维场景。
1、确认Hermes Agent已启用指标端点:启动时包含--enable-metrics --metrics-port 9090参数,并可通过curl http://localhost:9090/metrics验证返回内容中存在vllm_request_failure_total等指标。
2、在Prometheus配置文件prometheus.yml中添加抓取目标:static_configs: [{targets: ["localhost:9090"]}],确保指标被正常采集。
3、创建alert-rules.yml,定义基于vllm_gpu_cache_usage_perc > 90的告警规则,并在prometheus.yml的rule_files字段中引用该路径。
4、配置Alertmanager的email_configs,指向Hermes Agent内置的skills/email/himalaya/模块,使用其SMTP配置完成投递。
二、启用Hermes Agent原生应用内通知
该机制不依赖外部组件,直接在Agent运行时触发前端弹窗或控制台日志输出,适合本地调试或单机轻量部署环境,响应延迟最低且无需网络外联。
1、检查hermes_cli/config.yaml中notifications.enabled字段是否设为true。
2、确认ui_mode未被禁用,且Agent以交互模式(非--headless)启动。
3、在告警规则触发逻辑中,调用tool_progress_callback函数并传入tool_name="alert"与args_preview携带指标快照。
4、重启Agent进程,访问其本地WebUI(若启用)或观察终端输出,验证ALERT: GPU cache usage exceeds 90%类消息是否实时出现。
三、对接企业微信实现团队协同告警
利用Hermes Agent的跨平台通知能力,将告警信息格式化为JSON载荷,经由企业微信机器人Webhook接口推送到指定群组,支持@成员、加粗关键词与消息卡片扩展。
1、在企业微信管理后台创建群机器人,获取Webhook URL,并将其写入skills/notification/wecom/config.yaml的webhook_url字段。
2、确保skills/notification/wecom/目录下存在可用的Python执行模块,且具备HTTP POST能力。
3、编辑告警规则的annotations部分,加入summary: "GPU内存超限"与description: "当前值: {{ $value }}%"模板变量。
4、在Alertmanager的receivers中新增wecom类型receiver,并绑定至对应route;验证时触发测试告警,检查企微群内是否收到含<strong>GPU内存超限</strong>字样的消息。
四、配置Telegram Bot推送关键告警
Telegram通道适用于需要高送达率与移动端即时响应的场景,尤其适合轮值工程师接收P1级故障通知,支持图文混排与消息撤回功能。
1、通过BotFather创建新Bot,记录返回的API Token,并填入skills/notification/telegram/config.yaml的bot_token字段。
2、获取目标频道或群组的chat_id,方法为向Bot发送任意消息后访问https://api.telegram.org/bot<token>/getUpdates</token>解析响应。
3、在Hermes Agent的skills/notification/telegram/模块中启用send_alert_on_critical开关,并设置priority_threshold: critical。
4、构造测试告警:手动触发一条severity: critical规则,检查Telegram客户端是否在5秒内收到含<strong>critical</strong>标签的推送消息。
五、基于Cron定时任务触发离线告警回拨
当网络中断导致常规推送失败时,该方案利用本地定时器检测告警状态文件变更,一旦发现未处理的.alert.pending标记,立即执行语音电话或短信回拨,构成最后一道保障。
1、在/var/hermes/alerts/目录下启用状态文件写入,由告警引擎在触发时生成带时间戳的.alert.pending空文件。
2、编写Shell脚本/opt/hermes/scripts/notify-fallback.sh,读取最新pending文件,调用Twilio或阿里云短信SDK发送告警摘要。
3、通过crontab -e添加条目:*/3 * * * * /opt/hermes/scripts/notify-fallback.sh >/dev/null 2>&1,实现每3分钟轮询。
4、手动创建测试pending文件,等待下一周期执行,验证短信内容是否包含<strong>ALERT PENDING: vllm_gpu_cache_usage_perc=92.7</strong>等原始指标值。


















