使用 zabbix 自動發現監控 MySQL

来源:http://www.cnblogs.com/arstercz/archive/2017/05/31/6925617.html
-Advertisement-
Play Games

介紹 使用 zabbix 的 low-level 自動發現功能完成單主機多埠的監控, 詳見low_level_discovery, 整體上監控類似 percona 的 zabbix 監控插件, 不過使用 mymonitor.pl 替換了腳本 ss_get_mysql_stats.php, 而且配置 ...


介紹

使用 zabbix 的 low-level 自動發現功能完成單主機多埠的監控, 詳見low_level_discovery, 整體上監控類似 percona 的 zabbix 監控插件, 不過使用 mymonitor.pl 替換了腳本 ss_get_mysql_stats.php, 而且配置有點不同.

具體代碼及配置詳見: zabbix_mysql

1. 結構說明:

zabbix_mysql/
|-- README.md
|-- bin
|   |-- get_mysql_stats_wrapper.sh              # 對 mymonitor.pl 運行結果的一個封裝腳本, 預設 5 分鐘運行一次
|   |-- mymonitor.pl                            # 等同 ss_get_mysql_stats.php 腳本
|   `-- mysql_port.pl                           # 自動發現 MySQL 埠的腳本, 返回 json 格式的輸出
|-- install.sh                                  # 安裝腳本
`-- templates
    |-- userparameter_discovery_mysql.conf      # zabbix_agent 配置參數
    `-- zabbix_mysql_multiport.xml              # zabbix_server 端模板

mymonitor.pl 腳本依賴以下模塊:

perl-DBI
perl-DBD-mysql

 

監控需要的許可權包括: PROCESS, SUPER, REPLICATION SLAVE, 在 mysql_port.pl 腳本中通過 netstat 命令獲取運行 MySQL 的埠, 腳本以 zabbix 用戶(或普通用戶)啟動, 為避免許可權問題, 腳本 install.sh 預設執行 chmod +s /bin/netstat 命令.

mymonitor.pl 腳本預設以 monitor/monitor 用戶及口令的方式連接 MySQL 獲取狀態, 可以在腳本的初始處修改預設密碼, 或者在運行時指定--user--password相關參數信息, 也可以在 /home/mysql/.my.cnf 指定用戶信息, 詳細可參見 perldoc mymonitor.pl

get_mysql_stats_wrapper.sh 腳本預設讀取 mymonitor.pl 生成的文件以響應 zabbix 的請求, 預設5分鐘一次; 同時因為需要頻繁(預設1分鐘)檢測 slave 運行狀態, 需要提供 MySQL 登錄信息, 以便 slave 的檢測.

2. 安裝說明

在 agent 端操作:

# git clone https://github.com/chenzhe07/zabbix_mysql.git /usr/local/zabbix_mysql
# bash /usr/local/zabbix_mysql/install.sh 192.168.1.2

 

192.168.1.2 為內網 ip 地址, 這裡考慮到可能存在多個內網ip, 所以沒有自動獲取, 需要用戶手動添加.

在 server 端操作:

import templates/zabbix_mysql_multiport.xml using Zabbix UI(Configuration -> Templates -> Import), 
and Create/edit hosts by assigning them “MySQL” group and linking the template “MySQL_zabbix” (Templates tab).

 

導入模板, 並將模板加到待監控的機器里.

3. 測試

# perl  mymonitor.pl --host 10.0.0.10 --port 3300 --items hv
hv:36968
# perl  mymonitor.pl --host 10.0.0.10 --port 3300 --items kx
kx:1070879944

# php ss_get_mysql_stats.php --host 10.0.0.10 --port 3300 --items hv
hv:36968
# php ss_get_mysql_stats.php --host 10.0.0.10 --port 3300 --items kx 
kx:1070911408

# zabbix_get -s 10.0.0.10 -p 10050 -k "MySQL.Bytes-received[3300]"
472339244134

 

其它特性

較新的版本增加了 innodb 事務, 鎖, 長語句運行檢測:

item                       throttle
max_duration             if > 100s, then trigger an alarm
waiter_count             if > 10, then trigger an alarm
idle_blocker_duration    if > 200s, then trigger an alarm

如下測試:

# zabbix_get -s cz-test2 -p 10050 -k "MySQL.max_duration[3301]"
max_duration:longest transaction active seconds: max time: 18, thread_id: 4838781, user: root@10.0.21.5:59980

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • http://blog.csdn.net/chaozhung_no_l/article/details/49929177 轉自這位大神的博客,感謝這位大神,幫了大忙,謝謝!! ...
  • 1. iOS兩種自適應佈局方式:(修正說明:) -AutoLayout(自動佈局) + SizeClasses(尺寸類別) -Autoresizing (自動調整尺寸/彈簧式調整尺寸) 前者 AutoLayout 是從iOS6出現,通過創建視圖約束實現自適應,SizeClasses是iOS8 開始出 ...
  • 一、基本介紹 WebView是一個顯示頁面的組件。 二、基本使用 訪問網頁需要網路,所以在AndroidManifest.xml文件中添加網路許可權。 可以使用Intent跳轉網頁,使用如下: 使用Intent跳轉網頁,會調用本地的瀏覽器來查看網頁信息。 在onCreate()方法中將contentV ...
  • FragmentActivity + Fragment(通過hide和show來顯示fragment) + Fragment(通過viewpager來顯示fragment) 在Activity中 在佈局中 然後在fragment中會添加一個viewpager來再添加幾個fragment ...
  • 本節引言: 本節帶來的是Android基本UI控制項中的第十個:ScrollView(滾動條),或者我們應該叫他 豎直滾動條,對應的另外一個水平方向上的滾動條:HorizontalScrollView,先來一發官方文檔 的鏈接:ScrollView,我們可以看到類的結構如下: 嘿嘿,原來是一個Fram ...
  • /Users/longyongping/Desktop/WX20170531-114430.png ...
  • 說到Picasso,相信Android開發人員絕不陌生,它是Square公司開發的一款圖片載入神器。使用過它的coder絕對是愛不釋手:對它本身而言,輕量安全,有效載入圖片並防止OOM;對我們開發者來說,簡單方便,一行代碼搞定圖片載入。因此它備受Android開發人員的鐘愛,那麼今天我們就從源碼的角... ...
  • K-Means演算法是一種基於距離的聚類演算法,採用迭代的方法,計算出K個聚類中心,把若幹個點聚成K類。 用Spark實現K-Means演算法,首先修改pom文件,引入機器學習MLlib包: 代碼: 使用textFile()方法裝載數據集,獲得RDD,再使用KMeans.train()方法根據RDD、K值 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...