推广 热搜: 可以  企业  page  搜索引擎  行业  百度    个数  使用  选择 

网站开发必备技能/seo顾问服务福建

   日期:2024-12-18     移动:http://ww.kub2b.com/mobile/quote/5613.html

本文除了指名在zabbix-server操作,其他均在zabbix-agent上操作

前提:先完成单实例的监控

这里我的mysql单实例是直接yum安装的

开启mysql多实例

准备配置文件

[root@agent ~]# cp /etc/my.cnf /etc/my3307.cnf

[root@agent ~]# vim /etc/my3307.cnf

my3307.cnf内容如下

[mysqld]

datadir=/data/3307/

socket=/data/3307/mysql.sock

port=3307

user=mysql

symbolic-links=0

[mysqld_safe]

log-error=/data/3307/mysqld.log

pid-file=/data/3307/mysqld.pid

[root@agent ~]# cp /etc/my3307.cnf /etc/my3308.cnf

[root@agent ~]# sed -i 's#3307#3308#g' /etc/my3308.cnf

初始化数据库3307

[root@agent ~]# mysql_install_db --user=mysql --defaults-file=/etc/my3307.cnf

[root@agent ~]# mysqld_safe --defaults-file=/etc/my3307.cnf &

初始化数据库3308

[root@agent ~]# mysql_install_db --user=mysql --defaults-file=/etc/my3308.cnf

[root@agent ~]# mysqld_safe --defaults-file=/etc/my3308.cnf &

检查多实例是否正常

[root@agent ~]# mkdir /data/3306

[root@agent ~]# ln -s /var/lib/mysql/mysql.sock /data/3306/

检查

[root@agent ~]# find /data -name "*.sock"

/data/3306/mysql.sock

/data/3308/mysql.sock

/data/3307/mysql.sock

[root@agent ~]# chmod 755 /data/*

[root@agent ~]# ll /data/* -d

drwxr-xr-x 2 root root 4096 Nov 23 01:45 /data/3306

drwxr-xr-x 4 mysql root 4096 Nov 23 01:39 /data/3307

drwxr-xr-x 4 mysql root 4096 Nov 23 01:40 /data/3308

[root@agent ~]# netstat -lntp|awk -F "[ :]+" '/mysqld/{print$5}'

3306

3307

3308

[root@agent ~]# mkdir /etc/zabbix/scripts

[root@agent ~]# vi /etc/zabbix/scripts/discover.sh

discover.sh脚本内容如下

#!/bin/bash

#mysql low-level discovery

res=`netstat -lntp|awk -F "[ : ]+" '/mysqld/{print$5}'`

port=($res)

printf '{'

printf '"data":['

for key in ${!port[@]}

do

if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then

printf '{'

printf ""{#MYSQLPORT}":"${port[${key}]}"},"

else [[ "${key}" -eq "((${#port[@]}-1))" ]]

printf '{'

printf ""{#MYSQLPORT}":"${port[${key}]}"}"

fi

done

printf ']'

printf '}

网站开发必备技能/seo顾问服务福建

'

测试脚本

[root@agent ~]# sh /etc/zabbix/scripts/discover.sh

{"data":[{"{#MYSQLPORT}":"3306"},{"{#MYSQLPORT}":"3307"},{"{#MYSQLPORT}":"3308"}]}

sed -i '98a zabbix ALL=(ALL) NOPASSWD: /bin/netstat' /etc/sudoers

sed -i 's@^Defaults requiretty@#Defaults requiretty@g' /etc/sudoers

[root@agent ~]# cd /etc/zabbix/zabbix_agentd.d/

[root@agent zabbix_agentd.d]# vi mysql.conf

内容如下

UserParameter=mysql.discovery,sh /etc/zabbix/scripts/discover.sh

[root@agent zabbix_agentd.d]# service zabbix-agent restart

Shutting down Zabbix agent:     [ OK ]

Starting Zabbix agent:     [ OK ]

默认情况下载,zabbix会以zabbix用户的身份执行刚才的discover.sh脚本, netstat -lntup需要root用户的权限,所以这里我们使用suid来解决这个问题

chmod u+s /usr/bin/netstat

在zabbix-server上测试

[root@zabbix-server ~]# zabbix_get -s 192.168.56.23 -k mysql.discovery

{"data":[{"{#MYSQLPORT}":"3306"},{"{#MYSQLPORT}":"3307"},{"{#MYSQLPORT}":"3308"}]}

[root@agent zabbix_agentd.d]# cd /etc/zabbix/zabbix_agentd.d

[root@agent zabbix_agentd.d]# vi mysql.conf

修改后的内容为

UserParameter=mysql.discovery,sh /etc/zabbix/scripts/discover.sh

UserParameter=mysql-status[*],echo "show global status where Variable_name='$2';" |mysql -S /data/$1/mysql.sock -N | awk '{print $$2}'

UserParameter=mysql-ping[*],mysqladmin -S /data/$1/mysql.sock ping | grep -c alive

UserParameter=mysql-version,mysql -V

[root@agent zabbix_agentd.d]# service zabbix-agent restart

Shutting down Zabbix agent:     [ OK ]

Starting Zabbix agent:     [ OK ]

在zabbix-server上分别进行如下测试

[root@zabbix-server ~]# zabbix_get -s 192.168.56.23 -k mysql-ping[3306]

1

[root@zabbix-server ~]# zabbix_get -s 192.168.56.23 -k mysql-ping[3307]

1

[root@zabbix-server ~]# zabbix_get -s 192.168.56.23 -k mysql-ping[3308]

1

本文地址:http://ww.kub2b.com/quote/5613.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号