环境:zabbix 3.0.3
1. Mysql监控账户设置
GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY "zabbix"; (用户名和密码根据需要设置)
<此处包括授权和新建用户名密码(建议使用本地登录,不要开启远程登录)
Select 查询权限
process使用show full processlist(查看全部线程)
super使用change master、kill、logs、purge、master和set global。还允许mysqladmin调试登陆
replication client:服务器位置的访问
2. 依赖库安装
因为使用php脚本监控,所以需要安装php和php-mysql。
yum install -y php php-mysql
如果遇到类似报错:
Transaction Check Error:
file /usr/share/mysql/charsets/Index.xml from install of mysql-libs-5.1.73-8.el6_8.x86_64 conflicts with file from package mysql-community-common-5.7.20-1.el6.x86_64
需要安装mysql的lib库文件。需要对应版本文件例如上面的5.7.20报错安装
rpm -ivh mysql-community-libs-compat-5.7.20-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el6.x86_64.rpm
如果是mysql5.6.29可以安装rpm -ivh MySQL-shared-compat-5.6.39-1.el6.x86_64.rpm代替
如何需要安装mysql的库文件,可以去mysql官网下载,高点版本(小版本)也可以,但是最好选择对应版本。
3. 安装percona配置脚本
zabbix监控对应rpm文件percona-zabbix-templates-1.1.7-2.noarch.rpm 上传到对应机器。下载地址
rpm -ivh percona-zabbix-templates-1.1.7-2.noarch.rpm
Scripts are installed to /var/lib/zabbix/percona/scripts #监控脚本目录
Templates are installed to /var/lib/zabbix/percona/templates #监控模板
cd /var/lib/zabbix/percona/templates/
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/ #将监控配置文件拷贝到zabbix_agentd.d中
位置:yum安装的在/etc/zabbix/zabbix_agentd.d
源码安装的在/你指定的/etc/zabbix/zabbix_agentd.d
若忘记可以find / -name zabbix_agentd.d #查找
- 新建监控文件:
新建文件: 此处注意有的网络上说写成localhost-mysql_zabbix_stats.txt但是有时候会发现无效,或者还会生成localhost-mysql_cacti_stats.txt.
touch /tmp/localhost-mysql_cacti_stats.txt:3317 #后面的是你mysql的使用端口号
chown -R zabbix:zabbix /tmp/localhost-mysql_cacti_stats.txt:3317 #修改所属权限
- 修改mysql状态监控脚本
vi /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt "
换成:
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt:3317"
TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt`
换成:
TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt:3317` #如果默认端口可以不修改
- 修改mysql连接脚脚本
vi /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'zabbix';
$mysql_pass = 'zabbix'; #前面设置监控mysql的用户名和密码
$mysql_port = 3306;#mysql端口
- 测试percona 是否设置成功
/usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg
如果出现类似gg:10代表以及成功。
重启zabbix-agent服务service zabbix-agent restart
4. Web端操作
- 导入模板
/var/lib/zabbix/percona/templates/ 这里的模板无法直接使用会出现报错问题这是因为这里zabbix监控版本不对,可以在网上找到可以使用版本,
报错
我使用的模版:下载地址
导入模版
在监控主机上添加如下模版:
添加mysql模版
特别说明:使用percona做监控时候会发现监控的mysql项目特别多,而且有些监控项的名称可能不一定匹配。因此需要在进一步修改下(根据具体环节,比如监控主从复制slave)
if [ "$ITEM" = "running-slave" ]; then
# Check for running slave
RES=`HOME=~zabbix mysql -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`
需要根据你的需要设置mysql登录状态。
if [ "$RES" = " Yes, Yes," ]; then
echo 1
else
echo 0
fi
exit
percona监控原理:
原理图
- ss_get_mysql_stats.php在一定时间间隔内更新txt文档。生成监控数据,至于怎么生成的熟悉php可以去查看脚本
- zabbix-server根据监控项名称通过zabbix-agent配置文件去txt文档中获取数据
修改收集数据周期
由于监控项特别多下面是我整理监控项并简单说明:下载
percona监控项
网友评论