天天看點

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

這裡寫目錄标題

  • zabbix監控mysq且配置自動發送報警郵件
    • zabbix監控mysql
      • 實驗環境
      • 建立一個目錄存放mysql使用者的帳号密碼
      • 将mysql使用者密碼配置在檔案中(安全)
      • 安裝percona-zabbix
      • 将conf檔案複制到到/etc/zabbix/zabbix_agentd.d/
      • 編輯ss_get_mysql_stats.php.cnf
      • 然後重新開機zabbix-server主機上的zabbix-agent
      • 測試腳本
      • 導入模版:
      • 給zabbix-server主機添加導入的模版
      • 測試zabbix對mysql的監視
    • 配置zabbix自動發送報警郵件
      • 具體操作
      • 進行測試,我們将server3的agent停掉
      • 檢視郵件日志

zabbix監控mysq且配置自動發送報警郵件

zabbix監控mysql

實驗環境

開啟server1的zabbix-server,zabbix-agent,mariadb,httpd

開啟server2的httpd和zabbix-agent

開啟server3的nginx,zabbix-agent

Server1:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

Server2:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

Server3:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

然後打開浏覽器: http://172.25.21.1/zabbix

會發現監控中有警告,這裡的zabbix-server,server2,server3都進行了重新開機

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

根據顔色來看這個是警告

現在要使用zabbix來監控mysql

這裡監控本機的mysql

建立一個目錄存放mysql使用者的帳号密碼

mkdir /var/lib/zabbix
cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
           
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

将mysql使用者密碼配置在檔案中(安全)

在這個檔案中我們可以看到一些mysql監控的資訊:

Mysql預設使用mysqladmin指令來檢測mysql是否存活

mysqladmin -uzabbix -predhat -h 127.0.0.1 ping | grep -c alive

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

隻要這個ping傳回的alive資訊是1,就表示mysql正常,alive為0說明mysql挂了

我們可以通過這個參數來判斷mysql否正常,

Mysql的帳号密碼寫在指令行裡不安全,是以要把帳号和密碼寫到檔案(隐藏檔案)裡面

我們把檔案寫在剛建立的/var/lib/zabbix目錄

cd /var/lib/zabbix
vim .my.cnf
 
[mysql]
host=localhost
user=root
password=redhat
socket=/var/lib/mysql/mysql.sock

[mysqladmin]
host=localhost
user=root
password=redhat
socket=/var/lib/mysql/mysql.sock
           
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

這時候我們不使用zabbix自帶的mysql模版,

因為zabbix自帶的mysql模版的資訊太少了,

安裝percona-zabbix

我們這裡采用percona-zabbix模版,這時zabbix的一個外部的腳本模版(其他人二次開發的API)

Zabbix是支援二次開發的API,

rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
cd /var/lib/zabbix/percona/templates/
           
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

先檢視一下這個xml檔案(就是正常的xml檔案格式)

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

然後看一下這個mysql模版的conf檔案内容

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

将conf檔案複制到到/etc/zabbix/zabbix_agentd.d/

可以看到這裡190個對于mysql的監控項(這個第三方模版提供了190個監控項)

然後将這個conf檔案複制到/etc/zabbix/zabbix_agentd.d/下:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

然後進到/var/lib/zabbix/percona/scripts下,

編輯ss_get_mysql_stats.php.cnf

我們在這個cnf檔案中寫一個php頁面

<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';
?>
           

然後重新開機zabbix-server主機上的zabbix-agent

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

測試腳本

這時運作腳本擷取資料:

我們要擷取gk(key),來擷取gk的值

/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gk

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

Key有值的話說明正常

我們可以檢視所有的key

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

這時我們再在浏覽器上可以看到沒有警告了

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

導入模版:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

選擇導入:

我們把模版放在真機桌面

因為使用的是真機的浏覽器,是以導入時從真機的檔案中找模版;

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

選擇後點選open

選擇聚合圖形,我們可以多組圖形顯示;

然後選擇導入

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

導入成功後

就可以在模版中看到我們導入的percona模版:

我們使用Ctrl + f在三頁模版中搜尋percona

然後在第三頁中找到了我們導入的第三方子產品:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

給zabbix-server主機添加導入的模版

我們選擇zabbix-server主機,給我們的zabbix-server主機添加新導入的模版:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

測試zabbix對mysql的監視

現在的監控中是沒有資料的

我們在mysql中輸入一些資料,

mysql -uroot -predhat
show databases;
use mysql;
show tables;
select * from user;
           
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

這個監控不可能實時上傳資料,

我們需要過好長一會兒才能看到圖像;

随便選擇一個percona的圖像:

我們這裡看的是InnoDB Buffer Pool:

配置zabbix自動發送報警郵件

我們運維人員不可能把電腦時時刻刻抱在身邊,

如果我們管理的伺服器出現了問題,但是我們沒有在伺服器前,

是以這裡就使用zabbix結合QQ郵箱,

如果zabbix監控的伺服器出現問題,就給我們發郵件,

在公司中郵件使用的比較多,

各個部門之間,或者跟上司之間發郵件,

具體操作

點選管理–> 報警媒介類型

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

可以看到這裡支援Email和SMS

我們将SMS先禁用,隻留一個Email

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

是以我們就要配置我們的虛拟機上網:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

然後我們給server1安裝一個郵件mailx軟體發郵件

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

檢視郵件服務的端口是否開啟:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

對mail進行測試:

按Ctrl + d結束

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

mailq #檢視郵件隊列中是否有我們剛才發的内容(因為已經發出去了,是以是空的)

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

我們檢視郵件:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

可以看到我們這裡的域名是[email protected]

我們等會兒用的是zabbix使用者,

是以在QQ郵箱中添加的是[email protected]

然後進到我們的zabbix監控界面;

點選Email

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

然後點選配置–>動作

右上角選擇觸發器:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

點選該處使其變為啟用

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

檢視

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

這時我們的[email protected]郵箱位址就可以在網際網路上進行通路了

然後我們設定我們的QQ郵箱:

登陸進QQ郵箱(https加密的)

我使用二維碼登陸的(這樣就防止了釣魚網站)

我們來設定白名單

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

點開如下操作:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

在手機上的QQ郵箱設定也可以,

點選右上角的加号 +

然後選擇設定

然後選擇白名單

然後進到QQ郵箱裡面設定(跟上面操作一樣);

[email protected]

Zabbix: 使用者

Server1:主機名字

白名單的作用:

隻要zabbix-server檢測我們添加進白名單主機的後端的服務有問題,

就會給我們發出郵件報警

進行測試,我們将server3的agent停掉

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

然後可以看到server3主機下線了(變紅了)

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

點選左上角的zabbix标志進行監控:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

我們然後我們就可以在監控頁面看到報警資訊:

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

如果這裡沒有發送成功(1.檢查網絡2.滑鼠放在動作下面就會出來出錯的具體情況)

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

如果成功如下:

這時我們再檢視我們的郵箱的收鍵箱

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

檢視郵件日志

在server1上我們可以檢視郵件日志

vim /var/log/maillog

zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件
zabbix監控mysq且配置自動發送報警郵件zabbix監控mysq且配置自動發送報警郵件

可以看到我們給自己的QQ郵箱發送郵件的日志記錄