码迷,mamicode.com
首页 > 数据库 > 详细

9 低级发现Mysql多实例

时间:2020-01-17 19:24:43      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:HERE   lob   ima   span   too   netstat   usr   gen   def   

主要讲item原型

 

启动mysql多实例

3307 3308

[root@linux-node2 ~]# cp /etc/my.cnf /etc/my3307.cnf
[root@linux-node2 ~]# cp /etc/my.cnf /etc/my3308.cnf

 

原始的

技术图片

 

 

修改内容如下

[root@linux-node2 ~]# grep ^[a-Z] /etc/my3308.cnf
datadir=/data/3308
socket=/data/3308/mysql.sock
symbolic-links=0
port=3308
log-error=/data/3308/mariadb.log
pid-file=/data/3308/mariadb.pid

[root@linux-node2 ~]# grep ^[a-Z] /etc/my3307.cnf
datadir=/data/3307
socket=/data/3307/mysql.sock
symbolic-links=0
port=3307
log-error=/data/3307/mariadb.log
pid-file=/data/3307/mariadb.pid

 

初始化

 mysql_install_db --user=mysql --defaults-file=/etc/my3307.cnf

技术图片

 

 

 

启动

mysqld_safe --defaults-file=/etc/my3307.cnf &

 

技术图片

 

 

 

查看端口

 

 

 

 技术图片

 

 

 

 

添加3306实例

[root@linux-node2 ~]# mkdir /data/3306
[root@linux-node2 ~]# In -s /var/lib/mysql/mysql.sock /data/3306
-bash: In: command not found
[root@linux
-node2 ~]# ln -s /var/lib/mysql/mysql.sock /data/3306 [root@linux-node2 ~]# [root@linux-node2 ~]# find /data -name *.sock /data/3307/mysql.sock /data/3308/mysql.sock /data/3306/mysql.sock

 

 

 

3、编写脚本测试

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

[root@db01 ~]# ll -d /data/*
drwxr-xr-x 2 root root 23 6月 21 09:58 /data/3306
drwxr-xr-x 5 mysql root 4096 6月 21 09:48 /data/3307
drwxr-xr-x 5 mysql root 4096 6月 21 09:53 /data/3308

[root@db01 ~]# netstat -lntp|awk -F "[ :]+" ‘/mysqld/{print$5}‘
3306
3307
3308

 

 

编写脚本获取多实例并输出为json格式

[root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.d/discovery_mysql.sh 
[root@linux-node2 ~]# cat /etc/zabbix/zabbix_agentd.d/discovery_mysql.sh
#
!/bin/bash #mysql low-lever discovery res=`netstat -lntp|grep mysql |awk -F "[ :]+" {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 }

 

 

 

 

可以先看下 网络的 discovery

[root@linux-node2 ~]# zabbix_agentd -p |grep discovery

 

 技术图片

 

 

 

执行 mysql的discovery

[root@linux-node2 ~]# sh /etc/zabbix/zabbix_agentd.d/discovery_mysql.sh 
{"data":[{"{#MYSQLPORT}":"3306"},{"{#MYSQLPORT}":"3307"},{"{#MYSQLPORT}":"3308"}]}
# 转化为json
[root@linux-node2 ~]# sh /etc/zabbix/zabbix_agentd.d/discovery_mysql.sh |python -m json.tool
{
    "data": [
        {
            "{#MYSQLPORT}": "3306"
        },
        {
            "{#MYSQLPORT}": "3307"
        },
        {
            "{#MYSQLPORT}": "3308"
        }
    ]
}

 

 

 写自定义的key

[root@linux-node2 ~]# cat /etc/zabbix/zabbix_agentd.d/discovery_mysql.conf
UserParameter=discovery_mysql, sh /etc/zabbix/zabbix_agentd.d/discovery_mysql.sh

重启agent,获取

技术图片

 

 

 

 

 

授权

netstat -nltp  

p必须root用户才能执行

脚本中需要为zabbix用户授权netstat的命令

# 方法一:sudo

 

# 方法二:
去掉脚本的sudo,添加suid
ll `which netstat`
chmod u+s /usr/bin/netstat

 

 重新获取

zabbix_get -s 192.168.194.132 -p 10050 -k "discovery_mysql"

 

技术图片

 

 

 

2、web界面

添加自动发现规则

技术图片

 

 技术图片

 

 创建item原型

自动发现需要itemkey 去传参

定义mysql的配置文件

[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# cat userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name=‘$2‘;" | HOME=/var/lib/zabbix mysql -uroot -proot -h 127.0.0.1 -P $1 -N | awk {print $$2}

 

 

几个实例的用户名密码都修改mysql密码

mysqladmin -h 127.0.0.1 -uroot password root -P 3306
mysqladmin -h 127.0.0.1 -uroot password root -P 3307
mysqladmin -h 127.0.0.1 -uroot password root -P 3308

 

test

[root@linux-node2 ~]# mysql -uroot -proot -h127.0.0.1 -P3306

MariaDB [(none)]> use mysql

MariaDB [mysql]> show GLOBAL VARIABLES like port;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.00 sec)

 

重启agent

server端测试

[root@linux-node1 /etc/zabbix]# zabbix_get -s 192.168.194.132 -p 10050 -k "mysql.status[3306,Com_begin]"
0
[root@linux-node1 /etc/zabbix]# zabbix_get -s 192.168.194.132 -p 10050 -k "mysql.status[3306,Bytes_sent]"
19645211

 

添加item原型

具体可以参考,mysql模板的

技术图片

 

 

 

添加监控项原型

{#MYSQLPORT}

技术图片

技术图片

 

 

 

 

 

 添加另外几个,暂时添加5个

 技术图片

 

 查看linux-node2的item

技术图片

 

 查看数据

为什么在-other

技术图片

 

 

监控所有的端口

过滤ipv4

技术图片

 

一样的原理去创触发器原型

9 低级发现Mysql多实例

标签:HERE   lob   ima   span   too   netstat   usr   gen   def   

原文地址:https://www.cnblogs.com/venicid/p/12207007.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!