zabbix+mpm监控mysql数据库
MPM/Zabbix监控MySQL的大概步骤如下:1、安装部署Zabbix
2、下载安装MPM(Performance Monitor for MySQL)及其依赖的Perl模块
3、导入MPM模板
4、创建host group(可选)
5、创建host (即MPM agent配置中的database)
6、值得注意的是:Hostname必须与MPM agent配置中的所使用的一致
7、将选择的模板关联到创建的host
8、配置MPM agent
9、将MPM agent”挂钩”到Zabbix agent
# cat /etc/zabbix/zabbix_agentd.conf
UserParameter=FromDual.MySQL.check,/opt/mysql_performance_monitor_agent-0.9.3/FromDualMySQLagent.pl /etc/zabbix/zabbix_agentd.conf.d/FromDualMySQLagent.conf
10、重启Zabbix agent
主要包含两部分:
1、zabbix 模板:Template_FromDual.MySQL.*.xml
2、MPM agent perl 模块:FromDualMySQL*.pm
安装方法:
一、先安装MPM
下面是在linux 6.4下安装,先安装如下包: copyright www.stuhack.com
yum install perl-File-Which perl-libwww-perl perl-Digest-SHA perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay
# 上面perl-File-Which没有自带,需要自行下载安装(如果还提示perl包,根据需要安装相应perl版本)
rpm -ivh perl-File-Which-1.09-5.1.noarch.rpm
下载MPM并解压:
# wget -c http://www.shinguz.ch/download/mysql_performance_monitor-latest.tar.gz# tar zxvf mysql_performance_monitor-latest.tar.gzMPM模板:
# tar zxvf mysql_performance_monitor_templates-0.9.1.tar.gz
# cd mysql_performance_monitor_templates-0.9.1/xml
在Zabbix Web UI导入监控所需的模板(“Configuration”->”Templates”->”Import”):
Template_FromDual.MySQL.mpm.xml (监控mpm agent本身,这个必须导入)
Template_FromDual.MySQL.server.xml (监控Linux系统跟数据库使用相关的附加项)
Template_FromDual.MySQL.process.xml (监控各种Linux进程[比如:mysqld,ndbd])
Template_FromDual.MySQL.mysql.xml (监控MySQL常用状态变量)
Template_FromDual.MySQL.innodb.xml (监控InnoDB存储引擎状态变量)
Template_FromDual.MySQL.myisam.xml (监控MyISAM存储引擎状态变量)
Template_FromDual.MySQL.master.xml (监控MySQL主从复制的Master状态)
Template_FromDual.MySQL.slave.xml (监控MySQL主从复制的Slave状态)
MPM其它用途的模板:
Template_FromDual.MySQL.ndb.xml (监控MySQL Cluster)
Template_FromDual.MySQL.galera.xml (监控MySQL Galera Cluster)
Template_FromDual.MySQL.pbxt.xml (监控PBXT存储引擎状态变量)
Template_FromDual.MySQL.aria.xml (监控Aria存储引擎的状态变量)
Template_FromDual.MySQL.drbd.xml (监控DRBD设备状态信息)
二、配置zabbix client
1、在客户端中解压相关脚本,并配置zabbix_agentd.conf文件,加入如下内容:
UserParameter=FromDual.MySQL.check,/opt/mysql_performance_monitor_agent-0.9.3/FromDualMySQLagent.pl /etc/zabbix/zabbix_agentd.conf.d/FromDualMySQLagent.conf
2、cp FromDualMySQLagent.conf.template /etc/zabbix/zabbix_agentd.conf.d/FromDualMySQLagent.conf
并修改相关内容: 内容来自学生黑客联盟
Type = mysqld
Debug = 2
LogFile = /tmp/FromDualMySQLagent.log
CacheFileBase = /tmp/FromDualAgentCache
Username = mqm
Password = mqmsecret
MysqlHost = 127.0.0.1
MysqlPort = 3306
ZabbixServer = x.x.x.x #zabbix服务端IP
Disabled = false
Modules = process mysql innodb
#ClusterLog = /var/lib/mysql-cluster/ndb_1_cluster.log
# Mysql的PID文件,需要zabbix用户可读权限
PidFile = /opt/mysql/data/mysqld.pid
#
#Type = mysqld
#Modules = mpm server
#下面的主机名需要跟Zabbix Server里面定义的主机名一致
Type = mysqld
Modules = process mysql innodb
#mysql server pid
PidFile = /opt/mysql/data/mysql.pid
下面是监控用户在mysql数据库所需要的权限:
CREATE USER 'mpm'@'127.0.0.1' IDENTIFIED BY 'mpmsecret';
GRANT PROCESS ON *.* TO 'mpm'@'127.0.0.1';
GRANT REPLICATION CLIENT ON *.* TO 'mpm'@'127.0.0.1';
3、创建相关目录与文件,并加权限
touch /tmp/FromDualMySQLagent.log
chown zabbix:zabbix /tmp/FromDualMySQLagent.log
chmod o+r /opt/mysql/data/mysqld.pid
4、修改zabbix_send的在FromDualMySQLagent.pl脚本中的路径FromDualMySQLagent.pl中zabbix_sender的路径。sed -i 's|/usr/local/bin|/usr/local/zabbix/bin/|g' FromDualMySQLagent.pl
5、启动agentd
service zabbix_agentd restart
三、在zabbix服务端配置
1、导入相关的模板,其中Template_FromDual.MySQL.mpm.xml是必导的,其它可根据自己的需要再导入;
2、新增主机,并link到MPM模板上即可。
注意主机名必须与被监控的客户端主机名保持一致。
测试验证:
(1).检查MPM插件的工作情况:
[*]# /opt/mysql_performance_monitor_agent-0.9.3/FromDualMySQLagent.pl /etc/zabbix/zabbix_agentd.conf.d/FromDualMySQLagent.conf
[*]1
[*]# 返回值为1:表示MPM插件正常,重启zabbix_agent,加载mpm插件
(2).在实际中,如果怀疑是zabbix_agentd问题,使用如下测试方式:
[*]#zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf -t FromDual.MySQL.check
[*]FromDual.MySQL.check
[*]# zabbix_agentd-c /etc/zabbix/zabbix_agentd.conf -t system.uptime
[*]system.uptime
[*]# 以上能正常返回值,说明zabbix_agent是正常的
(3). 如果有错误的话,请查看/var/log/zabbix下的相关日志,很多是权限问题,注意查看修改
# 提示pid文件不可读:采用:usermod -G mysql zabbix
(4). 报如下故障时:
[*](# tail -f /tmp/FromDualMySQLagent.log ),其他zabbix服务端、客户端日志都正常,无报错
[*]5279:2014-03-17 15:26:39.853 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
[*]5279:2014-03-17 15:26:39.867 - WARN: 192.168.1.141, 10051, db_server
[*]5279:2014-03-17 15:26:39.867 - WARN: Connection to zabbix server failed (rc=1305)!
[*]5279:2014-03-17 15:26:40.878 - WARN: 192.168.1.141, 10051, db_server
[*]5279:2014-03-17 15:26:40.878 - WARN: Connection to zabbix server failed (rc=1305)!
[*]5279:2014-03-17 15:26:40.882 - WARN: 192.168.1.141, 10051, 192.168.1.100
[*]5279:2014-03-17 15:26:40.882 - WARN: Connection to zabbix server failed (rc=1305)!
[*]5279:2014-03-17 15:26:41.890 - WARN: 192.168.1.141, 10051, 192.168.1.100
[*]
[*]可采取措施如下步骤:
[*] 第一步:修改 FromDualMySQLagent.conf 配置文件,注释掉如下部分:[这些注释的部分,因为在zabbix web没有配置此主机]
[*]#
[*]# Type = mysqld
[*]# Modules = mpm server
[*]
[*] Type = mysqld
[*] Mysqlport=3306
[*] Modules = process mysql innodb
[*] PidFile = /opt/mysql/data/mysqld.pid
[*]
[*] 第二步: 注释掉模块里检查zabbix server 的语句:
[*] # vim /usr/local/mysql_performance_monitor_agent/lib/sendData.pm
[*]# 注释掉的语句如下:
[*]# $rc = &FromDualMySQLagent::checkConnectionToZabbixServer($main::gParameter{'ZabbixServer'}, $main::gParameter{'ZabbixServerPort'}, $main::gParameter{'Hostname'});
(5). 要注意 /var/log/zabbix/cache/ 目录下相关文件的权限,保证zabbix用户下
[*]# cd /var/log/zabbix/cache/
[*]# ll
[*]-rw-rw-r-- 1 zabbix zabbix 0 Mar 22 07:25 FromDualAgentCache.192.168.1.100.cache
[*]# 特别需要注意的是:此文件没有写入是正常的,因为程序自动清空了此文件,但如果说文件不停的变大,那就说明配置有问题,数据没有发出去
(6). 报如下错误,处理方式为:
[*]12933:2014-03-22 06:52:06.005 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
[*]12933:2014-03-22 06:52:06.019 - ERR : Load of cache file failed. rc=1301
[*]12933:2014-03-22 06:52:07.029 - ERR : Load of cache file failed. rc=1301
[*]
[*]# 报此错了,上面的文件,也在不断变大,一般是上面文件有错,建议删掉文件,重新启动程序,让程序自己再重新创建个新文件(而不是清空文件)
(7).在zabbix web 端配置主机组时,主机组为 mysql database (可以设置为其他组,已经测试成功)容来自学生黑客联盟
也可以放在crontab中定时进行监控
* * * * * /FromDu/opt/mysql_performance_monitor_agent-0.9.3/FromDualMySQLagent.pl /etc/zabbix/zabbix_agentd.conf.d/FromDualMySQLagent.conf 1>/dev/null 2>&1
页:
[1]