zabbix监控mysql客户端

时间:2022-07-08 21:54:07

如果使用rpm安装,可能造成很多依赖问题,所以还是用源码安装,做法参照zabbix服务端安装文档,不用拷贝server配置文件,不用启动server,只需要修改agentd文件,启动agentd就可以。需要注意的是,因为server监控客户端mysql需要定义用户参数,所以需要对userparameter进行配置。
1,配置前先关闭iptables和SELINUX,避免安装过程中报错。
[root@zabbix ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
[root@zabbix ~]# service iptables stop
iptables: Flushing firewall rules: [  OK  ]
iptables: Setting chains to policy ACCEPT: filter [  OK  ]
iptables: Unloading modules: [  OK  ]
[root@zabbix ~]# chkconfig iptables off
[root@zabbix ~]# setenforce 0
[root@zabbix ~]# vim /etc/sysconfig/selinux
修改
SELIUNX=disabled

2,安装LAMP环境
[root@zabbix ~]# yum install -y httpd mysql mysql-server mysql-devel php php-mysql php-common php-mbstring php-gd php-odbc php-xml php-pear

3,下载zabbix-2.2.2.tar.gz
[root@zabbix ~]# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz

4,安装zabbix所需的组件(server,agent)
[root@zabbix ~]# yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI

5,创建用户账号(agent),在启动zabbix时,需要zabbix用户
[root@zabbix ~]# groupadd zabbix -g 201
[root@zabbix ~]# useradd -g zabbix -u 201 -m zabbix

6,解压zabbix
[root@zabbix ~]#tar zxf zabbix-2.2.2.tar.gz

7,安装zabbix
[root@zabbix ~]#cd zabbix-2.2.2
[root@zabbix zabbix-2.2.2]# ./configure --enable-agent
[root@zabbix zabbix-2.2.2]# make install
安装完成后zabbix的路径在/usr/local/etc下

8,找到默认mysql的用户参数
[root@zabbix ~]# find / -name userparameter_mysql.conf

9,将里面的参数拷贝至zabbix_agentd.conf,如果用home,home路径下的文件保存的是mysql连接的用户名和密码,比较安全。这里直接调用mysql,将home路径修改为mysql/bin所在路径,如下
zabbix监控mysql客户端
注意:使用ping参数,只能用mysqladmin用户
然后修改server,serveractive和hostname。

10,将zabbix_agentd添加至启动项
cp /root/zabbix-2.2.2/misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_*

11,启动zabbix_agentd


注意:上述的方法在mysql5.1时是OK的,但是在mysql5.6时,会出现如下问题
zabbix监控mysql客户端

能看到,zabbix_get能取到值,但是在web上显示值类型不对,这是因为mysql5.6有安全机制,在使用mysql命令并写出密码,会给出警告,最好不要在命令行写密码,以免出现安全隐患,而这段警告,是包含在结果里的,而web定义的值是数字类型的,但结果是字符串,导致web提示值类型不一致。 解决办法如下:

1,在/var/lib/zbbix下创建一个包含MySQL用户名和密码的配置文件“.my.cnf”,如下

[client]
user=root
host=localhost
password=password
2,将UserParameter的mysql命令改为HOME,以mysql.ping为例,如下
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive

被监控端测试
$ zabbix_agentd -t mysql.ping
mysql.ping [t|1]
服务端测试,ip为被监控端IP,这里为监控本地数据库
$ zabbix_get -s 127.0.0.1 -k mysql.ping
1