# 项目全部接口汇总(完整可用,含调用地址、作用、参数) ## 公共说明 1. 基础域名:`http://10.150.117.190:8080/api/index.php` 2. instance 带端口时 `:` 必须编码为 `%3A`,例 `10.150.10.82%3A389` 3. 所有接口均需要登录会话,未登录返回 `code:401` 4. 数字 `insert_data_num` / `affected_rows` 代表数据库操作行数,0=无匹配数据 ## 1. clear_single_instance 清除单个实例告警(生成恢复记录,隐藏告警) ### 作用 删除该机器旧恢复日志,强制插入最新恢复记录,前端不再展示这条告警;机器下次故障上报会重新告警。 ### 完整代码 ```php if($act === "clear_single_instance"){ $rule = $_GET['rule_name'] ?? ''; $inst = $_GET['instance'] ?? ''; if(empty($rule) || empty($inst)){ echo json_encode(["code"=>400,"msg"=>"缺少rule_name或instance参数"],JSON_UNESCAPED_UNICODE); exit; } $ruleEsc = mysqli_real_escape_string($conn, $rule); $instEsc = mysqli_real_escape_string($conn, $inst); // 先删除旧恢复记录,避免重复调用失效 $delOldRecSql = "DELETE FROM alert_log WHERE alert_type=2 AND alert_name='$ruleEsc' AND instance='$instEsc'"; mysqli_query($conn, $delOldRecSql); // 强制插入恢复记录 $insertSql = " INSERT INTO alert_log (alert_type,alert_name,instance,severity,starts_at,receive_time) SELECT DISTINCT 2,alert_name,instance,severity,NOW(),NOW() FROM alert_log WHERE alert_name='$ruleEsc' AND instance='$instEsc' "; mysqli_query($conn, $insertSql); $insertCount = mysqli_affected_rows($conn); echo json_encode([ "code"=>0, "msg"=>"单实例告警清理完成", "insert_data_num" => $insertCount ],JSON_UNESCAPED_UNICODE); exit; } ``` ### 调用示例 ``` http://10.150.117.190:8080/api/index.php?act=clear_single_instance&rule_name=Port_Down&instance=10.150.10.82%3A389 ``` ### 返回示例 ```json {"code":0,"msg":"单实例告警清理完成","insert_data_num":1} ``` ## 2. clear_offline_rule 下线整条告警规则(所有实例批量清除) ### 作用 整条规则标记下线,批量生成所有机器恢复记录,页面隐藏该规则全部告警。 ### 调用示例 ``` http://10.150.117.190:8080/api/index.php?act=clear_offline_rule&rule_name=Host_Ping_Offline ``` ## 3. restore_rule 恢复整条下线规则 ### 作用 修改 monitor_rule 表 status=1,重新放行该规则所有机器告警。 ### 调用示例 ``` http://10.150.117.190:8080/api/index.php?act=restore_rule&rule_name=Host_Ping_Offline ``` ## 4. restore_single_instance 恢复单台下线实例 ### 作用 仅修改单台机器 monitor_rule status=1,单独放开该实例告警。 ### 调用示例 ``` http://10.150.117.190:8080/api/index.php?act=restore_single_instance&rule_name=Host_Ping_Offline&instance=10.150.10.118 ``` ## 5. delete_single_instance_log 删除单实例全部告警日志(彻底清空) ### 作用 直接删除该机器所有告警记录,无残留,推荐彻底清理垃圾告警使用。 ### 代码 ```php if($act === "delete_single_instance_log"){ $rule = $_GET['rule_name'] ?? ''; $inst = $_GET['instance'] ?? ''; if(empty($rule) || empty($inst)){ echo json_encode(["code"=>400,"msg"=>"缺少rule_name或instance参数"],JSON_UNESCAPED_UNICODE); exit; } $ruleEsc = mysqli_real_escape_string($conn, $rule); $instEsc = mysqli_real_escape_string($conn, $inst); $delSql = "DELETE FROM alert_log WHERE alert_name='$ruleEsc' AND instance='$instEsc'"; mysqli_query($conn, $delSql); $aff = mysqli_affected_rows($conn); echo json_encode(["code"=>0,"msg"=>"单实例告警日志已删除","affected_rows"=>$aff],JSON_UNESCAPED_UNICODE); exit; } ``` ### 调用示例 ``` http://10.150.117.190:8080/api/index.php?act=delete_single_instance_log&rule_name=Port_Down&instance=10.150.10.82%3A389 ``` ## 6. clear_rule_all_log 一键清空整条规则所有告警日志 ### 作用 删除该规则下全部机器告警记录,废弃规则时批量清理。 ### 代码 ```php if($act === "clear_rule_all_log"){ $rule = $_GET['rule_name'] ?? ''; if(empty($rule)){ echo json_encode(["code"=>400,"msg"=>"缺少rule_name参数"],JSON_UNESCAPED_UNICODE); exit; } $ruleEsc = mysqli_real_escape_string($conn, $rule); $delSql = "DELETE FROM alert_log WHERE alert_name='$ruleEsc'"; mysqli_query($conn, $delSql); $aff = mysqli_affected_rows($conn); echo json_encode(["code"=>0,"msg"=>"规则全部告警日志已清空","delete_rows"=>$aff],JSON_UNESCAPED_UNICODE); exit; } ``` ### 调用示例 ``` http://10.150.117.190:8080/api/index.php?act=clear_rule_all_log&rule_name=Host_Ping_Offline ``` ## 7. day_total 首页统计卡片数据 ### 作用 获取今日触发告警数、恢复数、故障机器总数。 ### 调用 ``` http://10.150.117.190:8080/api/index.php?act=day_total ``` ## 8. top_alert 今日告警TOP10图表数据 ### 调用 ``` http://10.150.117.190:8080/api/index.php?act=top_alert ``` ## 9. log_list 今日全量告警明细表格 ### 调用 ``` http://10.150.117.190:8080/api/index.php?act=log_list ``` ## 10. active_firing 当前未恢复活跃告警列表(页面核心告警表格) ### 调用 ``` http://10.150.117.190:8080/api/index.php?act=active_firing ``` ## 11. export_csv 导出今日告警CSV报表(下载文件) ### 调用 ``` http://10.150.117.190:8080/api/index.php?act=export_csv ``` # 接口用途快速区分 1. 临时隐藏单条告警(保留日志):`clear_single_instance` 2. 彻底删除单机器所有告警:`delete_single_instance_log` 3. 整条规则下线屏蔽:`clear_offline_rule` 4. 恢复下线规则/机器告警:`restore_rule` / `restore_single_instance` 5. 废弃规则批量清库:`clear_rule_all_log` 6. 页面展示数据:`day_total` / `top_alert` / `log_list` / `active_firing` 7. 导出报表:`export_csv`