与zabbix6.0 zabbix7.0 兼容问题

【 使用环境 】生产环境
【 OB or 其他组件 】 V4.3.5_CE_BP2_HF1
【 使用版本 】
【问题描述】zabbix中部分操作无法执行
【复现路径】
禁用主机时报错

无法禁用主机
Error in query [UPDATE hosts SET status='1' WHERE hostid='10998'] [Cannot delete or update a parent row: a foreign key constraint fails] [zabbix.php:17 → require_once() → ZBase->run() → ZBase->processRequest() → CController->run() → CControllerHostDisable->doAction() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CHost->update() → CHost->updateForce() → CHost->massUpdate() → DB::update() → DBexecute() → trigger_error() in include/db.inc.php:362]
SQL描述式执行已失败: "UPDATE hosts SET status='1' WHERE hostid='10998'".

image

添加模板时报错

Error in query [UPDATE hosts SET status='0' WHERE hostid='10998'] [Cannot delete or update a parent row: a foreign key constraint fails] [zabbix.php:17 → require_once() → ZBase->run() → ZBase->processRequest() → CController->run() → CControllerHostUpdate->doAction() → CApiWrapper->__call() → CFrontendApiWrapper->callMethod() → CApiWrapper->callMethod() → CFrontendApiWrapper->callClientMethod() → CLocalApiClient->callMethod() → CHost->update() → CHost->updateForce() → CHost->massUpdate() → DB::update() → DBexecute() → trigger_error() in include/db.inc.php:362]
SQL描述式执行已失败: "UPDATE hosts SET status='0' WHERE hostid='10998'".


【附件及日志】

1 个赞

外键的问题,蹲一个答案

1 个赞

6.x 和 7.x 都有这个报错吗?

从这个报错看,外键问题不像是兼容性问题吧,我也蹲一个答案 :face_with_peeking_eye:

以前还有个什么认证的,zabbix和ob之间,现在看来也是闹着玩的

好的 我们找一下同学看看 是不是适配问题

Zabbix7 keepalived VIP高可用部署 对接 OceanBase高可用集群 - 九零日志
我刚刚全新安装的zabbix7,确实这两个地方还是报错

都有的

是的,有zabbix6 oceanbase4互相兼容认证,不过我刚才用zabbix7全新安装了一遍,确实还是报错,之前6也是这个报错,这两个功能不影响使用,但用到的时候很不方便

初步分析,这里报错是因为外键环状引用了,可能是zabbix的trigger导致更新了某些外键,在执行时触发了环状引用的检查。

请稍等,我们会尽快给出准确答案

跟内核同学确认了,是因为在做另一项 mysql 兼容改造的时候影响到这个地方。受影响的版本有: 425 bp3、425 bp4、435 BP1、435 BP2、4.4.0 。可以考虑换一个版本或者等待后续新的 BP 版本升级。

1 个赞

哦哦那我等等吧

如果能完全适配zabbix 会是OB非常大的一个卖点

感谢支持。是适配过的,只是前述几个版本的改动影响到了兼容性。其他版本或者后续修复版本都是可以的。

有明确哪个版本修复么?

不好解