ybx13218464908 发表于 2015-1-20 18:01:18

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]
查看完整版本: zabbix+mpm监控mysql数据库