- 從 http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/ 下載下傳需要的安裝包
- 實驗環境
-
Zabbix-Server 192.168.2.3 CentOS 7.6 主伺服器
Zabbix-Proxy 192.168.2.4 CentOS 7.6 代理伺服器
Zabbix-Agent 192.168.2.5 CentOS 7.6 Web 伺服器
Zabbix-Agent 192.168.2.6 CentOS 7.6 Mysql 伺服器
- 首先在 192.168.2.5 上 配置 Zabbix 監控 Apache 服務
-
yum -y install httpd
啟用 Apache 伺服器狀态,開啟 Apache 的 server-status
- vim /etc/httpd/conf/httpd.conf
- 在檔案最後插入以下内容
<location /server-status>
SetHandler server-status
Order allow,deny
Allow from 127.0.0.1 192.168.2.0/24
</location>
注:允許通路 status 頁面的主機,在生産環境中,可以直接固定為 zabbix-server 端的 IP 位址或者 zabbix 代理位址。
- zabbix 關聯 apache 模闆
- 配置 ----- 主機 ----- 模闆
- 如果長時間擷取不到資料,重新開機 proxy 服務
- systemctl restart zabbix-proxy
- 配置 Zabbix 監控 MySQL
-
mysql 資料庫配置監控使用者
Zabbix 預設提供了 MySQL 的監控模闆,我們直接使用即可。
-
配置 Zabbix 監控 mysql 服務的過程:
1、配置 mysql 性能監控頁面。建立一個 mysql 使用者,讓 agent 使用此使用者來獲得 mysql 資料
2、在 zabbix 平台上,給被監控主機上關聯 mysql 監控模闆
3、檢視最新監控資料資料庫使用者授權
- 在 192.168.2.6 配置資料庫使用者授權
- 注:usage 權限:該權限隻能用于資料庫登入,不能執行任何操作。
- 拷貝監控配置檔案模闆
- cp /usr/share/doc/zabbix-agent-5.0.13/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
- 注:這裡記錄了,zabbix-agent 要對 mysql 監控的資料。 模闆檔案中提示我們需要建立.my.cnf 配置檔案, 我們直接在資料庫的/etc/my.cnf.d/client.cnf 檔案中,添加 zabbix 監控 mysql 使用的帳号就可以了。
-
建立資料庫和 zabbix 的連結資訊
vim /etc/my.cnf.d/client.cnf
[client]
user=zabbix #添加之前授權的使用者和密碼
password=123456
- 注:MySQL 使用者設定密碼後,隻要在 client 字段下添加使用者名和密碼就可以免密碼登入。每次登入MySQL 的互動界面,隻需鍵入 mysql 指令,即可預設将 host, user, password 的值根據 client.cnf中的内容傳給 mysql 指令,進行 mysql 的登入操作。
- 在 zabbix server 單獨給 192.168.2.6 主機增加一個 mysql 監控模版
- 如果長時間收不到資訊
- 依次重新開機 mysqld ----- zabbix-agent -------- zabbix-proxy
-
對 mysql 進行壓力測試 :
mysqlslap 是 Mysql 自帶的壓力測試工具,可以模拟出大量用戶端同時操作資料庫的情況,通過結果資訊來了解資料庫的性能狀況。
mysqlslap -uroot -p --concurrency=100 --number-of-queries=1000 --number-int-cols=5 --number-char-cols=20 --auto-generate-sql
-
參數說明:
--concurrency=100 #指定同時有 100 個用戶端連接配接; concurrence [kənˈkʌrəns] 同時,并
發
--number-of-queries=1000 #指定總的測試查詢次數(并發用戶端數 * 每個用戶端的查詢次
數)
--auto-generate-sql #作用是自動生成測試 SQL。自動測試時,建立的表結構非常簡單,隻有兩列,實際的産品環境肯定會更複雜,可以使用參數指定列的數量和類型。
–number-int-cols=5 #指定生成 5 個 int 類型的列
–number-char-cols=20 #指定生成 20 個 char 類型的列
-
結果中各項含義:
Average number of … #運作所有語句的平均秒數
Minimum number of … #運作所有語句的最小秒數
Maximum number of … #運作所有語句的最大秒數
Number of clients … #用戶端數量
Average number of queries per client #每個用戶端運作查詢的平均數
-
使用 163 郵件伺服器實作自動郵件報警功能
-
郵件服務可以使用系統自帶的郵件服務或第三方郵件服務來發送警告郵件。
使用 163 郵件伺服器發送郵件,這樣更加穩定,而且不會被當成垃圾郵件。
-
首先安裝 mailx 元件并配置上 163 郵箱的帳号
yum install mailx -y
然後編輯 mailx 的配置檔案
vim /etc/mail.rc
在最末尾添加如下資訊:
set [email protected]
set smtp=imap.163.com
set [email protected]
set smtp-auth-password=xxxxx
set smtp-auth=login
- set [email protected] #表示郵件發送方,用于 zabbix 服務端轉發郵件到指定郵箱
- set smtp-auth-password=xxxxxx #注意:此為 163 郵箱設定的用戶端授權密碼,不是郵箱密碼
- 163 郵箱授權碼示意圖
-
儲存退出後測試郵件是否能夠正常發送出去
echo "zabbix test mail" |mailx -s "zabbix" [email protected]
- 建立報警媒介類型
- 配置報警媒介,使用腳本發送郵件。名稱: 163 郵件報警
- 給 zabbix 使用者添加報警郵箱
- 設定報警使用者(zabbix 觸發報警是發送給 zabbix 使用者所綁定的郵箱。是以要在使用者中配置相關報警媒介)
-
建立報警動作
動作由觸發器進行觸發,例如:192.168.2.5 c7_2_5 主機當機,監控項檢測不到數值後觸發器就會觸發動作。
注意:這裡的事件源是觸發器。是由觸發器觸發的動作。
-
修改操作,郵件内容為:
主題:故障{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
- 消息:
-
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
目前狀态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
注:TRIGGER.SEVERITY 觸發嚴重性 ; severity [sɪ'verəti] 嚴重程度 ;
繼續添加:恢複操作
預設接收人:已恢複!{TRIGGER.STATUS}, 伺服器:{HOSTNAME1}: {TRIGGER.NAME}
恢複資訊:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
目前狀态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
- 點選添加
- 測試郵件發送
- 重新開機 zabbix-server
- systemctl restart zabbix-server
-
測試,關閉 192.168.2.5 上的 zabbix 用戶端服務 zabbix_agentd
systemctl stop zabbix-agent
- 測試發送郵件完成
- 使用 stress 工具壓力測試 cpu 并觸發告警
-
yum install -y epel-release
yum install stress -y
-
tress 參數解釋
-? 顯示幫助資訊
-v 顯示版本号
-q 不顯示運作資訊
-n 顯示已完成的指令情況
-t --timeout N 指定運作 N 秒後停止
--backoff N 等待 N 微妙後開始運作
-c 産生 n 個程序 每個程序都反複不停的計算随機數的平方根,測試 cpu
-i 産生 n 個程序 每個程序反複調用 sync(),sync()用于将記憶體上的内容寫到硬碟上,測試磁
盤
-m --vm n 産生 n 個程序,每個程序不斷調用記憶體配置設定 malloc()和記憶體釋放 free()函數 ,
測試記憶體
--vm-bytes B 指定 malloc 時記憶體的位元組數 (預設 256MB)
--vm-hang N 表示 malloc 配置設定的記憶體多少時間後在 free()釋放掉
-d --hadd n 産生 n 個執行 write 和 unlink 函數的程序
- -hadd-bytes B 指定寫的位元組數
--hadd-noclean 不 unlink
注:時間機關可以為秒 s,分 m,小時 h,天 d,年 y,檔案大小機關可以為 K,M,G
-
産生 6 個 cpu 程序, 5分鐘秒後停止運作
stress -c 6 -v -t 5m
再打開一個終端,使用 top 指令檢視,1 核 cpu 已經占滿 100%
- 可以看到 5 分鐘内 cpu 負載達到預設值會發出告警