02.Zabbix⾃定義監控項

1.zabbix⾃定義監控初試

如何獲取系統中想監控對象的值,獲取後⼜如何將該值傳遞給Zabbix-Server

1.1.監控系統中的對象

#(系統監控命令 + awk + 篩選條件 = 監控的狀態值)
[root@web01 ~]# w|awk 'NR==1{print $6}'

 

1.2.在/etc/zabbix/zabbix_agentd.d/⽬錄中新增監控項,使⽤UserParameter=<key>,<shell command>

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/default.conf
UserParameter=login_number,w|awk 'NR==1{print $6}'

#重啓zabbix-agent使其監控項⽣效 [root@web01 ~]# systemctl restart zabbix-agent

 

1.3.在ZabbixAgent客戶端測試⾃定義的監控項是否能正常取值,使⽤zabbix_agentd -p | grep KeyName

[root@web01 ~]# zabbix_agentd -p |grep login_number
login_number [t|1]

 

1.4.使⽤ZabbixServer檢測可否獲取ZabbixAgent端⾃定義的監控項,使⽤zabbix_get -s IP_addr -k KeyName

[root@ZabbixServer ~]# yum install zabbix-get -y
[root@ZabbixServer ~]# zabbix_get -s 10.0.0.7 -p10050 -k login_number
1

 

1.5.若是測試都沒有問題,能夠在ZabbixWeb對該主機關聯對應的監控項

1.點擊配置->主機->對應主機
2.找到監控項->建立監控項->名稱->鍵值(監控項⽬名稱)->信息類型->單位
3.點擊監測中->最新數據->等待數據

 

1.6.⾃定義閾值,若是登錄⽤戶超過2⼈則達到閾值(到達預設的瓶頸)

1.點擊配置->主機->對應主機
2.點擊觸發器->建立觸發器->名稱->選擇表達式->肯定便可。

 

1.7.配置zabbixserver達到閾值,則觸發前臺⾯板報警通知。

1.點擊右上⻆⼩⼈頭->正在發送消息->開啓
2.被監控端開啓多個Linux會話窗⼝,等待zabbixweb前端報警

 

2.zabbix⾃定義監控深⼊

2.1.詳細介紹基礎模板中的監控項, 以及⾃定義添加監控項中的每⼀個參數的做⽤和使⽤⽅法。

 

2.2.監控tcp/22端⼝是否處於監聽狀態,使⽤Service State進⾏值映射

 

2.3.點擊檢測中->最新數據-->查看最新的狀態

 

2.4.如何⾃定義監控tcp11種狀態(傳參⽅式)

[root@zabbix-agent ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-agent ~]# zabbix_agentd.d]# cat -n tcp_state.conf
UserParameter=tcp_state[*],netstat -ant|grep -c $1
[root@zabbix-agent ~]# systemctl restart zabbix-agent

# zabbix-server測試
[root@zabbix-server ~]# zabbix_get -s 172.16.1.7 -k tcp_state[LISTEN]
8

 

2.5.在zabbixWeb端進⾏添加⾃定義監控項,TCP有11種狀態, 若是須要快速添加監控項,能夠對針對添加過的監控項進⾏克隆,而後修改。

 

3.zabbix⾃定義配置閾值

3.1 監控內存百分⽐(取出內存的可⽤⼤⼩ / 總內存⼤⼩ = 實際可⽤的百分⽐)

1.⾃定義監控內存百分⽐前端

[root@web03 ~]# vim /etc/zabbix/zabbix_agentd.d/oldboy.conf
UserParameter=Mem_pre,free -m|awk '/^Mem/{print $NF*100/$2}'
[root@web03 ~]# systemctl restart zabbix-agent

 

2.在ZabbixServer驗證監控項是否可⽤
[root@ZabbixServer ~]# zabbix_get -s 172.16.1.7 -k 'Mem_pre'
72.1766

 

3.Zabbix-Web⻚⾯添加監控項

 3.2.⾃定義單條件觸發器,設置內存低於 30% 進⾏報警

1.點擊對應主機->建立觸發器python

2.填寫表達式
問題表達式: {web01-172.16.1.7:Mem_pre.last()}<30
恢復表達式: {web01-172.16.1.7:Mem_pre.last()}>30

 

 
3.使⽤dd if=/dev/zero of=/dev/null bs=500M count=1024壓低內存

3.3.⽣產建議:內存低於10%以及swap使⽤⼤於5%,再進⾏報警(會更精準)

1.增長swap的監控
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/oldboy.conf
UserParameter=Swap_pre,free -m|awk '/^Swap/{print $3*100/$2}'
[root@web01 ~]# systemctl restart zabbix-agent

 

2.在ZabbixServer使⽤zabbix_get命令測試
[root@ZabbixServer ~]# zabbix_get -s 10.0.0.30 -k 'Swap_pre'
0

 

3.在ZabbixWeb建立⾃定義監控項

 

4.基於以前建⽴的觸發器進⾏修改,修改成多條規則同時滿⾜才觸發,以下:
{Web03-10.0.0.30:Mem_pre.last()}<30 and {Web03-10.0.0.30:Swap_pre.last()}>1

 

5.使⽤dd命令消耗客戶端內存(只滿⾜內存低於30%,因此不會進⾏報警)
[root@web01 ~]# dd if=/dev/zero of=/dev/null bs=300M count=1024

 

6.使⽤dd命令消耗客戶端內存(滿⾜內存低於30%,而且swap使⽤率超過1%)
[root@web01 ~]# dd if=/dev/zero of=/dev/null bs=800M count=1024

 

7.常⽤的觸發器表達式,常⽤的函數,觸發器表達式參考urlgit

and     #而且
or      #或者
last()   #⽐對最新的值
avg()    #平均值
diff()   #⽐對上⼀次⽂件的內容
nodata()  #收不到數據進⾏報警nodata(5m)
(5m)     #表示最近5分鐘獲得值
(#5)      #表示最近5次獲得的值

 

4.zabbix⾃定義告警⽅式

當監控項超過觸發器設定的閾值->觸發動做->(發送消息|執⾏命令)
1.怎麼報警-> 2.報警怎麼發,發什麼內容 -> 報警發給誰
注意:要使SMTP驗證選項可⽤,Zabbix服務器應使⽤cURL 7.20.0或更⾼版本

4.1郵件報警

4.1.1.單擊配置->動做->事件源->觸發器->啓⽤默認的告警通知

 

4.1.2.配置故障報警消息,定製消息內容以下:

[定製Zabbix報警的內容](https://www.zabbix.com/documentation/3.4/zh/manual/appendix/macros/supported_by_location)github

報警主機:{HOST.NAME1}
報警服務: {ITEM.NAME1}
報警Key1: {ITEM.KEY1}:{ITEM.VALUE1}
報警Key2: {ITEM.KEY2}:{ITEM.VALUE2}
嚴重級別: {TRIGGER.SEVERITY}

 

4.1.3.配置故障恢復消息,消息內容以下:

恢復主機:{HOST.NAME1}
恢復服務: {ITEM.NAME1}
恢復Key1:{ITEM.KEY1}:{ITEM.VALUE1}
恢復Key2: {ITEM.KEY2}:{ITEM.VALUE2}

 

4.1.4.單擊管理→報警媒介類型,設定發送消息的介質-email

 

4.1.5.配置服務器郵件的發件⼈,使⽤郵箱帳戶和受權密碼(注意:不是收件⼈郵箱)

 

4.1.6.配置收件⼈接收的郵箱,單擊右上⻆⽤戶->報媒介->添加

 

4.1.7.填寫收件⼈類型, 收件⼈郵箱,接收報警的級別,最後點擊添加

 

 

4.1.8.確認沒有任何問題,點擊更新按鈕。

 

4.1.9.若是郵箱配置沒有任何錯誤,能夠嘗試觸發報警, 查看郵件是否能收到報警消息

 

4.1.10.若是郵箱配置存在錯誤,單擊報表->動做⽇志->檢查郵箱發送狀況

 

 

4.2.實現企業微信報警

4.2.1.準備微信報警腳本, 腳本怎麼寫->腳本放在哪

[root@ZabbixServer ~]# yum install python-pip -y
[root@ZabbixServer ~]# pip install requests
[root@ZabbixServer ~]# cd /usr/lib/zabbix/alertscripts
[root@ZabbixServer alertscripts]# rz weixin.py
[root@ZabbixServer alertscripts]# chmod +x weixin.py
[root@ZabbixServer alertscripts]# ./weixin.py WeiXinID Subject Messages

#切記⼀定要刪除,不然會致使權限問題
[root@ZabbixServer alertscripts]# rm -f /tmp/weixin.log

 

4.2.2.單擊管理->報警媒介類型->建立媒介類型

 

4.2.3.填寫微信報警名稱,以及腳本須要傳⼊的參數,內容以下:

{ALERT.SENDTO} #發送的⽤戶
{ALERT.SUBJECT} #發送的主題
{ALERT.MESSAGE} #發送的內容*

 

4.2.4.配置接收的企業微信號(微信號是企業中的微信名稱), 單擊⽤戶->報警媒介->添加->按以下填寫便可

 

4.2.5.測試微信報警

 

4.3.實現執⾏遠程命令

5.Zabbix⾃定義告警升級

隨着監控項⽬的增多, 有⼀些警告性質的報警可能不須要讓領導收到,若是監控項⻓時間處於⼀
個反覆報警的狀態時,多是沒有⼈去解決 也多是他們⽆法去解決的時候,再去向上級發送告
警 那麼zabbix就能夠經過它的告警機制去實現。它能夠經過⾃定義時間段,發送消息、命令 從
⽽造成⼀個梯度的報警機制。經過下圖解釋梯度報警的設置⽅法[50期-張⾸富]( https://blog.51cto.com/13447608/2298478)

 

5.1.簡單的配置⼀個示例, 剩下的配置⼀樣, 重點在於如何配置"告警升級"和"發送時間的理解

 

5.2.總體配置以下

 

5.3.計算⽅式

1) 開始於, 這個是相對⼀但觸發監控, 則⽴即發送消息
2) 1-2步驟是給運維組發送消息, 每隔5分鐘發送⼀次, 總共2個步驟, 因此發送2次。
3) 3-4步驟是給經理組發送消息, 每隔5分鐘發送⼀次, 總共2個步驟,因此發送2次。
4) 4-5步驟是給總監組發送消息, 每隔5分鐘發送⼀次, 總共2個步驟,因此發送2次。
5)每次的開始時間是如何計算的呢, 第⼀個⽴即開始:
1-2, 3-4, 4-5動做的時間間隔是5m, 因此在觸發告警發送時間計算是5m+5m+5m=15m

6.zabbix⾃定義監控圖形

6.1.介紹監控的順序->應⽤級->監控項->基於監控項建立觸發器->基於監控項建立圖形

6.2.基於監控項進行繪圖

6.3.將多張圖形整合爲一張圖形, 簡稱聚合圖形

 

6.4.多張聚合圖形能夠整合爲幻燈⽚

 

6.5 ⾃定義圖形樹

#1.安裝graphtree
cd /usr/share/zabbix
wget https://raw.githubusercontent.com/OneOaaS/graphtrees/master/graphtree3.0.4.pat
ch
#
2.導⼊補丁包 yum install -y patch patch -Np0 <graphtree3.0.4.patch chown -R apache.apache oneoaas
#
3.修改Apache配置⽂件 # vim /etc/httpd/conf.d/zabbix.conf Alias /oneoaas /usr/share/zabbix/oneoaas
#
4.重啓httpd服務 systemctl restart httpd

 

單擊->監測中->Graphtree

 

單擊對應的主機->選擇須要查看的圖形->點擊查詢->效果展現

 

6.6.解決Zabbix中⽂字符集圖形亂碼問題,若是準備的字體是ttc格式,修改成ttf格式也能正常使⽤。

[root@ZabbixServer ~]# cd /usr/share/fonts/dejavu/
[root@ZabbixServer dejavu]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
進⼊windows電腦,C盤->windows->fonts->隨便複製字體⾄桌⾯
[root@ZabbixServer dejavu]# rz #上傳了simhei.ttf
[root@ZabbixServer dejavu]# mv simhei.ttf DejaVuSans.ttf

 

7.Zabbix⾃定義監控模板

1.模板是⽀持導⼊與導出(模板⾥⾯的監控項是有腳本⽀撐,因此腳本需⼀起打包)
2.conf⽂件主要⽤於定義監控項,監控項⽤來調⽤腳本或命令,獲取監控值。
3.若是但願將以前定義的監控項作成模板,找到監控項->全選->複製
4. ⾃定義使⽤模板(讓監控項能夠重複使⽤)


1.客戶端agent必需要定義監控項,監控項取值須要使⽤到腳本⽂件或系統命令
2.服務端導⼊模板
3.建立監控主機,連接新導⼊模板,若是是已存在的監控主機,增長咱們剛導⼊的模板
相關文章
相關標籤/搜索