首页 > 系统 > Linux > 正文

【Linux】Zabbix + MPM + msmtp + mutt 监控MySQL + 邮件报警

2024-06-28 13:26:35
字体:
来源:转载
供稿:网友
【linux】Zabbix + MPM + msmtp + mutt 监控MySQL + 邮件报警

Zabbix部署参考博文

http://blog.sina.com.cn/s/blog_5611597901017oe0.html

MPM安装配置参考博文和MPM官网下载地址

http://blog.chinaunix.net/uid-451-id-3338674.html

http://www.fromdual.com/download#mpm

其余Zabbix参考博文地址

http://blog.sina.com.cn/s/blog_416656f70100d3oj.html

http://13angel.CUOxin.com/blog/248989

http://www.douban.com/note/330082640/

http://waringid.blog.51cto.com/65148/955939/监控MSSQLhttp://mayulin.blog.51cto.com/1628315/514509/

安装各种依赖包和环境所需包 ...

https://lug.ustc.edu.cn/wiki/mirrors/help/centos

可以把yum源改成上面这个

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsPRogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-serversphp以及连接mysql的组件yum -y install httpd php php-mysqlapache依赖yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysqlphp依赖yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath php-snmp lm_sensors lm_sensors-devel perl-DBD-MySQLyum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql mysql mysql-serveryum -y install net-snmp net-snmp-utils net-snmp-perl net-snmp-devel beecrypt-develyum -y install php-gd php-bcmath elfutils beecrypt php-snmp lm_sensorsyum -y install net-snmp net-snmp-devel net-snmp-utilsyum -y install curl curl-develyum -y install fping ##zabbix 使用 fping 替代了 ping 作为 icmp 的工具
View Code

mysql修改配置文件,因为yum源安装的是5.1版本,给一个配置模板...模板好像是5.5的

[mysqld]user            = mysqldatadir         = /export/zabbix/mysql_datasocket          = /export/zabbix/mysql_socket/mysql.sockport            = 3306default-character-set = utf8[client]port            = 3306socket          = /export/zabbix/mysql_socket/mysql.sock[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid#--- GLOBAL ---#character-set-server    = utf8log-error               = /export/zabbix/mysql_log/error.logpid-file                = /export/zabbix/mysql_data/mysql.pidslow-query-logslow_query_log_file     = /export/zabbix/mysql_log/slow.logtmpdir                  = /export/zabbix/mysql_tmp/long_query_time         = 1#--------------#thread_concurrency      = 16thread_cache_size       = 512table_open_cache        = 16384table_definition_cache  = 16384sort_buffer_size        = 2Mjoin_buffer_size        = 2Mread_buffer_size        = 4Mread_rnd_buffer_size    = 4Mkey_buffer_size         = 64Mmyisam_sort_buffer_size = 64Mtmp_table_size          = 256Mmax_heap_table_size     = 256Mopen_files_limit        = 65535#query_cache_size       = 2G#--- NETWORK ---#back_log                = 1024max_allowed_packet      = 16Minteractive_timeout     = 300wait_timeout            = 300skip-external-lockingmax-connections         = 1000skip-name-resolve#--- REPL ---#server-id               = 1073306log-bin                 = mysql-binbinlog_format           = mixedexpire_logs_days        = 7relay-log               = relay-logreplicate-ignore-db     = testlog_slave_updatesskip-slave-start#--- INNODB ---#default-storage-engine          = INNODBinnodb_data_home_dir            = /export/zabbix/mysql_datainnodb_data_file_path           = ibdata1:256M:autoextendinnodb_file_per_tableinnodb_log_group_home_dir       = /export/zabbix/mysql_loginnodb_buffer_pool_size         = 10Ginnodb_additional_mem_pool_size = 128Minnodb_log_files_in_group       = 3innodb_log_file_size            = 1024Minnodb_log_buffer_size          = 16Minnodb_flush_log_at_trx_commit  = 1innodb_lock_wait_timeout        = 120innodb_flush_method             = O_DIRECTinnodb_max_dirty_pages_pct      = 75innodb_io_capacity              = 1000innodb_thread_concurrency       = 32innodb_open_files               = 65535innodb_write_io_threads = 8innodb_read_io_threads = 8[mysqldump]quickmax_allowed_packet = 128M[mysql]no-auto-rehashdefault-character-set=utf8[myisamchk]key_buffer_size = 128Msort_buffer_size = 128Mread_buffer = 2Mwrite_buffer = 2M[mysqlhotcopy]interactive-timeout
View Code

不细说MySQL的部署过程了,大致过程

1、建数据目录、日志目录、tmp目录

2、chown -R mysql.mysql数据目录、日志目录、tmp目录

3、初始化mysql_install_db --defaults-file=/etc/my.cnf &

4、启动mysqld_safe --defaults-file=/etc/my.cnf &

5、系统建zabbix组合用户groupadd zabbix;useradd -g zabbix -d /home/zabbix -s /sbin/nologin zabbix

6、解压zabbix,编译配置参数说明:

--enable-server 安装 Zabbix Server--enable-proxy 安装 Zabbix Proxy--enable-agent 安装 Zabbix Agent--with-mysql 使用 mysql 做数据库服务器--with-net-snmp 支持 SNMP--with-libcurl 支持 curl,用于 web 监控

我不需要网络设备监控,监控机器比较少,所以不用proxy和snmp,编译后的路径按照自己喜好放置吧

./configure --prefix=/usr/local/zabbix --with-mysql --enable-server --enable-agent --with-libcurl

编译完会显示以下信息

Configuration:  Detected OS:           linux-gnu  Install path:          /usr/local/zabbix  Compilation arch:      linux  Compiler:              gcc  Compiler flags:        -g -O2  -I/usr/include/mysql  -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC   -DUNIV_LINUX -DUNIV_LINUX              Enable server:         yes  Server details:    With database:         MySQL    WEB Monitoring:        cURL    Native Jabber:         no    SNMP:                  no    IPMI:                  no    SSH:                   no    ODBC:                  no    Linker flags:          -rdynamic      -L/usr/lib64/mysql               Libraries:             -lm -ldl -lrt  -lresolv    -lmysqlclient             -lcurl  Enable proxy:          no  Enable agent:          yes  Agent details:    Linker flags:          -rdynamic         Libraries:             -lm -ldl -lrt  -lresolv     -lcurl  Enable java gateway:   no  LDAP support:          no  IPv6 support:          no************************************************************            Now run 'make install'                       **                                                         **            Thank you for using Zabbix!                  **              <http://www.zabbix.com>                    ************************************************************
View Code

继续make install

7、MySQL建zabbix库、用户

insert into mysql.user(User,Host,PassWord) values ('zabbix','%',password('zabbix'));

flush privileges;grant all privileges on zabbix.* to 'zabbix'@'%';

show grants for zabbix; ##yum装的mysql5.1比较操蛋

create database zabbix

mysql> show grants for zabbix;+-------------------------------------------------------------------------------------------------------+| Grants for zabbix@%                                                                                   |+-------------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'zabbix'@'%' IDENTIFIED BY PASSWORD '*DEEF4D7D88CD046ECA02A80393B7780A63E7E789' || GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'%'                                                    |+-------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec)mysql> GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'%' IDENTIFIED BY PASSWORD '*DEEF4D7D88CD046ECA02A80393B7780A63E7E789'    -> ;Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;      Query OK, 0 rows affected (0.00 sec)
View Code

8、注意依次导入./database/mysql/schema.sql ./database/mysql/images.sql ./database/mysql/data.sql

mysql -uzabbix -pzabbix zabbix <./database/mysql/schema.sql

mysql -uzabbix -pzabbix zabbix <./database/mysql/images.sql

mysql -uzabbix -pzabbix zabbix <./database/mysql/data.sql

9、检查一下/etc/services里面是否有以下四行,如果没有就加上

zabbix-agent    10050/tcp               # Zabbix Agentzabbix-agent    10050/udp               # Zabbix Agentzabbix-trapper  10051/tcp               # Zabbix Trapperzabbix-trapper  10051/udp               # Zabbix Trapper
View Code

10、拷贝zabbix目录下的frontend/php内容到http server的主目录下:

cp -r frontends/php/* /var/www/html/zabbix/

11、启动Apacheservice httpd start将 Apache 设置为开机自动启动chkconfig --add httpdchkconfig --level 345 httpd on

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

vim /etc/httpd/conf/httpd.conf

找到#ServerName www.example.com:80 把#去掉,再重启apache即可,浏览器访问一下试试

12、修改zabbix_server配置文件

参考博文修改的内容

[root@localhost zabbix-2.0.2]# sed -i 's/^DBUser=.*$/DBUser=zabbix/g' /usr/local/zabbix/etc/zabbix_server.conf[root@localhost zabbix-2.0.2]# sed -i 's/^.*DBPassword=.*$/DBPassword=111111/g' /usr/local/zabbix/etc/zabbix_server.conf[root@localhost zabbix-2.0.2]# cp -r frontends/php /var/www/html/zabbix[root@localhost zabbix-2.0.2]# cp misc/init.d/fedora/core/zabbix_server /etc/init.d/[root@localhost zabbix-2.0.2]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/[root@localhost zabbix-2.0.2]#sed -i 's/BASEDIR=//usr//local/BASEDIR=//usr//local//zabbix/g' /etc/init.d/zabbix_server[root@localhost zabbix-2.0.2]#sed -i 's/BASEDIR=//usr//local/BASEDIR=//usr//local//zabbix/g' /etc/init.d/zabbix_agentd
View Code

我修改的内容

LogFile=/tmp/zabbix_server.log

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

DBSocket=/export/zabbix/mysql_socket/mysql.sock

FpingLocation=/usr/sbin/fping

要安装fping下载地址:http://fping.org/安装:tar -zxvf fping.tar.gzcd fping/./configuremake && make installwhich fping  <- FpingLocation的配置安装这个修改fping failed: "(null): can't create socket (must run as root?) : Protocol not supported"/usr/local/sbin/fping: can't create raw socket (must run as root?) : Operation not permitted登录zabbix用户验证确实zabbix用户无法使用fping,权限问题,修改权限chown root:root /usr/local/sbin/fpingchmod u+s /usr/local/sbin/fping

如果启动的时候提示pid找不到,那就改一下pid的相关项

然后做一下软连或者加上环境变量

[root@zabbixserver mpm]# cd /bin/[root@zabbixserver bin]# ln -s /usr/local/zabbix/bin/zabbix_sender zabbix_sender[root@zabbixserver bin]# ln -s /usr/local/zabbix/bin/zabbix_get  zabbix_get

13、修改php.ini配置文件

参考博文修改的内容

[root@localhost ~]#sed -i 's/^/(.*/)date.timezone =.*$/date.timezone = Asia//Shanghai/g' /etc/php.ini[root@localhost ~]#sed -i 's/^/(.*/)post_max_size =.*$/post_max_size = 16M/g' /etc/php.ini[root@localhost ~]#sed -i 's/^/(.*/)max_execution_time =.*$/max_execution_time = 300/g' /etc/php.ini[root@localhost ~]#sed -i 's/^/(.*/)max_input_time =.*$/max_input_time = 300/g' /etc/php.ini[root@localhost ~]# /etc/init.d/zabbix_server start[root@localhost ~]# /etc/init.d/zabbix_agentd start[root@localhost ~]# /etc/init.d/httpd start
View Code

修改完php配置需要重启zabbix_server和apache

可以访问zabbix页面进行配置,下面提示连接不到MySQL

function DBconnect(&$error) {}代码段,代码里面没有指定socket,所以一般不是这块问题。

function DBconnect(&$error) {        global $DB;        if (isset($DB['DB'])) {                $error = _('Cannot create another database connection.');                return false;        }        $result = true;        $DB['DB'] = null; // global db handler        $DB['TRANSACTIONS'] = 0; // level of a nested transation        $DB['TRANSACTION_NO_FAILED_SQLS'] = true; // true - if no statements failed in transaction, false - there are failed statements        $DB['SELECT_COUNT'] = 0; // stats        $DB['EXECUTE_COUNT'] = 0;        if (!isset($DB['TYPE'])) {                $error = 'Unknown database type.';                $result = false;        }        else {                $DB['TYPE'] = zbx_strtoupper($DB['TYPE']);                switch ($DB['TYPE']) {                        case ZBX_DB_MYSQL:                                $DB['DB'] = @mysqli_connect($DB['SERVER'], $DB['USER'], $DB['PASSWORD'], $DB['DATABASE'], $DB['PORT']);                                if (!$DB['DB']) {                                        $error = 'Error connecting to database ['.trim(mysqli_connect_error()).']';                                        $result = false;                                }                                else {                                        DBexecute('SET NAMES utf8');                                }                                if ($result) {                                        $dbBackend = new MysqlDbBackend();                                }                                break;                        case ZBX_DB_POSTGRESQL:                                $pg_connection_string =                                        (!empty($DB['SERVER']) ? 'host=/''.pg_connect_escape($DB['SERVER']).'/' ' : '').                                        'dbname=/''.pg_connect_escape($DB['DATABASE']).'/' '.                                        (!empty($DB['USER']) ? 'user=/''.pg_connect_escape($DB['USER']).'/' ' : '').                                        (!empty($DB['PASSWORD']) ? 'password=/''.pg_connect_escape($DB['PASSWORD']).'/' ' : '').                                        (!empty($DB['PORT']) ? 'port='.pg_connect_escape($DB['PORT']) : '');                                $DB['DB']= @pg_connect($pg_connection_string);                                if (!$DB['DB']) {                                        $error = 'Error connecting to database';                                        $result = false;                                }                                elseif (false !== ($pgsql_version = pg_parameter_status('server_version'))) {                                        if ((int) $pgsql_version >= 9) {                                                // change the output format for values of type bytea from hex (the default) to escape                                                DBexecute('SET bytea_output = escape');                                        }                                }                                if ($result) {                                        $dbBackend = new PostgresqlDbBackend();                                }                                break;                        case ZBX_DB_Oracle:                                $connect = '';                                if (!empty($DB['SERVER'])) {                                        $connect = '//'.$DB['SERVER'];                                        if ($DB['PORT'] != '0') {                                                $connect .= ':'.$DB['PORT'];                                        }                                        if ($DB['DATABASE']) {                                                $connect .= '/'.$DB['DATABASE'];                                        }                                }                                $DB['DB'] = @oci_connect($DB['USER'], $DB['PASSWORD'], $connect);                                if ($DB['DB']) {                                        DBexecute('ALTER session SET NLS_NUMERIC_CHARACTERS='.zbx_dbstr('. '));                                }                                else {                                        $error = 'Error connecting to database';                                        $result = false;                                }                                if ($result) {                                        $dbBackend = new OracleDbBackend();                                }                                break;                        case ZBX_DB_DB2:                                $connect = '';                                $connect .= 'DATABASE='.$DB['DATABASE'].';';                                $connect .= 'HOSTNAME='.$DB['SERVER'].';';                                $connect .= 'PORT='.$DB['PORT'].';';                                $connect .= 'PROTOCOL=TCPIP;';                                $connect .= 'UID='.$DB['USER'].';';                                $connect .= 'PWD='.$DB['PASSWORD'].';';                                $DB['DB'] = @db2_connect($connect, $DB['USER'], $DB['PASSWORD']);                                if (!$DB['DB']) {                                        $error = 'Error connecting to database';                                        $result = false;                                }                                else {                                        $options = array(                                                'db2_attr_case' => DB2_CASE_LOWER,                                        );                                        db2_set_option($DB['DB'], $options, 1);                                        if (isset($DB['SCHEMA']) && $DB['SCHEMA'] != '') {                                                DBexecute('SET CURRENT SCHEMA='.zbx_dbstr($DB['SCHEMA']));                                        }                                }                                if ($result) {                                        $dbBackend = new Db2DbBackend();                                }                                break;                        case ZBX_DB_SQLITE3:                                if (file_exists($DB['DATABASE'])) {                                        init_sqlite3_access();                                        lock_sqlite3_access();                                        try{                                                $DB['DB'] = @new SQLite3($DB['DATABASE'], SQLITE3_OPEN_READWRITE);                                        }                                        catch (Exception $e) {                                                $error = 'Error connecting to database';                                                $result = false;                                        }                                        unlock_sqlite3_access();                                }                                else {                                        $error = 'Missing database';                                        $result = false;                                }                                if ($result) {                                        $dbBackend = new SqliteDbBackend();                                }                                break;                        default:                                $error = 'Unsupported database';                                $result = false;                }        }        if ($result && !$dbBackend->checkDbVersion()) {                $error = $dbBackend->getError();                $result = false;        }        if (false == $result) {                $DB['DB'] = null;        }        return $result;}
View Code

1、mysql.sock文件位置问题

因为MySQL配置的路径各异,sock做个软连过去(上一步自检php环境,按照上面修改php.ini即可,别忘重启apach和zabbix)

cd /var/lib/mysql/ ;ln -s /export/zabbix/mysql_socket/mysql.sock mysql.sock

2、SELinux和iptables影响

service iptables stop

/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态修改/etc/selinux/config 文件将SELINUX=enforcing改为SELINUX=disabled,然后reboot,注意最好先停掉mysql进程

3、测试

ie访问部署的这台机器比如192.168.1.2/zabbix,ie字体小,遨游和Chrome好点

然后特么进不去页面,各种检查

zabbix log 有/tmp/zabbix_server.log 和zabbix_agentd.log

httpd log /var/log/httpd/errlog。。。

然后想起来IE代理这个情况...买了个表

其他页面设置可以参考文章首的第一个链接

问题1:字体问题参考链接

http://blog.chinaunix.net/uid-11121450-id-3296646.html

问题2:页面的历史记录(history)乱码变成???>???>???

安装时在导入三个sql文件时,zabbix数据库中创建的表的字符集是latin1,修改为utf8,如果Zabbix里面没有建主机和监控项就drop databases,配置文件修改如下:

[mysqld]  ##这个节点下面增加default-character-set = utf8

http://www.haogongju.net/art/2418891

问题3:启动zabbix_server提示缺失lib模块

[root@zabbixserver lib]# service zabbix_server start zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory[root@zabbixserver lib]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/

下面的可以忽略

Zabbix自带的mysql监控的配置

因为Zabbix自带的监控脚本取的数据较少,还需要自己改一些东西,所以最后用的mysql_performance_monitor,所以带删除线的这块可以忽略

http://os.51cto.com/art/201104/253006.htm

http://my.oschina.net/zhongjuan/blog/89412

http://www.it165.net/os/html/201210/3677.html

上文中提到的xml和php获取地址

https://www.zabbix.com/wiki/howto/monitor/db/mysql/extensive_mysql_monitoring_including_replication

拿到xml以后,在zabbix中文界面里面的【组态】-【模板】的右边有一个【汇入】,把xml模板导入

php脚本需要放到监控机,配置文件目录/usr/local/zabbix/etc/

根据本机环境。第一行加入:#!/usr/bin/php在最后一行加入:?>关闭调试:define('DEBUG',true); 为 define('DEBUG',False);修改日志、数据文件路径:define('LOG',"/tmp/zabbix_".SYSTEM.".log");define('DAT',"/tmp/zabbix_".SYSTEM.".dat");define('UTIME',"/tmp/.zabbix_".SYSTEM.".utime");define('DTIME',"/tmp/.zabbix_".SYSTEM.".dtime");修改:define('SYSTEM','mysql'.(DEBUG ? "-debug" : "")); 为:define('SYSTEM','mysql');打开系统日志功能://system("zabbix_sender -z $server -i ".DAT." >> ".LOG); 为:system("zabbix_sender -z $server -i ".DAT." >> ".LOG);注释file_put_contents(DAT,"$server $host 10051 ".SYSTEM.".$var $val/n",FILE_APPEND);且下面增加以下文字:$cmd = "zabbix_sender -c $config_path -k ".SYSTEM.".$var -o $val -vv";file_put_contents(DAT,"$cmd/n",FILE_APPEND);exec($cmd);
View Code

在zabbix_agentd.conf配置文件中加入

这个php报错还是需要注意的

UserParameter=mysql.daily,php /etc/zabbix/mysql.php daily 用户名 密码UserParameter=mysql.live,php /etc/zabbix/mysql.php live 用户名 密码daily:每天执行一次。【由zabbix_server轮询发起,默认86640秒即一天 zabbix agent类型 UDP协议】live:按指定时间执行一次。【由zabbix_server轮询发起,默认120秒 zabbix agent类型 UDP协议】php :执行php文件/etc/zabbix/mysql.php:mysql.php文件所在的文件路径用户名 密码:登录mysql数据库的账户与密码重启zabbix_agentd
View Code

mysql.php里面还需要zabbix/bin下的部分执行文件的环境变量,否则会报一些错误,具体问题具体分析,修改mysql.php或者php.ini

sh: zabbix_sender: command not found

cd /usr/bin/ ;ln -s /usr/local/zabbix/bin/zabbix_sender zabbix_sender

ln -s /usr/local/zabbix/bin/zabbix_get zabbix_get

报错:

PHP Warning: Division by zero in /usr/local/zabbix/etc/mysql.php on line 470PHP Warning: Division by zero in /usr/local/zabbix/etc/mysql.php on line 471PHP Warning: Division by zero in /usr/local/zabbix/etc/mysql.php on line 472

chown zabbix.zabbix /tmp/zabbix_*

mysql.php 监控文件里面的命令执行失败大部分由于授权或者环境变量影响,/tmp下的日志文件属主权限、用户的.bash_profile是否导入,检查php zabbix_sender mysql的环境变量

因为Zabbix提供的监控脚本和监控项不太好用,所以决定使用第三方的一个插件mysql_performance_monitor!!!

【MPM】

1、安装环境

yum install -y perl-libwww-perl perl-File-Which perl-DBD-MySQL perl-Digest-SHA1 perl-Digest-SHAperl-Crypt-SSLeayperl-Time-HiRes

参考地址

http://blog.chinaunix.net/uid-451-id-3338674.html

http://www.fromdual.com/download#mpm

2、安装mpm

[root@zabbixserver package]# tar -zxvf mysql_performance_monitor-0.9.2.tar.gz[root@zabbixserver package]# mv mysql_performance_monitor_agent mpm[root@zabbixserver package]# mv mpm /usr/local/#配置文件,配置详细看下面[root@zabbixserver package]# vim /etc/zabbix_mpm.conf[root@zabbixserver package]# chown zabbix /etc/zabbix_mpm.conf[root@zabbixserver package]# mkdir /var/log/zabbix[root@zabbixserver package]# touch /var/log/zabbix/FromDualMySQLagent.log[root@zabbixserver package]# chown -R zabbix:zabbix /var/log/zabbix#UserParameter的值修改为:注意mpm配置位置[root@zabbixserver mpm]# vim /usr/local/zabbix/etc/zabbix_agentd.confUserParameter=FromDual.MySQL.check,/usr/local/mpm/FromDualMySQLagent.pl /usr/local/mpm/zabbix_mpm.conf[root@zabbixserver bin]# usermod -G mysql zabbix

3、导入xml模板

修改主机系统名、Zabbix_server/agentd配置文件的必须一致,与zabbix web新建的主机名必须一致

xml模板没必要都导入,可以先将MySQL.mpm(前缀删了),对应agent配置也先加这一个,后期需要可以逐步加模板及监控项

MPM Server的配置(MPM Server监控自己zabbix server的MySQL)

[default]Type         = mysqldDebug         = 2LogFile       = /var/log/zabbix/FromDualMySQLagent.logCacheFileBase = /var/log/zabbix/cache/FromDualAgentCacheUsername     = zabbixPassword     = zabbixMysqlHost    = 127.0.0.1MysqlPort    = 3306ZabbixServer = localhostDisabled     = false[zabbixserver]Type         = mysqldMysqlPort    = 3306Modules      = mpm innodb mysql process serverPidFile      = /export/zabbix/mysql_data/mysql.pid
View Code

MPM Agent的配置

Type         = mysqldDebug         = 2LogFile       = /var/log/zabbix/FromDualMySQLagent.logCacheFileBase = /var/log/zabbix/cache/FromDualAgentCacheUsername     = zabbixPassword     = zabbixMysqlHost    = localhostMysqlPort    = 3358ZabbixServer = 192.168.201.107Disabled     = false[cobbler]Type         = mysqldMysqlPort    = 3306Modules      = mpm innodb mysql process serverPidFile      = /export/data/mysql/data/mysql.pid
View Code

4、报错及分析

(1)、MPM报找不到mysql.pid

#FromDualMySQLagent.log报找不到mysql.pid15454:2014-06-27 10:28:33.222 - ERR : Cannot read PID file /export/zabbix/mysql_data/mysql.pid. Either file does not exist or I have no read permissions. Are you sure the process is running?#修改一下权限[root@zabbixserver bin]# usermod -G mysql zabbix

(2)、MPM说某个模块不存在,分析

#报FromDualMySQLinnodb模块不存在15454:2014-06-27 10:28:33.146 - ERR : Module FromDualMySQLinnodb does not exist.ERR : Can't locate Digest/SHA.pm in @INC (@INC contains: /usr/local/mpm/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/mpm/lib/InnoDbStatus.pm line 9.BEGIN failed--compilation aborted at /usr/local/mpm/lib/InnoDbStatus.pm line 9.Compilation failed in require at /usr/local/mpm/lib/FromDualMySQLinnodb.pm line 26.BEGIN failed--compilation aborted at /usr/local/mpm/lib/FromDualMySQLinnodb.pm line 26.Compilation failed in require at (eval 15) line 3.#先把mpm配置文件中的对应模块删除,zabbix web中主机关联的模板删除,然后重启agentd,看看是否还继续报错,如果不报了找对应模块的问题#这个问题是因为perl少安装一个perl-Digest-SHA依赖包

下面的斜体部分都属于报错、排错部分,是针对某些非MPM官网包出现的问题,如果是官网下的MPM可以直接忽略...还是踏踏实实官网下载,别论坛或者扒别人的

测试及报错分析->>源地址http://634871.blog.51cto.com/624871/1382835

[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_server29318:2014-05-07 14:03:45.575 - WARN:       Connection to zabbix server failed (rc=1305)!29318:2014-05-07 14:03:45.620 - WARN:       127.0.0.1, 10051, zabbix_server29318:2014-05-07 14:03:45.620 - WARN:       Connection to zabbix server failed (rc=1305)!29318:2014-05-07 14:03:45.628 - WARN:       127.0.0.1, 10051, zabbix_server29318:2014-05-07 14:03:45.628 - WARN:       Connection to zabbix server failed (rc=1305)!29318:2014-05-07 14:03:45.650 - WARN:       127.0.0.1, 10051, zabbix_server29318:2014-05-07 14:03:45.650 - WARN:       Connection to zabbix server failed (rc=1305)!29318:2014-05-07 14:03:45.656 - WARN:       127.0.0.1, 10051, zabbix_server29318:2014-05-07 14:03:45.656 - WARN:       Connection to zabbix server failed (rc=1305)!29318:2014-05-07 14:03:45.670 - WARN:       127.0.0.1, 10051, zabbix_server29318:2014-05-07 14:
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表