zabbix mysql qps_zabbix 监控mysql的方法

zabbix部署完之后

zabbix-agent操作

1.监控mysql,首先要先安装mysql

[root@localhost ~]# yum -y install mariadb mariadb-server

2.编写mysql监控项的脚本

在zabbix-agent先授权个用户 不然测试时没有权限

[root@localhost ~]# mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 33

Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all on *.* to 'check'@'localhost' identified by '123';

Query OK, 0 rows affected (0.00 sec)

mysql监控的内容主要有

主从的状态 (得先配置主从 在下面)

流量检测 发送,接受常规操作 增删改查

某个库、某个表的大小

tps(每秒查询处理的事务数)qps(每秒能处理多少次请求数)

[root@localhost ~]# mkdir /etc/zabbix/scipts

[root@localhost ~]# cd /etc/zabbix/scipts/

[root@localhost scipts]# vim mysql.sh

#!/bin/bash

mysql="mysql -ucheck -p123"

case $1 in

# mysql主从状态

slave_status)

$mysql -e "show slave status\G" |grep "Yes" |wc -l

;;

# mysql流量 接受

Bytes_received)

mysqladmin extended-status |grep "Bytes_received" |awk '{print $4}'

;;

# mysql流量 发送

Bytes_sent)

mysqladmin extended-status |grep "Bytes_sent" |awk '{print $4}'

;;

# mysql常规操作 增

Com_insert)

mysqladmin extended-status |grep -w "Com_insert" |awk '{print $4}'

;;

# mysql常规操作 删

Com_delete)

mysqladmin extended-status |grep -w "Com_delete" |awk '{print $4}'

;;

# mysql常规操作 改

Com_update)

mysqladmin extended-status |grep -w "Com_update" |awk '{print $4}'

;;

# mysql常规操作 查

Com_select)

mysqladmin extended-status |grep -w "Com_select" |awk '{print $4}'

;;

# mysql tps

tps)

mysqladmin status |awk '{print $6/$2}'

;;

# mysql qps=(rollback+commit)/uptime

qps)

rollback=$(mysqladmin extended-status |grep -w "Com_rollback" |awk '{print $4}')

commit=$(mysqladmin extended-status |grep -w "Com_commit" |awk '{print $4}')

uptime=$(mysqladmin status |awk '{print $2}')

count=$[$rollback+$commit]

echo "$count $uptime" > /tmp/a.txt

cat /tmp/a.txt |awk '{print $1/$2}'

;;

# 库大小 我们这里拿mysql库举例

db)

$mysql -e "select sum(data_length) from information_schema.tables where table_schema='mysql'" |sed -n '2p'

;;

# 表大小 我们这里拿mysql下面的user表举例

tb)

$mysql -e "select sum(data_length) from information_schema.tables where table_schema='mysql' and table_name='user'" |sed -n '2p'

;;

esac

3.自定义键值key 重启zabbix-agent

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

[root@localhost zabbix_agentd.d]# vim mysql.conf

UserParameter=mysql[*],/etc/zabbix/scipts/mysql.sh $1

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

4.在zabbix-server测试 先安装zabbix-get

[root@localhost ~]# yum -y install zabbix-get

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[slave_status]

2

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Bytes_received]

850970

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Bytes_sent]

224906

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Com_insert]

3001

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Com_delete]

135

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Com_update]

128

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[Com_select]

19

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[qps]

0.864842

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[tps]

1.92936

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[db]

555118

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[tb]

420

报错处理

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[slave_status]

sh: /etc/zabbix/scipts/mysql.sh: 权限不够

脚本执行权限不够 去zabbix-agent 加权限

[root@localhost zabbix_agentd.d]# chmod +x /etc/zabbix/scipts/mysql.sh

[root@localhost ~]# zabbix_get -s 192.168.27.137 -k mysql[slave_status]

ERROR 1227 (42000) at line 1: Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation

是因为用户没有权限查看 去zabbix-agent 授权个用户在脚本里面加上

[root@localhost ~]# mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 33

Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> grant all on *.* to 'check'@'localhost' identified by '123';

Query OK, 0 rows affected (0.00 sec)

[root@localhost scipts]# vim mysql.sh

#!/bin/bash

mysql="mysql -ucheck -p123"

case $1 in

# mysql主从状态

slave_status)

$mysql -e "show slave status\G" |grep "Yes" |wc -l

;;

zabbix页面上添加监控项和图形

0a3cdf8135aa30bf179c97d0f2c47ad0.png

b160ecccc1ba2636bb9eedaa9b18a86c.png

4c7b1afdce657c65fc76371f244cc8f8.png

29957767d081d5c44275b6590c1e3e95.png

查看mysql流量数据

0ff157f98f75f735ad416fe1e3a52dbe.png

08544663d2284abb14d3958d34194114.png

查看mysql qps tps

2b72145127b47c32f6becc42dbc5e7d3.png

查看mysql主从状态

6975b194f9677c830ee337500a008056.png

查看mysql常规操作

590fb2dfab54cde4f12724c9cf10fc64.png

查看mysql库表大小

c9bda8de04832636ddd5b47bc8e2cc93.png

mysql主从配置

一.zabbix-server端

[root@localhost ~]# vim /etc/my.cnf

8e4a308c1c00a77c7d3cd8ba845dde69.png

[root@localhost ~]# systemctl restart mariadb

[root@localhost ~]# mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 7

Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show master status;

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 | 175170 | | |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

MariaDB [(none)]> grant all on *.* to 'tom'@'%' identified by '123';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

二.zabbix-agent端

[root@localhost ~]# vim /etc/my.cnf

605aa61fadff3fd58696c890a6fe1ad6.png

[root@localhost ~]# systemctl restart mariadb

[root@localhost ~]# mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> change master to

-> master_host='192.168.27.136',

-> master_user='tom',

-> master_password='123',

-> master_log_file='mysql-bin.000001',

-> master_log_pos=175170;

Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> start slave;

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show slave status \G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.27.136

Master_User: tom

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 175170

Relay_Log_File: mysql-relay.000004

Relay_Log_Pos: 529

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: No

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 1146

Last_Error: Error 'Table 'zabbix.history_uint' doesn't exist' on query. Default database: 'zabbix'. Query: 'insert into history_uint (itemid,clock,ns,value) values (23287,1602301747,810415730,1)'

Skip_Counter: 0

Exec_Master_Log_Pos: 173424

Relay_Log_Space: 2565

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: NULL

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 1146

Last_SQL_Error: Error 'Table 'zabbix.history_uint' doesn't exist' on query. Default database: 'zabbix'. Query: 'insert into history_uint (itemid,clock,ns,value) values (23287,1602301747,810415730,1)'

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

1 row in set (0.00 sec)

ERROR: No query specified

报错处理

[root@localhost ~]# vim /etc/my.cnf

a25eaba5d867034d042e0a7bd014eae1.png

[root@localhost ~]# systemctl restart mariadb

[root@localhost ~]# mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 4

Server version: 5.5.65-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show slave status \G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.27.136

Master_User: tom

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 199126

Relay_Log_File: mysql-relay.000006

Relay_Log_Pos: 3950

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 199126

Relay_Log_Space: 4240

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

1 row in set (0.00 sec)

到此这篇关于zabbix 监控mysql的方法的文章就介绍到这了,更多相关zabbix 监控mysql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值