久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

使用zabbix怎么對mysql進行監控

153次閱讀
沒有評論

共計 5707 個字符,預計需要花費 15 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

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

zabbix 監控 mysql1、監控規劃

在創建監控項之前要盡量考慮清楚要監控什么,怎么監控,監控數據如何存儲,監控數據如何展現,如何處理報警等。要進行監控的系統規劃需要對 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! 
#  獲取數據
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 進行監控有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計5707字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 和田市| 嘉善县| 蒲江县| 深州市| 滁州市| 甘德县| 玛曲县| 延长县| 巧家县| 博爱县| 永顺县| 长葛市| 乐业县| 内乡县| 响水县| 渭南市| 青神县| 永清县| 乾安县| 德昌县| 棋牌| 襄汾县| 兖州市| 富平县| 巫溪县| 昭觉县| 新竹县| 柯坪县| 凤山市| 新源县| 深泽县| 云林县| 仪陇县| 淅川县| 东乡| 沁阳市| 余庆县| 辽宁省| 毕节市| 乐东| 德清县|