zabbix配置连接ob数据库的问题

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】社区版4.2.3
【问题描述】我在使用zabbix7容器连接ob时碰到一个问题,据我观察是连接ob需要用到‘用户名@租户名’,如果把它填进zabbix配置的mysql_user,zabbix就会把整个字符串当做用户名来连接。请问有大佬知道咋解决吗?

完整的应该是 用户名@租户名#集群名 。没看出来你说的问题是什么。可以参考这个: Zabbix 6 基于 OB 4.2 MySQL 部署实践 (qq.com)


 vim /etc/zabbix/zabbix_server.conf

DBHost=10.0.0.63
DBName=zabbix6
DBUser=zabbix@obmysql#obv4
DBPassword=zab@BIX#123
DBPort=2883
AllowUnsupportedDBVersions=1

就是说如果我已经创建了集群cluster01,租户tenant01,和用户user01,然后把’user01@tenant01’写进zabbix的配置,整个字符串’user01@tenant01’就成了用户名,造成无法登陆的情况。

zabbix我用的是这个容器部署版本:
docker pull zabbix/zabbix-server-mysql:7.0-centos-latest

ob 的用户名 有3种格式,可以用 用户名.租户名.集群名 试试。

  1. 发一下你的配置文件看看。
  2. 用 mysql 连接一下你的租户,发截图。

集群和租户信息

创建了一个zabbix用户
屏幕截图 2024-07-15 093112

容器启动命令

sudo docker run --name zabbix-server-mysql \
            -e DB_SERVER_HOST='172.17.0.1' \
            -e DB_SERVER_PORT='2881' \
            -e MYSQL_DATABASE='db_zabbix_test' \
            -e MYSQL_ROOT_USER='root@tenant_zabbix_test' \
            -e MYSQL_ROOT_PASSWORD='tenant_zabbix_test_root' \
            -e MYSQL_USER='zabbix@tenant_zabbix_test' \
            -e MYSQL_PASSWORD='zabbix' \
            --network=zabbix-net \
            -p 10051:10051 \
            --restart unless-stopped \
            --privileged=true \
            -d zabbix:zabbix-server-mysql

执行容器启动命令后发现多了一个用户
屏幕截图 2024-07-15 093509

容器的log

看看你安装的 详细信息。

obd cluster display cluster_zabbix_test

第二幅图 obclient 登录命令也截图出来。换 mysql 命令,在 容器内部登录也试试。
如果容器内无法连接 OB ,自然也没法使用。

集群信息

root登录

用户zabbix登录

容器起不起来直接退出了

服务器本机连 OB 是 OK ,只是没有看到 容器里连 OB 。

容器启动直接失败了,那就不要用这个容器了。直接去官网下载 Zabbix ,按官网文档配置或者参考我前面发的 文章 里方法配置 Zabbix 连接 OB。

主要是离线环境装,直接安装的各种依赖包很头疼,所以才用容器

另外 OB 安装的使用真实的 IP ,不使用 127.0.0.1 这个 IP ,然后 Zabbix 容器启动参数里写真实的 IP ,也许可以启动。