中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用zabbix怎么對mysql進行監控

發布時間:2021-05-13 16:33:36 來源:億速云 閱讀:615 作者:Leah 欄目:MySQL數據庫

今天就跟大家聊聊有關使用zabbix怎么對mysql進行監控,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

zabbix 監控 mysql

1、監控規劃

在創建監控項之前要盡量考慮清楚要監控什么,怎么監控,監控數據如何存儲,監控數據如何展現,如何處理報警等。要進行監控的系統規劃需要對Zabbix很了解,這里只是提出監控的需求。

需求一:監控MySQL的狀態,當狀態發生異常,發出報警;

需求二:監控MySQL的操作,并用圖表展現;

2、自定義腳本監控擴展Agent

Zabbix Server與Agent之間監控數據的采集主要是通過Zabbix Server主動向Agent詢問某個Key的值,Agent會根據Key去調用相應的函數去獲取這個值并返回給Server端。Zabbix 2.4.7的Agent本并沒有內置MySQL的監控功能(但是Server端提供了相應的Template配置),所以我們需要使用Zabbix的User Parameters功能,為MySQL添加監控腳本。

3、授權mysql登錄用戶(agent端)

mysql> grant usage on *.* to zabbix@127.0.0.1 identified by '123456';

mysql> flush privileges;

4、agent端配置

存活檢測

利用UserParameter參數自定義Agent Key。
對于需求一 ,我們采用mysqladmin這個工具來實現,命令如下:

# mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping 
mysqld is alive

如果MySQL狀態正常,會顯示mysqld is alive,否則會提示連接不上。對于服務器端,mysqld is alive這樣的句子不好理解,服務器端最好只接收1和0,1表示服務可用,0表示服務不可用。那么再改進一下這個命令,如下:

# mysqladmin -h 127.0.0.1 -u zabbix -p123456 ping |grep -c alive
1

用戶名和密碼放在命令中對于以后的維護不好,所以我們在/var/lib/zabbix/下創建一個包含MySQL用戶名和密碼的配置文件“.my.cnf”,如下:

user=zabbix
host=127.0.0.1
password='123456'

有了這個文件后的命令變更為

HOME=/var/lib/zabbix/ mysqladmin ping |grep -c alive
1

做完這一步后需要做的就是,將這個監控命令添加到Zabbix Agent中,并與一個Key對應,這樣Zabbox Server就能通過這個Key獲取MySQL的狀態了。我們使用mysql.ping作為MySQL狀態的Key。

首先在去除/etc/zabbix/zabbix_agentd.conf中

“Include=/etc/zabbix_agentd.d/” 這一行的注釋符。

其次,在/etc/zabbix/zabbix_agentd.d/目錄下創建userparameter_mysql.conf文件。在文件中添加如下命令:

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive

使用下面的命令測試是否正常工作。

# /usr/sbin/zabbix_agentd -t mysql.ping
mysql.ping                                    [t|1]
其他性能指標
1.添加userparameter_mysql
vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

####監控mysql性能的腳本

UserParameter=mysql.status[*],/etc/zabbix/zabbix_agentd.d/check_mysql.sh $1

#####mysql版本

UserParameter=mysql.version,mysql -V
2.check_mysql.sh
#!/bin/bash
# -------------------------------------------------------------------------------
# FileName: check_mysql.sh
# Revision: 1.0
# -------------------------------------------------------------------------------
# Copyright:
# License: GPL

# 用戶名
MYSQL_USER='zabbix'

# 密碼
MYSQL_PWD='zabbix@123'

# 主機地址/IP
MYSQL_HOST='ip'

# 端口
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 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`
echo $result
;;
Slow_queries)
result=`${MYSQL_CONN} status  2>/dev/null  |cut -f5 -d":"|cut -f1 -d"O"`
echo $result
;;
Com_select)
result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Com_select"|cut -d"|" -f3`
echo $result
;;
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"`
echo $result
;;
Com_insert)
result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_insert"|cut -d"|" -f3`
echo $result
;;
Com_delete)
result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_delete"|cut -d"|" -f3`
echo $result
;;
Com_commit)
result=`${MYSQL_CONN} extended-status   2>/dev/null  |grep -w "Com_commit"|cut -d"|" -f3`
echo $result
;;
Bytes_sent)
result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Bytes_sent" |cut -d"|" -f3`
echo $result
;;
Bytes_received)
result=`${MYSQL_CONN} extended-status  2>/dev/null  |grep -w "Bytes_received" |cut -d"|" -f3`
echo $result
;;
Com_begin)
result=`${MYSQL_CONN} extended-status  2>/dev/null  |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
3.授權:
chmod +x  /etc/zabbix/zabbix_agentd.d/check_mysql.sh

Chown zabbix.zabbix  /etc/zabbix/zabbix_agentd.d/check_mysql.sh
4. zabbix_agent上測試:

zabbix_agentd -t mysql.ping

使用zabbix怎么對mysql進行監控

5.Zabbix_server測試

zabbix_get -s ip -P 端口 -k mysql.ping

使用zabbix怎么對mysql進行監控

5、在web端進行配置

**創建主機 **

使用zabbix怎么對mysql進行監控
使用zabbix怎么對mysql進行監控
關聯模板

使用zabbix怎么對mysql進行監控

創建監控項

使用zabbix怎么對mysql進行監控

創建圖形

使用zabbix怎么對mysql進行監控
查看監控圖像

使用zabbix怎么對mysql進行監控

其他監控項以此配置完成

6、zabbix自帶mysql監控項

version:數據庫版本
key_buffer_size:myisam的索引buffer大小
sort_buffer_size:會話的排序空間(每個線程會申請一個)
join_buffer_size:這是為鏈接操作分配的最小緩存大小,這些連接使用普通索引掃描、范圍掃描、或者連接不適用索引
max_connections:最大允許同時連接的數量
max_connect_errors:允許一個主機最多的錯誤鏈接次數,如果超過了就會拒絕之后鏈接(默認100)。可以使用flush hosts命令去解除拒絕
open_files_limits:操作系統允許mysql打開的文件數量,可以通過opened_tables狀態確定是否需要增大table_open_cache,如果opened_tables比較大且一直還在增大說明需要增大table_open_cache
max-heap_tables_size:建立的內存表的最大大小(默認16M)這個參數和tmp_table_size一起限制內部臨時表的最大值(取這兩個參數的小的一個),如果超過限制,則表會變為innodb或myisam引擎,(5.7.5之前是默認是myisam,5.7.6開始是innodb,可以通過internal_tmp_disk_storage_engine參數調整)。
max_allowed_packet:一個包的最大大小
##########GET INNODB INFO
#INNODB variables
innodb_version:
innodb_buffer_pool_instances:將innodb緩沖池分為指定的多個(默認為1)
innodb_buffer_pool_size:innodb緩沖池大小、5.7.5引入了innodb_buffer_pool_chunk_size,
innodb_doublewrite:是否開啟doublewrite(默認開啟)
innodb_read_io_threads:IO讀線程的數量
innodb_write_io_threads:IO寫線程的數量
########innodb status
innodb_buffer_pool_pages_total:innodb緩沖池頁的數量、大小等于innodb_buffer_pool_size/(16*1024)
innodb_buffer_pool_pages_data:innodb緩沖池中包含數據的頁的數量
########## GET MYSQL HITRATE
1、查詢緩存命中率
如果Qcache_hits+Com_select<>0則為 Qcache_hits/(Qcache_hits+Com_select),否則為0

2、線程緩存命中率
如果Connections<>0,則為1-Threads_created/Connections,否則為0

3、myisam鍵緩存命中率
如果Key_read_requests<>0,則為1-Key_reads/Key_read_requests,否則為0

4、myisam鍵緩存寫命中率
如果Key_write_requests<>0,則為1-Key_writes/Key_write_requests,否則為0

5、鍵塊使用率
如果Key_blocks_used+Key_blocks_unused<>0,則Key_blocks_used/(Key_blocks_used+Key_blocks_unused),否則為0

6、創建磁盤存儲的臨時表比率
如果Created_tmp_disk_tables+Created_tmp_tables<>0,則Created_tmp_disk_tables/(Created_tmp_disk_tables+Created_tmp_tables),否則為0

7、連接使用率
如果max_connections<>0,則threads_connected/max_connections,否則為0

8、打開文件比率
如果open_files_limit<>0,則open_files/open_files_limit,否則為0

9、表緩存使用率
如果table_open_cache<>0,則open_tables/table_open_cache,否則為0

看完上述內容,你們對使用zabbix怎么對mysql進行監控有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南投市| 富裕县| 贞丰县| 沈阳市| 富锦市| 广东省| 磐安县| 沽源县| 临夏县| 东台市| 久治县| 内黄县| 麦盖提县| 揭西县| 涿州市| 镇宁| 定南县| 尉犁县| 大悟县| 哈密市| 大兴区| 图们市| 萨迦县| 科技| 阿荣旗| 南靖县| 阿尔山市| 缙云县| 三门县| 青浦区| 福鼎市| 滨州市| 洞口县| 界首市| 类乌齐县| 阿拉尔市| 广南县| 抚远县| 石屏县| 惠东县| 哈巴河县|