mpm插件尽是坑啊,详细的安装mpm见http://www.cnblogs.com/jiangxu67/p/3701911.htmlmpm插件的几个坑得吐槽下[root@localhost cache]# /usr/local/mpm/FromDualMySQLagent.pl /etc/zabbix_mpm.conf 
1
[root@localhost ~]# tail -f /var/log/zabbix/FromDualMySQLagent.log 
29318:2014-05-07 14:03:45.553 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
29318:2014-05-07 14:03:45.575 - WARN:       127.0.0.1, 10051, zabbix_server
29318:2014-05-07 14:03:45.575 - WARN:       Connection to zabbix server failed (rc=1305)!
29318:2014-05-07 14:03:45.676 - INFO: FromDual Performance Monitor for MySQL run finshed (rc=0).测试及报错分析
如上看见的报错了,为什么报错呢?原来是mpm插件会检查与zabbix server是否连接
扒了mpm代码
FromDualMySQLagent.pm的checkConnectionToZabbixServer
sub checkConnectionToZabbixServer
{
  my $pServer = $_[0];
  my $pPort   = $_[1];
  my $pHost   = $_[2];  my $rc = 0;  if ( $main::gParameter{'Debug'} >= INFO ) { &FromDualMySQLagent::mylog($main::gParameter{'LogFile'}, INFO, '      ' . (caller(0))[3]); }  # This tag does NOT exist in templates!!!
  my $lKey    = 'FromDual.server.check';
  my $lValue  = 1;上面说的很清楚了,这个标签不在模板中,是的,我查了web界面上的key,确实没有'FromDual.server.check'
如果想不报错的话,那么就得把'FromDual.server.check' 改为其他的在模板里有的键
不知道mpm的作者是怎么想的,这个键没有,你还在源代码上写,我这种小白习惯了拿来就用,没有修改源码的习惯啊改完之后再测试,好吧,还有错
FromDualMySQLagent.log 然后开始报:
3801:2014-05-09 14:53:26.283 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
3801:2014-05-09 14:53:26.301 - ERR : Load of cache file failed. rc=1301
3801:2014-05-09 14:53:26.301 - INFO: FromDual Performance Monitor for MySQL run finshed (rc=0).最后查到原因:下面的是截取一篇博客的回复
最近,经常受到一些朋友发来的问题,说按照上面的配置,还是报“Load of cache file failed. rc=1301”错,我最近又做了一次,的确有这个错!
下面是我对这种故障的处理:第一: [client100] 这里的 Modules = server process mysql innodb 只写你已经用到的,没有配置就不要写上;第二,mpm 这个模板不要写上,写上之后,读取的参数,最后一行有空行,在发送数据时,会报错,无法发送;第三,如果还报错,手动分解cache里的文件,逐个发送,看哪个参数显示有发送失败的,如果有,先去掉看是否正常,如果正常,再来解决这个发送失败的问题!是的,没错,mpm 写上之后,读取的参数,最后一行有空行,在发送数据时,会报错,无法发送
这是什么情况?有这个模块,但是就是不能用,有何用?
其实也可以在源码里更改,使mpm模块不会产生空格zabbix server通过mpm模块的一个键每隔10秒检查mpm模块是否存活,如果mpm存活,就会获得mpm插件中你填写的模块的数据
如果你不加mpm模块的话,那么就没法每隔10秒向zabbix server发送数据,但是你加了mpm模块,如果没有修改源码的话,就会出现上面的问题  ERR : Load of cache file failed. rc=1301
好了,源码我修改了,不会出现空行了,数据也能产生了,但是还是有错
还是这错 ERR :  Load of cache file failed. rc=1301FromDualAgentCache.zabbixserver.cache这个文件,在不断变大,数据有一部分发送failed
what's the fuck!
果断换成使用percona-monitoring-plugins监控了