1. 程式人生 > >Zabbix3.4使用自帶模板監控MySQL

Zabbix3.4使用自帶模板監控MySQL

slave zabbix3 http 登錄 gin files other rollback 地址

192.168.254.127 (zabbix)
192.168.254.128 (mysql)

zabbix_agentd客戶端設置
在mysql數據上創建一個普通用戶zabbix,密碼zabbix
[root@mysql1 scripts]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.22-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> grant all PRIVILEGES on . to zabbix@‘192.168.254.128‘ identified by ‘zabbix‘; ###創建一個有權限的訪問用戶zabbix密碼設置zabbix

Query OK, 0 rows affected (0.04 sec)

mysql> update mysql.user set authentication_string=password(‘zabbix‘) where user=‘zabbix‘ and Host = ‘192.168.254.128‘; ###更新下改用戶的密碼
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

查看用戶
mysql> select Host,User,authentication_string from mysql.user;
+-----------------+---------------+-------------------------------------------+
| Host | User | authentication_string |
+-----------------+---------------+-------------------------------------------+
| localhost | root | 182EA09A38F1141B2D7916812BD097D51167C3E4 |
| localhost | mysql.session |
THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| % | root |
182EA09A38F1141B2D7916812BD097D51167C3E4 |
| 192.168.254.% | slave_cp | 196BDEDE2AE4F84CA44C47D54D78478C7E2BD7B7 |
| 192.168.254.128 | zabbix |
DEEF4D7D88CD046ECA02A80393B7780A63E7E789 |
+-----------------+---------------+-------------------------------------------+
6 rows in set (0.00 sec)

mysql> exit
Bye
修改/etc/my.cnf文件創建無密碼登錄(把下面的配置添加進入)
[client]
user=zabbix
password=zabbix

[mysqladmin]
host=192.168.254.128
user=zabbix
password=zabbix

測試是否可以直接訪問不需要輸入密碼,如果輸入命令 直接進去說明已OK。
[root@mysql1 scripts]# mysql -uzabbix -h192.168.254.128
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 189
Server version: 5.7.22-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql>

現在數據庫端 測試 是否可以查看到相關數據
mysqladmin extended-status |grep -w "Bytes_received" |cut -d"|" -f3 ###有數據返回說明正常
[root@mysql1 scripts]# mysqladmin extended-status |grep -w "Bytes_received" |cut -d"|" -f3
58691

創建mysql監控腳本在目錄/etc/zabbix/scripts/chk_mysql.sh並賦予相關的權限。
#!/bin/bash

-------------------------------------------------------------------------------

FileName: check_mysql.sh

Revision: 1.0

Date: 2018/07/17

Author: 胖虎

Email:

Website:

Description:

Notes: ~

-------------------------------------------------------------------------------

Copyright: 2018 (c)

License: GPL

用戶名

MYSQL_USER=‘zabbix‘

密碼

MYSQL_PWD=‘zabbix‘

主機地址/IP

MYSQL_HOST=‘192.168.254.128‘

端口

MYSQL_PORT=‘3306‘

數據連接

#MYSQL_CONN="/usr/local/mysql/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
MYSQL_CONN="/usr/local/mysql/bin/mysqladmin"

參數是否正確

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

相關配置路徑文件
[root@mysql1 scripts]# ll
總用量 4
-rwxr-xr-x 1 root root 2696 7月 17 13:51 chk_mysql.sh
[root@mysql1 scripts]# pwd
/etc/zabbix/scripts

修改zabbix_agentd.conf添加以下參數:
vi /etc/zabbix/zabbix_agentd.conf (沒有的就添加)
PidFile=/tmp/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.254.127
ServerActive=192.168.254.127
Hostname=192.168.254.128
RefreshActiveChecks=120
Timeout=20
Include=/etc/zabbix/zabbix_agentd.d/.conf
UnsafeUserParameters=1
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[
],/etc/zabbix/scripts/chk_mysql.sh $1
UserParameter=mysql.ping,/usr/local/mysql/bin/mysqladmin -uzabbix ping | grep -c alive

重啟zabbix_agentd客戶端服務,查看有沒有報錯。
[root@mysql1 scripts]# /etc/init.d/zabbix-agent restart
Restarting zabbix-agent (via systemctl): [ 確定 ]

在zabbix_server端的瀏覽器設置
收下在zabbix_server端查看下mysql腳本信息是否可以正常獲取
[root@zabbix ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.254.128 -p10050 -k mysql.status[Uptime]
48
添加主機。配置--主機填寫相關信息。
技術分享圖片
鏈接相關模板。點擊模板選項卡--選擇--選中Templeate DB MySQL模板--添加--更新
技術分享圖片
等兩分鐘(數據默認1分鐘來獲取數據),就可以獲取相關數據了
技術分享圖片
至此監控mysql完成。

Zabbix3.4使用自帶模板監控MySQL