天天看點

zabbix監控MySQL及監控Mysql表空間

一、基本環境

主機名稱 IP位址
ZABBIX伺服器 192.168.168.157
MYSQL伺服器 192.168.168.158

二、監控部署

2.1 在Mysql伺服器上的/etc/zabbix/scipts目錄下建立名稱為chk_mysql.sh的監控腳本

腳本内容如下:

#!/bin/bash

MYSQL_USER='zabbix'

MYSQL_PWD='zabbix'

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}"

# CHK PARAMETERS

if [ $# -ne "1" ];then

echo "arg error!"

fi

# COLLECTION DATA

case $1 in

Uptime)

   result=`${MYSQL_CONN} status 2> /dev/null|cut -f2 -d":"|cut -f1 -d"T"`

   echo $result

   ;;

Com_update)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Com_update"|cut -d"|" -f3`

Slow_queries)

   result=`${MYSQL_CONN} status 2> /dev/null|cut -f5 -d":"|cut -f1 -d"O"`

Com_select)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Com_select"|cut -d"|" -f3`

           ;;

Com_rollback)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Com_rollback"|cut -d"|" -f3`

           echo $result

Questions)

   result=`${MYSQL_CONN} status 2> /dev/null|cut -f4 -d":"|cut -f1 -d"S"`

Com_insert)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Com_insert"|cut -d"|" -f3`

Com_delete)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Com_delete"|cut -d"|" -f3`

Com_commit)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Com_commit"|cut -d"|" -f3`

Bytes_sent)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Bytes_sent" |cut -d"|" -f3`

Bytes_received)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Bytes_received" |cut -d"|" -f3`

Com_begin)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Com_begin"|cut -d"|" -f3`

Threads_connected)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Threads_connected"|cut -d"|" -f3`

Threads_running)

   result=`${MYSQL_CONN} extended-status 2> /dev/null|grep -w "Threads_running"|cut -d"|" -f3`

   *)

   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

2.2 在Mysql的/etc/zabbix/zabbix_agentd.d/目錄下建立userparameter_mysql.conf的配置檔案

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

[root@mysql zabbix_agentd.d]# ls

monitor_file.conf  mysql.items_data.conf  userparameter_mysql.conf

[root@mysql zabbix_agentd.d]# cat userparameter_mysql.conf

UserParameter=mysql.status[*],/etc/zabbix/scripts/chk_mysql.sh $1

UserParameter=mysql.ping,mysqladmin -uzabbix -pzabbix -h '127.0.0.1' ping 2> /dev/null | grep -c alive

UserParameter=mysql.version,mysql -V

2.3 把/etc/zabbix/scripts下的腳本檔案加執行權限

[root@mysql scripts]# chmod +x chk_mysql.sh

2.4  在Mysql伺服器上重新開機zabbix-agent服務

systemctl restart zabbix-agent.service

2.5  在zabbix伺服器上使用zabbix_get指令,來擷取MYSQL配置的相關參數産生的數值

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Threads_connected]"

26

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Uptime]"

4284

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Com_update]"

165

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Slow_queries]"

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Com_select]"

22502

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Com_rollback]"

655

[root@zabbix-server ~]#

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Questions]"

70968

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Com_insert]"

6339

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Com_delete]"

82

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Com_commit]"

18789

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Bytes_sent]"

42283411

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Bytes_received]"

5915227

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k "mysql.status[Com_begin]"

19802

2.6  Zabbix服務端添加監控項

zabbix監控MySQL及監控Mysql表空間

2.7  檢視監控項産生的資料

zabbix監控MySQL及監控Mysql表空間
zabbix監控MySQL及監控Mysql表空間

三、監控Mysql表空間容量

3.1  登入mysql資料庫檢視items資料表容量大小為5.1MB

​MariaDB [zabbix]> select sum(truncate(data_length/1024/1024, 2)) as '資料容量(MB)' from information_schema.tables where table_name='items'

   -> ;

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

| 資料容量(MB)     |

|             5.51 |

1 row in set (0.00 sec)

3.2  在安裝mysql的資料庫上使用下列的指令查詢到item表占用5.51MB的存儲容量

​[root@mysql zabbix_agentd.d]# mysql -uzabbix -pzabbix -e "select sum(truncate(data_length/1024/1024, 2)) as '資料容量(MB)' from information_schema.tables where table_name='items'"|sed 1d

5.51

3.3  在mysql伺服器的/etc/zabbix/zabbix_agentd.d目錄下建立監控表空間的配置檔案,并加入必須的參數

[root@mysql zabbix_agentd.d]# cat   mysql.items_data.conf

UserParameter=mysql.items_data,mysql-uzabbix -pzabbix -e "select sum(truncate(data_length/1024/1024, 2)) as '

資料容量(MB)'from information_schema.tables where table_name='items'"|sed 1d

3.4、在mysql伺服器上重新啟動zabbix的代理端

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

3.5  在Zabbix伺服器上使用zabbxi_get指令擷取Items表空間使用容量,順利的拿到數值

[root@zabbix-server ~]# zabbix_get -s 192.168.168.158 -k mysql.items_data

3.6  在Zabbix服務端添加監控項,

zabbix監控MySQL及監控Mysql表空間

3.7  在Zabbix服務端可以清楚的檢視到Zabbix值存儲空間所顯示的資料

zabbix監控MySQL及監控Mysql表空間

繼續閱讀