zabbix是一種監控軟件,我用的是centos7.5版本
一:我已經添加好主機了,接下來就是看看怎麼查看監控內容的
1.打開zabbix服務的web網頁
2.檢測最新數據,要在最新數據中篩選
3.查看圖像
二: 上面只是最簡單的查看客戶機的方法,接下來演示一下自定義監控
1.zabbix自帶模板Template OS Linux (Template App Zabbix Agent)提供CPU、內存、磁 盤、網卡等常規監控, 只要新加主機關聯此模板,就可自動添加這些監控項
自定義監控項,在zabbix server上創建監控項前可以先使用zabbix_get來判斷腳本是否正確。
在zabbix server端使用yum安裝zabbix_get
命令:cd /etc/yum.repos.d/
配置yum源
命令:rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
命令:yum -y install zabbix-get.x86_64
可以使用zabbix_get -help查看用法
注意:zabbix_只能在服務端操作
然後繼續操作
命令:zabbix_get -s 192.168.175.102 -p 10050 -k "system.uname"
註釋:-s 客戶端的IP -p 客戶端端口,默認10050 -k 監控項的key
2.實現自定義監控
自定義語法
UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l
UserParameter=login-user,/bin/sh /server/scripts/login.sh
3.agent註冊(客戶端)
命令:cd /etc/zabbix/zabbix_agentd.d/
命令:vim userparameter_login.conf
UserParameter=login-zabbix1,who|wc -l
UserParameter=login-zabbix2,who|wc -l
UserParameter=login-zabbix3,who|wc -l
注意:key名字要唯一
然後重啓服務
命令:systemctl restart zabbix-agent.service
然後在服務端進行測試
命令:zabbix_get -s 192.168.175.103 -p 10050 -k "login-zabbix1"
命令:zabbix_get -s 192.168.175.103 -p 10050 -k "login-zabbix2"
命令:zabbix_get -s 192.168.175.103 -p 10050 -k "login-zabbix3"
因爲在客戶端就註冊了三個用戶,所以沒有login-zabbix4,就會報錯
4.在服務端註冊(網頁操作)
(1)點擊配置------>點擊模板------>點擊創建模板
(2)按照操作要求填寫
ceshi login-zabbix
(3)創建應用集
點擊應用集----->創建應用集
(4)創建監控項
點擊監控項------>創建監控項
(5)創建觸發器
(6)創建圖形
點擊圖形------>創建圖形
(7)主機關聯模板
點擊配置---->主機
一個主機可以關聯多個模板
測試一下,在瀏覽器上同時開啓四個zabbix網頁
我用火狐瀏覽器添加了四個,谷歌瀏覽器上就報警了,這樣就配置成功了
三:監控報警
(1)第三方報警平臺(釘釘)
先指定要發送的羣,在羣裏創建機器人
添加機器人
可以參考 “說明文檔”
創建測試文檔
vim ceshi.sh
curl 'https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51' \ #添加自己的webhook
-H 'Content-Type: application/json' \
-d '{"msgtype": "text",
"text": {
"content": "告警"
}
}'
然後執行測試,如果成功會在釘釘上發送消息
(2)查看默認腳本存放位置
命令:cat /etc/zabbix/zabbix_server.conf|grep AlertScriptsPath
命令:cd /usr/lib/zabbix/alertscripts #進入默認腳本目錄
注意:這次腳本是用python寫的所以需要配置python環境纔行
命令:yum -y install python-pip #安裝python
命令:pip install requests #安裝依賴包
注意:如果安裝失敗,請配置阿里雲yum源
命令:mkdir ~/.pip #創建阿里雲pip
命令:vim /root/.pip/pip.conf #寫入下以內容
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
看見這些說明安裝成功,然後開始寫腳本
命令:vim /usr/lib/zabbix/alertscripts/dingding.py #內容如下
curl 'https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51' \
-H 'Content-Type: application/json' \
-d '{"msgtype": "text",
"text": {
"content": "告警"
}
}'
[root@localhost alertscripts]# cat dingding.py
#!/usr/bin/env python
#coding:utf-8
#zabbix釘釘報警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51"
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/local/zabbix/logs/dingding.log"):
f=open("/usr/local/zabbix/logs/dingding.log","a+")
else:
f=open("/usr/local/zabbix/logs/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"發送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "發送失敗" + "\n" + str(text))
f.close()
命令:chown zabbix.zabbix dingding.py #添加權限
命令:mkdir -p /usr/local/zabbix/logs #添加消息文件
命令:touch /usr/local/zabbix/logs/dingding.log #添加消息文檔
命令:chown -R zabbix.zabbix /usr/local/zabbix/logs/dingding.log #給消息文檔添加權限
命令:chown -R zabbix.zabbix /usr/local/zabbix/logs #給消息文件添加權限
然後在測試一下,是不是在釘釘發送消息
命令:./dingding.py test 185xxxxxxxx "這個條測試信息,忽略"
注意:這個號碼意思是你發送的羣裏有這個號碼,引號裏的內容是在釘釘的關鍵字裏設置的
(3)在zabbix網頁裏設置
三個參數
創建報警媒介. 三個參數分別是:ALERT.SENDTO ALERT.SUBJECT ALERT.MESSAGE
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
接下來配置動作
點擊配置------>動作
{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主機:{HOST.NAME}
主機IP: {HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
下圖表示觸發5次動作,每隔120秒觸發一次,告警發給 admin 用戶,用釘釘媒介發送.
恢復參數
{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主機:{HOST.NAME}
主機IP: {HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
其他默認
測試將虛擬機關機一下,釘釘上彈出警告,ok完成
總結:。。。。。。。。。。。此處省略一萬字