From 20d543711962bde6a7fff825d158c21710ea69b8 Mon Sep 17 00:00:00 2001 From: admin <605696661@qq.com> Date: Thu, 2 Jul 2026 16:49:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 接口调用 | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 接口调用 diff --git a/接口调用 b/接口调用 new file mode 100644 index 0000000..a540404 --- /dev/null +++ b/接口调用 @@ -0,0 +1,167 @@ +# 项目全部接口汇总(完整可用,含调用地址、作用、参数) +## 公共说明 +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` \ No newline at end of file