0%

使用 fpmmm 模板监控 MySQL

使用 fpmmm 模板监控 MySQL

zabbix 自带的监控 MySQL 功能很弱,所以安装 fpmmm 模板监控 MySQL。

CentOS 版本:6.7 x86_64

MySQL 版本:5.7.12

zabbix 版本:3.0.8

fpmmm 版本:0.10.6

安装 zabbix-agent

使用 YUM 方式安装

1
2
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
yum --enablerepo=zabbix install zabbix-agent zabbix-sender -y

修改 /etc/zabbix/zabbix_agentd.conf 配置文件

1
2
3
Server=zabbix-server-ip
ServerActive=zabbix-server-ip
Hostname=zabbix-agent-hostname

启动 zabbix-agent

1
2
service zabbix-agent start
chkconfig zabbix-agent on

安装 fpmmm

安装 php 环境

fpmmm 需要 php 支持,YUM 安装 php 环境

1
2
3
4
5
6
7
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
yum install php55w-mysql php55w-process php55w-cli
cat > /etc/php.d/fpmmm.ini << EOF
variables_order = "EGPCS"
date.timezone = 'Asia/Shanghai'

EOF

fpmmm 需要加载 php-memcached 模块,而 webtatic 源中没有 php-memcached 扩展,所以需要自己编译。

首先编译安装 libmemcached

1
2
3
4
5
wget https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz
tar xvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure
make && make install

然后编译安装 php-memcached 扩展,编译完成后,memcache.so 文件位置为:/usr/lib64/php/modules

1
2
3
4
5
6
wget https://pecl.php.net/get/memcached-2.2.0.tgz
tar xvf memcached-2.2.0.tgz
cd memcached-2.2.0
phpize
./configure --disable-memcached-sasl
make && make install

添加扩展配置文件

1
2
cat /etc/php.d/memcached.ini
extension=memcached.so

验证 memcached 模块已被加载

1
2
php -m |grep memcached
memcached

安装 fpmmm 程序

fpmmm 官网下载安装包

1
2
3
4
5
tar zxvf fpmmm-0.10.6.tar.gz
mkdir /etc/fpmmm
cp fpmmm-0.10.6/tpl/fpmmm.conf.template /etc/fpmmm/fpmmm.conf
chown -R zabbix: /etc/fpmmm
mv fpmmm-0.10.6 /etc/zabbix/

配置 fpmmm 程序

编辑 /etc/fpmmm/fpmmm.conf 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Information for MySQL connections:
Username = fpmmm_agent
Password = secret
MysqlHost = 127.0.0.1
MysqlPort = 3306

# Zabbix Server IP address
ZabbixServer = zabbix-server-ip

# Special parameter which is used for module process (MySQL PID file!)
PidFile = /home/mysql/data/mysqld.pid

# Here you could enter the hostname of your machine (uname -n)
[hostname] # This MUST match Hostname in Zabbix!
Type = mysqld
Modules = fpmmm server

# Here you could add a random name of your MySQL/MariaDB instance
[hostname] # This MUST match Hostname in Zabbix!
Type = mysqld
MysqlPort = 3306
Modules = process mysql myisam innodb master slave security
PidFile = /home/mysql/data/mysqld.pid

数据库中添加监控用户

1
2
3
4
5
CREATE USER 'fpmmm_agent'@'127.0.0.1' IDENTIFIED BY 'secret';
GRANT PROCESS ON *.* TO 'fpmmm_agent'@'127.0.0.1';
GRANT REPLICATION CLIENT ON *.* TO 'fpmmm_agent'@'127.0.0.1';
GRANT SELECT ON mysql.user TO 'fpmmm_agent'@'127.0.0.1';
GRANT REPLICATION SLAVE ON *.* TO 'fpmmm_agent'@'127.0.0.1';

测试 fpmmm 查看日志

1
2
3
4
5
6
/etc/zabbix/fpmmm-0.10.6/bin/fpmmm --config=/etc/fpmmm/fpmmm.conf
1
cat /tmp/fpmmm/fpmmm.log
...
3423:2017-04-01 17:58:18.746 - INFO: FromDual Performance Monitor for MySQL and MariaDB (fpmmm) (0.10.6) run started.
3423:2017-04-01 17:58:20.262 - INFO: FromDual Performance Monitor for MySQL and MariaDB (fpmmm) run finished (rc=0).

定时执行 fpmmm agent

1
echo "UserParameter=FromDual.MySQL.check,/etc/zabbix/fpmmm-0.10.6/bin/fpmmm --config=/etc/fpmmm/fpmmm.conf" >> /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

zabbix server 添加 fpmmm 模板

登录 zabbix server 控制台,点击 Configuration–Templates–Import–选择文件,导入 fpmmm-0.10.6\tpl 目录中以下文件:

1
2
3
4
5
6
7
Template_FromDual.MySQL.server_30.xml
Template_FromDual.MySQL.mysql_30.xml
Template_FromDual.MySQL.myisam_30.xml
Template_FromDual.MySQL.innodb_30.xml
Template_FromDual.MySQL.master_30.xml
Template_FromDual.MySQL.slave_30.xml
Template_FromDual.MySQL.security_30.xml

最后把模板应用到要监控的主机即可。

参考