這裡寫目錄标題
- 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:
Server2:
Server3:
然後打開浏覽器: http://172.25.21.1/zabbix
會發現監控中有警告,這裡的zabbix-server,server2,server3都進行了重新開機
根據顔色來看這個是警告
現在要使用zabbix來監控mysql
這裡監控本機的mysql
建立一個目錄存放mysql使用者的帳号密碼
mkdir /var/lib/zabbix
cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
将mysql使用者密碼配置在檔案中(安全)
在這個檔案中我們可以看到一些mysql監控的資訊:
Mysql預設使用mysqladmin指令來檢測mysql是否存活
mysqladmin -uzabbix -predhat -h 127.0.0.1 ping | grep -c alive
隻要這個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自帶的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/
先檢視一下這個xml檔案(就是正常的xml檔案格式)
然後看一下這個mysql模版的conf檔案内容
将conf檔案複制到到/etc/zabbix/zabbix_agentd.d/
可以看到這裡190個對于mysql的監控項(這個第三方模版提供了190個監控項)
然後将這個conf檔案複制到/etc/zabbix/zabbix_agentd.d/下:
然後進到/var/lib/zabbix/percona/scripts下,
編輯ss_get_mysql_stats.php.cnf
我們在這個cnf檔案中寫一個php頁面
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';
?>
然後重新開機zabbix-server主機上的zabbix-agent
測試腳本
這時運作腳本擷取資料:
我們要擷取gk(key),來擷取gk的值
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gk
Key有值的話說明正常
我們可以檢視所有的key
這時我們再在浏覽器上可以看到沒有警告了
導入模版:
選擇導入:
我們把模版放在真機桌面
因為使用的是真機的浏覽器,是以導入時從真機的檔案中找模版;
選擇後點選open
選擇聚合圖形,我們可以多組圖形顯示;
然後選擇導入
導入成功後
就可以在模版中看到我們導入的percona模版:
我們使用Ctrl + f在三頁模版中搜尋percona
然後在第三頁中找到了我們導入的第三方子產品:
給zabbix-server主機添加導入的模版
我們選擇zabbix-server主機,給我們的zabbix-server主機添加新導入的模版:
測試zabbix對mysql的監視
現在的監控中是沒有資料的
我們在mysql中輸入一些資料,
mysql -uroot -predhat
show databases;
use mysql;
show tables;
select * from user;
這個監控不可能實時上傳資料,
我們需要過好長一會兒才能看到圖像;
随便選擇一個percona的圖像:
我們這裡看的是InnoDB Buffer Pool:
配置zabbix自動發送報警郵件
我們運維人員不可能把電腦時時刻刻抱在身邊,
如果我們管理的伺服器出現了問題,但是我們沒有在伺服器前,
是以這裡就使用zabbix結合QQ郵箱,
如果zabbix監控的伺服器出現問題,就給我們發郵件,
在公司中郵件使用的比較多,
各個部門之間,或者跟上司之間發郵件,
具體操作
點選管理–> 報警媒介類型
可以看到這裡支援Email和SMS
我們将SMS先禁用,隻留一個Email
是以我們就要配置我們的虛拟機上網:
然後我們給server1安裝一個郵件mailx軟體發郵件
檢視郵件服務的端口是否開啟:
對mail進行測試:
按Ctrl + d結束
mailq #檢視郵件隊列中是否有我們剛才發的内容(因為已經發出去了,是以是空的)
我們檢視郵件:
可以看到我們這裡的域名是[email protected]
我們等會兒用的是zabbix使用者,
是以在QQ郵箱中添加的是[email protected]
然後進到我們的zabbix監控界面;
點選Email
然後點選配置–>動作
右上角選擇觸發器:
點選該處使其變為啟用
檢視
這時我們的[email protected]郵箱位址就可以在網際網路上進行通路了
然後我們設定我們的QQ郵箱:
登陸進QQ郵箱(https加密的)
我使用二維碼登陸的(這樣就防止了釣魚網站)
我們來設定白名單
點開如下操作:
在手機上的QQ郵箱設定也可以,
點選右上角的加号 +
然後選擇設定
然後選擇白名單
然後進到QQ郵箱裡面設定(跟上面操作一樣);
[email protected]
Zabbix: 使用者
Server1:主機名字
白名單的作用:
隻要zabbix-server檢測我們添加進白名單主機的後端的服務有問題,
就會給我們發出郵件報警
進行測試,我們将server3的agent停掉
然後可以看到server3主機下線了(變紅了)
點選左上角的zabbix标志進行監控:
我們然後我們就可以在監控頁面看到報警資訊:
如果這裡沒有發送成功(1.檢查網絡2.滑鼠放在動作下面就會出來出錯的具體情況)
如果成功如下:
這時我們再檢視我們的郵箱的收鍵箱
檢視郵件日志
在server1上我們可以檢視郵件日志
vim /var/log/maillog
可以看到我們給自己的QQ郵箱發送郵件的日志記錄