1、zabbix部署環境說明
zabbix監控伺服器:mastsc
zabbix被監控伺服器:slave
兩台機器關閉selinux:setenforce 0
兩台機器關閉防火牆:systemctl stop firewalld
2、zabbix監控伺服器:mastsc部署
一、安裝zabbix軟體
[[email protected] ~] rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[[email protected] ~] yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent httpd mariadb mariadb-server
二、啟動并登入mariadb資料庫
[[email protected] ~] systemctl start mariadb
[[email protected] ~] mysql
建立資料庫
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
建立資料庫賬戶密碼
MariaDB [(none)]> grant all privileges on zabbix.* to [email protected] identified by 'zabbix';
MariaDB [(none)]> exit
三、導入資料
[[email protected] ~] zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix
四、修改資料庫資訊
[[email protected] ~] vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
五、啟動zabbix服務
[[email protected] ~] systemctl start zabbix-server zabbix-agent
六、配置時區(注意求掉#号)
[[email protected] ~] vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
七、啟動httpd
[[email protected] ~] systemctl start httpd
八、使用遊覽器登入:http://mastsc的IP位址/zabbix
九、輸入使用者名Admin 密碼zabbix
3、zabbix被監控伺服器:slave部署
一、安裝zabbix軟體
[[email protected] ~] rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
二、安裝zabbix客戶段軟體
[[email protected] ~] yum -y install zabbix-agent
三、修改配置檔案
[[email protected] ~] vim /etc/zabbix/zabbix_agentd.conf
Server=mastsc的IP位址 //zabbix伺服器位址
ServerActive=mastsc的IP位址 //主動模式的伺服器IP位址
Hostname=slave的IP位址 //用戶端主機名稱ps:直接寫IP位址也可以
UnsafeUserParameters=1 //支援特殊字元
SourceIP=0.0.0.0 //改成支援所有人
四、啟動用戶端服務
[[email protected] ~] systemctl start zabbix-agent
4、監控cpu部署
1、直接建立主機群組
二、建立主機
3、添加監控項 監控項鍵值
system.cpu.util[,idle] #這個鍵值是監控cpu到達某個數值會報警
system.cpu.util[,] #這個鍵值是實時監控cpu
五、添加觸發器
六、添加圖形
七、測試cpu是能正常檢測ps:這條指令是求圓周率的35000可以根據硬體方面來改變
[[email protected] ~] echo "scale=3500; 4*a(1)" | bc -l -q
八、去zabbix界面中檢視監控圖形是否有變化
5、使用郵箱報警
前提是cpu圖形檢測正常方可執行以下步驟
一、我選取的是163郵箱
二、設定報警媒介
三、告警使用者
四、建立動作
五、提高cpu使用率測試是否發送郵件
[[email protected] ~] echo "scale=3500; 4*a(1)" | bc -l -q
六、也可以檢視動作日志是否發送成功
6、使用釘釘報警
一、首先去釘釘上面建立一個釘釘機器人 記住建立機器人時的“關鍵字”,“webhook”這兩個值
二、zabbix伺服器端進行配置
[[email protected] ]# cd /usr/lib/zabbix/alertscripts
[[email protected] alertscripts]# vim zabbix_send_ding.py
to=$1
subject=$2
text=$3
#此處的 xxxxx 就是剛剛複制存留的 api 接口位址。
curl -i -X POST \
'api接口位址' \
-H 'Content-type':'application/json' \
-d '
{
"msgtype": "text",
"text": {
"content": "'監控報警:text''"$text"'"
#text是你建立釘釘機器人的自定義關鍵字必須要加上 $text是監控報警内容
#沒有前面一個text釘釘裡不會顯示報警 沒用後面這個$text不會顯示報警内容
},
"at":{
"atMobiles":[
"'"$1"'"
],
"isAtAll":false
}
}'
三、給這個檔案一個執行權限
[[email protected] alertscripts]# chmod +x zabbix_send_ding.py
測試一下是否能像釘釘發送資訊
[[email protected] alertscripts]# sh zabbix_send_ding.py
四、設定前端建立腳本與告警媒介
五、建立動作
操作 ps:消息内容裡面也填寫一樣的資訊
标題:伺服器:{HOST.NAME}發生: {TRIGGER.NAME}故障!
告警主機:{HOST.NAME}
告警資訊:{TRIGGER.NAME}
告警項目:{ITEM.NAME}
告警時間:{EVENT.DATE}_{EVENT.TIME}
目前狀态:故障 值={ITEM.VALUE}
故障已持續{EVENT.AGE},請盡快處理
事件ID:{EVENT.ID}
恢複操作 ps:消息内容裡面也填寫一樣的資訊
标題:伺服器:{HOST.NAME}: {TRIGGER.NAME}已恢複!
告警資訊:{TRIGGER.NAME}
告警項目:{ITEM.NAME}
告警時間:{EVENT.DATE}{EVENT.TIME}
恢複時間:{EVENT.RECOVERY.DATE}{EVENT.RECOVERY.TIME}
目前狀态:{TRIGGER.STATUS} 值={ITEM.VALUE}
故障共持續{EVENT.AGE}
事件ID:{EVENT.ID}
确認操作 ps:消息内容裡面也填寫一樣的資訊
标題:伺服器:{HOST.NAME}: 報警确認!
确認資訊:"{ACK.MESSAGE}"
伺服器:{HOST.NAME}發生: {TRIGGER.NAME}故障!
确認人:{USER.FULLNAME}
時間:{ACK.DATE} {ACK.TIME}
目前的問題是: {TRIGGER.NAME}
時間ID:{EVENT.ID}
六、測試
[[email protected] ~] echo “scale=3500; 4*a(1)” | bc -l -q