Zabbix 監控 Mysql 狀態


簡介:mysql

如何使用 Zabbix 來監控 Mysql 狀態 ?正則表達式

Zabbix 有自帶監控 Mysql 的模板,可是卻不能直接使用.. 須要咱們根據模板提供的 Key 本身寫腳本獲取數據sql

一、查看都有哪些 Keyshell

> Configuration -> Templatesvim

## 在此模板頁中,能夠看到 Template App MySQL 模板中有 14 個 Items ,咱們須要本身寫腳本獲取這 14 個值bash

## 分別是:Com_select、Com_insert 、Com_update 、Com_delete 、Com_begin 、Com_commit 、Com_rollback
                 Questions 、Slow_queries 、Bytes_received 、Bytes_sent 、Ping 、Uptime 、Versionide

二、根據 Key 編寫 Shell 腳本測試

shell > mysql -uroot -p -e "grant usage on *.* to zabbix@localhost identified by 'zabbix_password';" # 創建監控用戶

shell > vim /script/mysql_status.sh

#!/bin/bash

User='you_user'
Password='you_password'

Mysql='/usr/local/mysql/bin/mysql'
Mysqladmin='/usr/local/mysql/bin/mysqladmin'

command(){
  $Mysql -u $User -p$Password -e "show global status" | awk '$1 ~ /'"$1"'$/ {print $2}'
}

case $1 in
  Com_select)
    command $1 ;;
  Com_insert)
    command $1 ;;
  Com_update)
    command $1 ;;
  Com_delete)
    command $1 ;;
  Com_begin)
    command $1 ;;
  Com_commit)
    command $1 ;;
  Com_rollback)
    command $1 ;;
  Questions)
    command $1 ;;
  Slow_queries)
    command $1 ;;
  Bytes_received)
    command $1 ;;
  Bytes_sent)
    command $1 ;;
  Uptime)
    command $1 ;;
  Version)
    $Mysql -V | awk -F '[ ,]' '{print $6}' ;;
  Ping)
    $Mysqladmin -u$User -p$Password ping | wc -l ;;
  *)
    echo "Usage: $0 { Com_select|Com_insert|Com_update|Com_delete|Com_begin|Com_commit|Com_rollback|Questions|Slow_queries|Bytes_received|Bytes_sent|Ping|Uptime|Version }" ;;
esac

## 關於兩個命令路徑,我使用 `which mysql` 這樣的操做沒有成功
## 寫完先測試一下,能不能獲取各 Key 的值spa

shell > chmod a+x /script/mysql_status.sh

三、添加自定義 key 配置文件rest

shell > vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_status.conf
# Mysql_status
UserParameter=mysql.status[*],/script/mysql_status.sh $1
UserParameter=mysql.ping,/script/mysql_status.sh Ping
UserParameter=mysql.version,/script/mysql_status.sh Version

## 注意模板裏 Key 的取值方式
## 也能夠直接加到 /usr/local/zabbix/etc/zabbix_agentd.conf 末尾

shell > vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

UnsafeUserParameters=1 # 容許自定義 Key

## 添加上面配置

四、重啓 Zabbix_agentd

shell > service zabbix_agentd restart

## 注意,上面所有操做都是在被監控端

五、Zabbix 服務端測試可否拿到 Key

shell > /usr/local/zabbix/bin/zabbix_get -s 14.25.97.14 -k mysql.ping
1

## 能夠獲取到 key 的值,說明配置沒有問題了
## 被監控端記得要開啓 10050 端口

六、Zabbix 監控 Mysql 狀態

## 接下來把 Zabbix 自帶的監控模板連接到主機便可
## 過上一小會,就能看到效果了,version 可能比較時間長點,由於模板裏設的時間範圍是 3600 秒,ping 會誤報一次 Mysql Down ,由於只前是沒有值的。

七、爲這些監控項添加 Graph

## 自帶的模板已經作好了兩張圖,因此直接使用便可,我這裏是空載,因此啥也看不出來..

八、測試 Trigger 告警

## 很遺憾,自帶的模板中也已經定義好了 Trigger 告警條件,來瞅瞅

> Configuration -> Templates -> Trigger

Severity :   ## 事件告警級別

    Not classified 未知安裝等級,灰色

    Information 通常信息,亮綠

    Warning 警告信息,黃色

    Average 通常故障,橙色

    High 高級別故障,紅色

    Disaster 致命故障,亮紅

Name :   ## Trigger 名稱

Expression :   ## 對觸發器狀態計算的邏輯正則表達式

Status :        ## 觸發器開關

## 怎麼設置觸發告警條件下次寫 ^_^

## 好了,若是 Mysql 處於 down 狀態時會觸發條件,可是,觸發以後呢 ?( 固然是要發送事件通知啦,或執行遠程命令 )

九、先把這個放一放,去搞別的!( 監控已經完成,後面的部分放別的地方繼續 )

相關文章
相關標籤/搜索