我正在努力监控zabbix中的mysql数据库(通过SQL语句)。
我试着通过官方指南https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/odbc_checks#:~:text=ODBC%20monitoring%20corresponds%20to%20the,later%20ported%20to%20other%20platforms来监控mysql数据库的更新。
这篇文章是https://blog.zabbix.com/database-odbc-monitoring-with-zabbix/8076/
但是,我有一个错误“无法连接到ODBC DSN: SQL_ERROR08001[unixODBCODBC 8.0(w) DriverDriver不支持4.1.1以下的服务器版本]”
我可以成功地进入官方指南中的步骤isql test,但我不理解该步骤:
To enable ODBC support, Zabbix should be compiled with the following flag:
--with-unixodbc[=ARG] use odbc driver against unixODBC package在web界面上,总是会出现这样的错误:“驱动程序不支持4.1.1以下的服务器版本”。
这里也出现了类似的错误:
没有提供明确的解决方案!
我在等待我的英雄在这个zabbix问题上救我!

发布于 2021-06-24 17:31:18
我找到了一个非常有用的帖子,可以解决我的问题:https://blog.zabbix.com/zabbix-agent-user-parameters/7910/
它没有解决我的问题“无法连接到ODBC DSN: SQL_ERROR08001[unixODBCODBC 8.0(w) DriverDriver不支持4.1.1以下的服务器版本]”中的问题。
但我的目标是监控数据库中的内容,只要我可以运行我的sql查询并在zabbix前端/web界面上显示结果,这对我来说就足够了。
解决方案是创建shell脚本,并使用此shell脚本运行sql查询并打印sql查询结果。
echo root@Mars:~# cat /usr/lib/zabbix/externalscripts/mysql_nruser.sh mysql_nruser=$(echo "SELECT count(*) FROM user“| mysql mysql -uMyUserName -pMyPassWord) echo $mysql_nruser
在以下文件夹下创建用户参数配置文件:etc/zabbix/zabbix_agentd.d,
zabbix root@Mars:/etc/
/zabbix_agentd.d# ls userparameter_mysql.conf
userparameter_mysql.conf文件中,添加UserParameter=mysql.nruser,/usr/lib/zabbix/externalscripts/mysql_nruser.sh
此语句可以添加到'/etc/zabbix/zabbix_agentd.conf`文件中。
太棒了!现在,您可以通过zabbix web界面/前端上的sql查询来监控数据库中的内容。
发布于 2021-08-30 17:21:04
我遇到了同样的问题,解决方案是降低我正在使用的ODBC的版本。我安装了5.3版,它工作正常。
发布于 2021-08-31 11:26:00
你可以看看zbxdb,这是我不久前写的一个用python监控sql数据库的工具。添加用于监控的新版本非常容易。只要有适用于您的驱动程序的python版本,它基本上就能正常工作。
如果您对此有问题,请在GitHub中给我留言。
https://stackoverflow.com/questions/68101707
复制相似问题