Zabbix監控MySQL數據庫實戰

zabbix監控mysql的方式

只是安裝agent
啟用模板監控
啟用自定義腳本的模板監控
使用zabbix模版及結合shell腳本監控mysql

創建mysql的zabbix授權用戶

mysql> grant all PRIVILEGES on *.* to zabbix@'localhost' identified by 'zabbix';?

###創建一個有權限的訪問用戶lqb密碼設置zabbix

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

Query OK, 0 rows affected (0.01 sec)

編寫腳本獲取mysql性能指標數據:
?
腳本權限:
?
-rwxr-xr-x. 1 root root 2695 Jun ?6 13:39 chk_mysql.sh
腳本權限:

-rwxr-xr-x. 1 root root 2695 Jun ?6 13:39 chk_mysql.sh

vim chk_mysql.sh
?
# 用戶名
#MYSQL_USER='zabbix'
?
# 密碼
#MYSQL_PWD='zabbix' #在腳本中輸入密碼mysql會提示安全告警信息#Warning: Using a password on the command line interface can be #insecure,需要將帳號密碼等配置添加到mysql配置文件my.cnf中即可,腳本中#不用輸入賬號密碼
?
# 主機地址/IP
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}"
?
# 參數是否正確
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

以下幾個參數對Myisam 和Innodb 存儲引擎都計數:
1. Com_select 執行select 操作的次數,一次查詢只累加1;
2. Com_insert 執行insert 操作的次數,對于批量插入的insert 操作,只累加一次;
3. Com_update 執行update 操作的次數;
4. Com_delete 執行delete 操作的次數;
以下幾個參數是針對Innodb 存儲引擎計數的:
1. Innodb_rows_read select 查詢返回的行數;
2. Innodb_rows_inserted 執行Insert 操作插入的行數;
3. Innodb_rows_updated 執行update 操作更新的行數;
4. Innodb_rows_deleted 執行delete 操作刪除的行數;
通過以上幾個參數,可以很容易的了解當前數據庫的應用是以插入更新為主還是以查詢操作為主,以及各種類型的SQL 大致的執行比例是多少。對于更新操作的計數,是對執行次數的計數,不論提交還是回滾都會累加。對于事務型的應用,通過Com_commit 和Com_rollback 可以了解事務提交和回滾的情況,對于回滾操作非常頻繁的數據庫,可能應用編寫存在問題。
另外還有幾個參數可以了解數據庫的基本信息:
1. Connections 試圖連接Mysql 服務器的次數
2. Uptime 服務器工作時間
3. Slow_queries 慢查詢的次數

在腳本中輸入密碼mysql會提示安全告警信息使zabbix獲取不到正確數據,(Warning: Using a password on the command line interface can be insecure),需要將帳號密碼等配置添加到mysql配置文件my.cnf中即可,腳本中不用輸入賬號密碼,重啟mysql配置生效

vim /etc/my.cnf
[client]
user=zabbix
password=zabbix
[mysqladmin]
host=localhost
user=zabbix
password=zabbix
[client]

user=zabbix

password=zabbix

[mysqladmin]

host=localhost

user=zabbix

password=zabbix

為zabbix_agent添加用戶參數

vim /usr/local/etc/zabbix_agentd.conf
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],/opt/scripts/chk_mysql.sh $1
#UserParameter=mysql.ping,mysqladmin -P3306 -h127.0.0.1 ping | grep -c alive
UserParameter=mysql.ping,sudo netstat -ntpl |grep 3306|grep mysql|wc |awk '{print $1}'

修改/etc/sudoers( chmod +s /bin/netstat也可以,省去了修改/etc/sudoers的麻煩)
#注釋掉此行Defaults ? ?requiretty ??
#在最后加入如下行:
zabbix ALL=(ALL) ? NOPASSWD: ?/bin/netstat
重啟zabbix_agentd

<span style="color:#ff0000">killall zabbix_agentd
systemctl restart zabbix-agent</span>

在server端測試是否能獲取到數據

$ zabbix_get -s10.10.50.50 -k"mysql.status[Com_rollback]"

mysql主從狀態監控

寫一個腳本實現主從監控:

這個腳本主要用于獲取MYSQL主從同步信息;

我們先執行一個命令

mysql -u zabbix -e 'show slave status\G'

我們在輸出的信息中選擇

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

這兩項來監控,我測試了一下,當操作的數據出現異常的時候,Slave_SQL_Running就會變成No,當執行slave stop的時候,兩個都會變成No;

授權:

grant all PRIVILEGES on *.* to zabbix@'localhost' identified by 'zabbix';
?
flush privileges;

編寫主從監控腳本:?

vim mysql_master.sh
#!/bin/bash
mysql -uzabbix -e 'show slave status\G' |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes

為agent添加用戶參數:

vim /usr/local/etc/zabbix_agentd.conf
?
UserParameter=system.mysql,/etc/zabbix/scripts/mysql_master.sh

重啟agent

systemctl restart zabbix-agent

連接模版:

<spanstyle="color:#33cc00">https://download.csdn.net/download/abel_dwh/10510113</span>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37772.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37772.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37772.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

es1.7.2 按照_type先聚合,再按照時間二次聚合

// 設置查詢條件if (this.query ! null) {this.searchbuilder.setQuery(this.query);}TermsBuilder typeAggregation AggregationBuilders.terms("agg_type").field("_type");DateHistogramBuilder dateTermsBuilder AggregationBuilders.dateHistogram(…

[Android] 通過JNI 讓 JAVA 調用 android native 接口

前言&#xff1a; JNI (java native interface) 是一個庫&#xff0c;可以讓 java 代碼和其他語言互動&#xff0c;比如 java 通過 JNI 調用融合了 jni庫的 c/c 代碼&#xff0c;注意&#xff0c;這里要求 c/c代碼中必須通過鏈接 jni 庫并按照 JNI 規范定義一套可供 JAVA 調用…

STM32自帶的DSP庫的濾波初體驗(一)

最近在弄STM32自帶的DSP庫里的濾波&#xff0c;記錄一下&#xff1a; arm_fir_instance_q15 instance_q15_S; #define NUM_TAPS 16 //濾波系數的個數 #define BLOCK_SIZE 32 q15_t firStateF32[BLOCK_SIZE NUM_TAPS]; q15_t Fir_Coeff[NUM_TAPS] {-79, -136, 312, 6…

【02】基礎知識:typescript數據類型

1、布爾類型 boolean let flag: boolean false2、數字類型 number let num: number 6 //十進制 let num2: number 0xf00d //十六進制 let num3: number 0b1010 //二進制 let num4: number 0o744 //八進制3、字符串類型 string 用雙引號&#xff08;“&#xff09;或單引…

MongoDB 簡介

什么是MongoDB ? MongoDB 是由C語言編寫的&#xff0c;是一個基于分布式文件存儲的開源數據庫系統。 在高負載的情況下&#xff0c;添加更多的節點&#xff0c;可以保證服務器性能。 MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。 MongoDB 將數據存儲為一個…

mqttfx連上OneNET生成token時的一大坑,報用戶名或密碼錯誤

整個流程如下連接&#xff1a; MQTT.fx和MQTTX 鏈接ONENET物聯網開發平臺避坑細節干貨。 其中在生成token時&#xff0c;搞了半天在連接后都會報用戶名密碼錯誤 最后發現是格式問題&#xff0c;輸入所有字符后一定要雙擊看是否可以全選中&#xff0c;可以全選中說明字符的格式…

java spring cloud 企業工程管理系統源碼+二次開發+定制化服務 em

Java版工程項目管理系統 Spring CloudSpring BootMybatisVueElementUI前后端分離 功能清單如下&#xff1a; 首頁 工作臺&#xff1a;待辦工作、消息通知、預警信息&#xff0c;點擊可進入相應的列表 項目進度圖表&#xff1a;選擇&#xff08;總體或單個&#xff09;項目顯…

springBoot中service層查詢使用多線程CompletableFuture(有返回值)

重點&#xff1a; 1. 創建線程池 Executor executor Executors.newCachedThreadPool();//保存線程List<CompletableFuture<Void>> futures new ArrayList<>();2.使用 //這里可以是多個看下面代碼是在for中使用的 CompletableFuture<Void> future …

深入解析路由與網絡:網絡的脈絡

目錄 路由 廣域網 公網 外網 局域網 內網 以太網 Wi-Fi CDN IPv4和IPv6 IP地址分類 無類別域間路由&#xff08;CIDR&#xff09; 路由 路由是指在計算機網絡中&#xff0c;將數據包從源地址傳遞到目標地址的過程。在一個復雜的網絡中&#xff0c;數據包需要經過多…

冶金作業VR虛擬仿真廠家

對于高風險行業來說&#xff0c;開展安全教育培訓是企業的重點工作&#xff0c;傳統培訓逐漸跟不上時代變化和工人需求&#xff0c;冶金安全VR模擬仿真培訓系統作為一種新型的教育和培訓工具&#xff0c;借助VR虛擬現實技術為冶金行業的工人提供一個安全、高效的培訓環境。 冶金…

Angular中的管道Pipes

Angular中的管道&#xff08;Pipes&#xff09;是一種強大的工具&#xff0c;它可以處理和轉換數據&#xff0c;然后將其呈現在視圖中。它們可以被用于排序、格式化和過濾數據等任務。在本文中&#xff0c;我們將介紹Angular中的管道以及如何使用它們來簡化開發過程。 管道的基…

Ansible Service模塊,使用 Ansible Service模塊進行服務管理

Ansible 是一種自動化工具&#xff0c;它可以簡化配置管理、應用程序部署和任務自動化等操作。Ansible 的 Service 模塊是其中一個重要的模塊&#xff0c;它提供了管理服務的功能&#xff0c;使得在遠程主機上啟動、停止、重啟和重新加載服務變得簡單和可靠。本文將介紹 Ansibl…

大疆秋招指南,網申測評和面試攻略

大疆秋招內容簡介 這是一個非常卷的時代&#xff0c;一到畢業季&#xff0c;各種各樣規模不一的公司&#xff0c;紛紛向社會招聘&#xff0c;競爭實力強&#xff0c;知名度越高的企業&#xff0c;往往越能得到能力出眾的人才的青睞&#xff0c;也正是在一批批新血液的注入下&a…

戶外組網擺脫布線困擾,工業5G網關實現無人值守、遠程實時監控

在物聯網通信技術發達的2023&#xff0c;網絡覆蓋對所及之處的全面覆蓋&#xff0c;科技發展的促使下很多高危戶外場景也在思考如何利用無線技術提高人員安全及現場無人化管理。 煤礦是我們國家不可缺少的重要能源&#xff0c;其開采過程的危險系數也是眾所皆知的&#xff0c;…

為什么爬蟲要用高匿代理IP?高匿代理IP有什么優點

只要搜代理IP&#xff0c;度娘就能給我們跳出很多品牌的推廣&#xff0c;比如我們青果網路的。 正如你所看到的&#xff0c;我們廠商很多宣傳用詞都會用到高匿這2字。 這是為什么呢&#xff1f;高匿IP有那么重要嗎&#xff1f; 這就需要我們從HTTP代理應用最多最廣的&#xf…

云上社群學習系統部分接口設計詳解

目錄 一、項目簡介 二、技術選型 三、數據庫設計 四、接口設計及思考 回復帖子部分 4.1 回復帖子 4.1.1.1 實現邏輯 4.1.1.2創建Service接? 4.1.1.3 實現Service接? 4.1.1.4 實現Controller 4.1.1.5 測試接口 4.1.1.6 實現前端頁面 4.2 點贊帖子 4.2.1.1 參數要求…

探索前端動畫之CSS魔法

引言 在現代網頁設計中&#xff0c;動畫已經成為了吸引用戶注意力、提升用戶體驗的重要手段之一。而在前端開發中&#xff0c;CSS動畫是一種常見且強大的實現方式。本篇博客將帶你深入探索前端動畫中的CSS魔法&#xff0c;通過清晰的思路和完整的示例代碼&#xff0c;幫助你掌…

tools/packtool/dragon: 沒有那個文件或目錄 明明有這個文件

tools/packtool/dragon: 沒有那個文件或目錄 明明有這個文件 在編譯一個工程時碰到這個問題&#xff0c;重裝虛擬機&#xff0c;更換ubuntu系統版本都沒有解決&#xff0c;看到網上的文章解決了。 ubuntu中執行可執行文件時報錯“沒有那個文件或目錄”的解決辦法&#xff08;…

Storm學習之使用官方Docker鏡像快速搭建Storm運行環境

文章目錄 0.前言搭建完的效果 1.教程1.1.docker 安裝 zookeeper1.2. 安裝 storm nimbus1.3.docker 安裝 supervisor1.4.docker 安裝 storm-ui1.5.查看已經啟動的容器1.6.提交topology到 storm集群 2.總結3.參考文檔 0.前言 Apache Storm 官方也出了Docker 鏡像 https://hub.do…

lua使用心得

lua語言的一些注意事項 在控制結構的條件中除了false和nil為假&#xff0c;其他值都為真。所以Lua認為0和空串都是真。lua5.3之前的版本只支持浮點數&#xff0c;lua5.3才引入了對整數的支持&#xff0c;/僅支持浮點數除法&#xff0c;要實現C里的整除效果必須使用雙斜杠//超過…