1、数据库给只读权限

1.1  grant usage on *.* to 'zabbix'@'127.0.0.1' identified by 'zabbix';
flush privileges;
1.2  mysql -uzabbix -pzabbix -h 127.0.0.1 -e "show global status"
Com_select从mysql启动以来接收的select语句的数量,它是一直往上增的。
Threads_connected获取的是一种当前的状态
1.3  mysql -uzabbix -pzabbix -h 127.0.0.1 -e "show global status"|grep 'Threads_connected'

背景:

ZABBIX 3.0 配置监察和控制MYSQL性能【OK】,zabbixmysql

Zabbix三.0自带了MySQL插件来监督mysql数据库的模板,只必要配备好agent客户端,然后在web端给主机扩展模板就行了。
参考:   首假若3点:
1.agent端增添/etc/zabbix/.my.cnf文件,增添帐号/密码 2.agent端施行grant
all on *.*授权给帐号
叁.agent端修改userparameter_mysql.conf文件之中的门道  
登陆agent端推行以下操作:   壹.装置好zabbix服务端和agent端:(略)  
贰.登陆zabbix客户端:   yum -y install zabbix22-agent systemctl enable
zabbix-agent systemctl start zabbix-agent   cat > /etc/zabbix/.my.cnf
<< end [澳门金沙国际,client] host=客户端IP
//host语句可选。不填则默认为:host=localhost。则后边的grant这样写:grant
all on *.* to
[email protected]’localhost’
//尽管填了IP,则前边的grant那样写:grant all on *.* to
[email protected]’客户端IP’
socket=/var/lib/mysql.sock //可选 user=zabbix
password=028TpeG2G0五7W四M八四1 end   登入agent端的MYSQL,增添帐号: grant
all on *.* to
[email protected]’localhost’
identified by ’02捌TpeG二G05柒W肆M八4一’; flush privileges; exit  
注:推行后在服务端推行以下命令测试:

zabbix_get -s agent端IP -p10050 -k "mysql.status[Uptime]" ,如果zbx抓不到数据或报错,则试试:

grant all on *.* to [email protected]'127.0.0.1' identified by 'zabbix'; //再不行,将127.0.0.1换成 agent端的IP 或 % 试试 

澳门金沙国际 1
    三.登6agent端修改配置:   vim /etc/zabbix/zabbix_安排监察和控制MYSQL质量,zabbix自定义监察和控制mysql质量。agentd.conf
Include=/etc/zabbix_agentd.conf.d/
//243行,撤除注释。也说不定是:/etc/zabbix/zabbix_agentd.d/,无所谓。
保存退出   mkdir -p /etc/zabbix_agentd.conf.d/ cp
/usr/share/doc/zabbix22-agent-2.2.18/userparameter_mysql.conf
/etc/zabbix_agentd.conf.d/   sed -i
‘[email protected]/var/lib/[email protected]/etc/[email protected]’
/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
//修改路线为zabbix主配置目录:/etc/zabbix ,conf文件路线大概有不一样。
注:最棒将内部的 mysql和 mysqladmin
命令加上全路线,不然存在只怕不能够获得到数量的恐怕。
澳门金沙国际 2
  肆.重启agent端服务:   systemctl restart zabbix-agent  
在zabbix服务端测试: zabbix_get -s 192.168.1.25 -p 10050 -k
“mysql.status[Uptime]” 12085434
//假诺现身仿佛那一串key的数字,就申明配置ok,服务端能监察和控制到agent端的mysql数据了!
  伍.给agent端主机增加MYSQL监察和控制模板(模板是自带的):  
澳门金沙国际 3
 
澳门金沙国际 4
    给MYSQL监控绘图:
澳门金沙国际 5
 
澳门金沙国际 6
  效果图:
澳门金沙国际 7
 
澳门金沙国际 8

 

三.0 配置监察和控制MYSQL质量【OK】,zabbixmysql
Zabbix三.0自带了MySQL插件来监督mysql数据库的模版,只需求配置好agent客户端,然后在web端给主机增…

查看zabbix_agentd.conf配置文件:

二、zabbix监控mysql脚本(check_mysql.sh)

#!/bin/sh
while getopts "u:p:P:k:" opt
do
        case $opt in
                u ) user=$OPTARG;;
                p ) password=$OPTARG;;
                P ) port=$OPTARG;;
                k ) key=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done
if [ ! "${user}" ] || [ ! "${password}" ] || [ ! "${port}" ];then
        echo "parameter is null"        
        exit 1
fi

mysql -u ${user} -p${password} -h 127.0.0.1 -P${port} -e "show global status"|grep "${key}[[:space:]]"|awk '{print $2}'

zabbix本人提供了广大可选的监察项,能够满足绝大部分的监察供给。有时候是因为事务须要,要求自定义监察和控制项。
下边以创制mysql自定义监察和控制项为例,分享如何创制zabbix自定义监察和控制项。

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1    //当系统设置有多个IP时,需要指定一个IP与二级代理或服务端通信,若系统只有一个IP,也建议指定一个IP
ListenPort=10050
ServerActive=127.0.0.1   //在主动模式下,ServerActive为二级代理服务器或服务器,默认端口为10051
Hostname=127.0.0.1    //手工自定义一个主机名,可以和系统的主机名一样,也可以不一样,此参数可根据实际情况启用或关闭,建议关闭此参数,并启用HostnameItem参数
Include=/etc/zabbix/zabbix_agentd.d/*.conf

叁、zabbix自定义监察和控制mysql的agent配置(vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql.conf)

UserParameter=mysql.status[*],sh /usr/local/zabbix/check_mysql.sh -u zabbix -p zabbix -P $1 -k $2 2>/dev/null
配置完需要重启zabbix_agentd(pkill zabbix_agentd; sleep 3; /usr/local/zabbix/sbin/zabbix_agentd)

条件认证:

初叶mysql质量监控

那里可以采取zabbix自带的mysql模版,可是也必要在mysql服务器上准备获取mysql
status的脚本chk_mysql.sh,zabbix通过调用那么些脚本来获取mysql的运维新闻。

一、在陈设文件zabbix_agentd.conf里面增加mysql监察和控制音讯:

# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],/root/chk_mysql.sh $1         //chk_mysql.sh路径根据实际情况
UserParameter=mysql.ping,mysqladmin -uzabbix -pzabbix -P3306 -h127.0.0.1  ping | grep -c alive
 //mysql数据库名:zabbix,密码:zabbix;主机地址和zabbix_agentd.conf中Hostname一致

二、初叶化数据库并加上2个mysql帐号:

[root@localhost ~]# mysqladmin -uroot -h 127.0.0.1 password 123456
[root@localhost ~]# mysql -u root -p
Enter password:
mysql>GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@'127.0.0.1' IDENTIFIED BY 'zabbix';                              
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye

3、mysql监控脚本chk_mysql.sh

#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:    check_mysql.sh
# Revision:    1.0
# Date:        2015/06/09
# Author:      DengYun
# Email:       dengyun@ttlsa.com
# Website:     www.ttlsa.com
# Description: 
# Notes:       ~
# -------------------------------------------------------------------------------
# Copyright:   2015 (c) DengYun
# License:     GPL

# 用户名
MYSQL_USER='zabbix'

# 密码
MYSQL_PWD='zabbix'

# 主机地址/IP
MYSQL_HOST='127.0.0.1'

# 端口
MYSQL_PORT='3306'

# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"

# 参数是否正确
if [ $# -ne "1" ];then 
    echo "arg error!" 
fi 

# 获取数据
case $1 in 
    Uptime) 
        result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` 
        echo $result 
        ;; 
    Com_update) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Slow_queries) 
        result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"` 
        echo $result 
        ;; 
    Com_select) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3` 
        echo $result 
                ;; 
    Com_rollback) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Questions) 
        result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"` 
                echo $result 
                ;; 
    Com_insert) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_delete) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_commit) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_sent) 
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_received) 
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_begin) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3` 
                echo $result 
                ;; 

        *) 
        echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" 
        ;; 
esac

增加check脚本权力:
[root@localhost~]#chmod u+x
/root/chk_mysql.sh
[root@localhost~]#chown -R zabbix.zabbix
chk_mysql.sh

四、去zabbix服务器上边检查基本mysql服务器消息是还是不是能健康获取到:
[root@localhost~]# zabbix_get -s 127.0.0.1 -p10050 -k
“system.cpu.load[all,avg15]”; //127.0.0. 1 与zabbix_agentd.conf 中
server一致
0.050000

肆、测试下看好不佳得到到值

zabbix_get -s 172.16.0.3 -k mysql.status[3306,Com_select]

zabbix版本:3.0.3 操作系统:CentOS 7
mysql版本:5.7.1

zabbix web设置

一,建立mysql host groups组模板是 zabbix系统提供的,进入 zabbix web
后台,Configuration–>Hosts groups–>点击“Create host
group”–>选拔template选项卡,选择模板“TemplateApp MySQL,Templdate OS
Linux”,最终点击update 就可以

澳门金沙国际 9

2,建立hosts模板是 zabbix系统提供的,进入zabbix web
后台,configuration–>hosts–>点击你的主机
name–>选取template选项卡,选用模板“Template App
MySQL”,最后点击左侧的“Add”开关,最终点击“update”按键就可以

  

澳门金沙国际 10

3,监察和控制品质视图监察和控制脚本运行如常后,就会在zabbix-server的host上面包车型地铁graph里面来看mysql的监察品质视图,monitoring–>Graphs–>Host(选取mysql服务器)
Graph(选用mysql选项),能够看来品质监察和控制视图,zabbix自带模版暗许有三个属性图,那个图要等运维1段时间后才干画出来

  

澳门金沙国际 11

附:查看zabbix web管理段工程上边的数据库配置新闻
[root@localhost~]# vim /xxxx/zabbix.conf.php

<?php
// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']                              = 'MySQL';
$DB['SERVER']                         = '127.0.0.1';
$DB['PORT']                              = '3306';
$DB['DATABASE']                       = 'zabbix';
$DB['USER']                              = 'zabbix';
$DB['PASSWORD']                       = 'zabbix';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA']                   = '';

$ZBX_SERVER                     = 'localhost';
$ZBX_SERVER_PORT                = '10051';
$ZBX_SERVER_NAME                = '';

$IMAGE_FORMAT_DEFAULT   = IMAGE_FORMAT_PNG;
?>

5、网页上增添监察和控制

net.tcp.service.perf[tcp,,3306]
mysql.status[3306,Threads_connected]
mysql.status[3306,Com_select]
mysql.status[3306,Com_update]
mysql.status[3306,Com_insert]
mysql.status[3306,Com_delete]

贯彻步骤:

陆、创设图形实行查看

1、修改 zabbix_agentd.conf,添加zabbix_agent
配置目录,以下是本身本机的zabbix的布局: 将以下行的解说去掉

7、触发器的充实

#Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf

八、可设置成模板

 

变成:

Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf

将此行注释去掉后,zabbix_agentd运营后会自动扫描/usr/local/etc/zabbix_agentd.conf.d/目录下有所的.conf文件,并加载。

二、编写监察和控制脚本/usr/local/zabbix/zabbix-script/get_mysql_status.sh,脚本如下(脚本存放目录能够自定义):

#!/bin/sh

case $3 in
uptime)
mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $2}'
;;
threads)
mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $4}'
;;
question)
mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $6}'
;;
sq)
mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $9}'
;;
open)
mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $11}'
;;
ftable)
mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $14}'
;;
opent)
mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $17}'
;;
qps)
mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $22}'
;;
*)

本子表明,脚本须要输入多少个参数分别是:mysql用户、mysql用户密码、mysql状态每一种目标如下:
uptime:运维时间长度单位s、 threads:开启的对话数、
question(questions):服务器运维以来客户的主题素材(查询)数目 sq(Slow
queries): 慢查询数量 open(opens):服务器已经打开的多寡库表的多寡
ftable(Flush tables):服务器已经进行的flush
…、refresh和reload命令的数量 opent(open
tables):通过命令是用的数据库的表的数目,以服务器运营上马 qps(Queries
per second avg):select语句平均查询时间

3、在/usr/local/etc/zabbix_agentd.conf.d/目录下增添监察和控制项配置文件get_mysql_status.conf,内容如下:

UserParameter=get_mysql_status[*],/usr/local/zabbix/zabbix-script/get_mysql_status.sh $1 $2 $3

4、重启zabbix_agent和zabbix_server,使用zabbix_get测试,如下:

#zabbix_get -s 127.0.0.1 -k get_mysql_status[root,weiming,open]
   679

5、web端增多监察和控制项: 在主机上加多监察和控制项:
澳门金沙国际 12

增加达成后方可阅览新扩展监控项如下:

澳门金沙国际 13

增添图形:

澳门金沙国际 14

图形预览:

澳门金沙国际 15

原著来自:

相关文章