一、基本環境
主機名稱 | 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服務端添加監控項
2.7 檢視監控項産生的資料
三、監控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服務端添加監控項,
3.7 在Zabbix服務端可以清楚的檢視到Zabbix值存儲空間所顯示的資料