本篇文章给大家主要讲的是关于nagios报警mysql报错如何解决的内容,感兴趣的话就一起来看看这篇文章吧,相信看完nagios报警mysql报错如何解决对大家多少有点参考价值吧。

收到自己的云服务器的nagios报警,内容如下:

*****Nagios***** NotificationType:PROBLEM Service:06.TheMysqlStatus Host:linuxjcq01 Address:192.168.2.11 State:UNKNOWN Date/Time:ThuDec2212:11:46CST2011 AdditionalInfo: NRPE:Unabletoreadoutput

首先,报警使用的是nrpe客户端,测试nrpe监控命令是否正常。

vi/usr/local/nagios/etc/nrpe.cfg ...... command[check_mysql]=/usr/local/nagios/libexec/check_mysql-H192.168.2.11-unagios-p密码-dnagios-s/tmp/mysql.sock ......

测试命令

/usr/local/nagios/libexec/check_mysql-H192.168.2.11-unagios-p密码-dnagios-s/tmp/mysql.sock /usr/local/nagios/libexec/check_mysql:errorwhileloadingsharedlibraries:libmysqlclient.so.18:cannotopensharedobjectfile:Nosuchfileordirectory

从报错来看,原因很明显,找不到libmysqlclient.so.18。

原因分析:

因为我是自己安装的mysql,库文件存在于/usr/loca/mysql/lib中,查看是否存在该文件

ls-l/usr/local/mysql/lib/libmysqlclient.so.18 lrwxrwxrwx1mysqlmysql24Aug2723:10/usr/local/mysql/lib/libmysqlclient.so.18->libmysqlclient.so.18.0.0

看来是我刚才用yum升级软件包的时候修改了ldconfig的配置文件,查看配置文件:

vi/etc/ld.so.conf.d/mysql-x86_64.conf/usr/lib64/mysql

果然这个文件被重写了,原来自己有添加/usr/local/mysql/lib

解决方法:

添加/usr/local/mysql/lib

vi/etc/ld.so.conf.d/mysql-x86_64.conf /usr/lib64/mysql /usr/local/mysql/lib

执行ldconfig

ldconfig

重新执行监控子命令

/usr/local/nagios/libexec/check_mysql-H192.168.2.11-unagios-p密码-dnagios-s/tmp/mysql.sock Uptime:8777Threads:1Questions:6762Slowqueries:0Opens:113Flushtables:1Opentables:50Queriespersecondavg:0.770

OK, 问题解决,一会儿收到邮件,通知服务正常了

*****Nagios***** NotificationType:RECOVERY Service:06.TheMysqlStatus Host:linuxjcq01 Address:192.168.2.11 State:OK Date/Time:ThuDec2212:36:46CST2011 AdditionalInfo: Uptime:18085Threads:1Questions:13209Slowqueries:0Opens:176Flushtables:1Opentables:61Queriespersecondavg:0.730

附上另外一个解决方法,是安装MySQL-shared-compat包,可以到http://downloads.mysql.com/archives.php这边,下载对应的架构和动态客户端连接库,安装rpm包即可。

以上关于nagios报警mysql报错如何解决详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。