1. 程式人生 > >zabbix 報警機制

zabbix 報警機制

概念介紹:

  • 自定義的監控項預設不會自動報警
  • 首頁也不會提示錯誤
  • 所以需要配置觸發器與報警動作才可以自動報警
  • 觸發器
  1. 表示式,如果記憶體不足300M,使用者超過30個等
  2. 當出發條件發生後,會導致一個觸發條件
  3. 觸發事件會執行某個動作
  • 動作
  1. 觸發器的條件被觸發後的行為
  2. 可以是傳送郵件,也可以是重啟某個服務

1 案例1:實現Zabbix報警功能

1.1 問題

沿用第5天Zabbix練習,使用Zabbix實現報警功能,實現以下目標:

  1. 監控Linux伺服器系統賬戶
  2. 建立Media,設定郵件伺服器及收件人郵箱
  3. 當系統賬戶數量超過35人時傳送報警郵件

1.2 方案

自定義的監控項預設不會自動報警,首頁也不會提示錯誤,需要配置觸發器與報警動作才可以自定報警。

什麼是觸發器(trigger)?

表示式,如記憶體不足300M,使用者超過30個等

當出發條件發生後,會導致一個觸發事件

觸發事件會執行某個動作

什麼是動作(action)?

動作是觸發器的條件被觸發後所執行的行為

可以是傳送郵件、也可以是重啟某個服務等

參考如下操作步驟:

  1. 建立觸發器並設定標記
  2. 設定郵箱
  3. 建立Action動作

1.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:建立觸發器規則

1)建立觸發器

建立觸發器時強烈建議使用英文的語言環境,通過Configuration--> Templates,找到我們之前建立的count.line.passwd模板,點選模板後面的triggers,如圖-1所示。


2)觸發器表示式

建立觸發器時需要定義表示式,觸發器表示式(Expression)是觸發異常的條件,觸發器表示式格式如下:

{<server>:<key>.<function>(<parameter>)}<operator><constant>

{主機:key.函式(引數)}<表示式>常數

在如圖-2所示的藍色方框中編寫觸發器表示式,可以直接手寫,也可以通過add選擇表示式模板。

圖-2

下面,我們看幾個表示式的案例:

{web1:system.cpu.load[all,avg1].last(0)}>5 //0為最新資料

如果web1主機最新的CPU平均負載值大於5,則觸發器狀態Problem

{vfs.fs.size[/,free].max(5m)}<10G //5m為最近5分鐘

根分割槽,最近5分鐘的最大容量小於10G,則狀態進入Problem

{vfs.file.cksum[/etc/passwd].diff(0)}>0 //0為最新資料

最新一次校驗/etc/passwd如果與上一次有變化,則狀態進入Problem

大多數函式使用秒作為引數,可以使用#來表示其他含義(具體參考表-1)。

avg, count, last, min and max 等函式支援額外的第二個引數time_shift(時間偏移量),這個引數允許從過去一段時間內引用資料。

3)配置觸發器

設定觸發器名稱,如圖-3所示,點選add新增表示式,填寫表示式:監控項為賬戶數量,最近300秒賬戶數量大於26(根據系統賬戶數量實際填寫),效果如圖-4所示。

選擇觸發器報警級別,如圖-5所示,Add建立該觸發器,如圖-6所示。


步驟二:設定郵件

1)建立Media

通過Administration(管理)-->Media Type(報警媒體型別)-->選擇Email(郵件),如圖-7所示。

圖-7

設定郵件伺服器資訊,設定郵件伺服器及郵件賬戶資訊,如圖-8所示。

圖-8

2)為使用者新增Media

在Administration(管理)-->Users(使用者)中找到選擇admin賬戶,如圖-9所示。


圖-9

點選Admin賬戶後,在彈出的介面中選擇Media(報警媒介)選單-->點選Add(新增)報警媒介,如圖-10所示。


圖-10

點選Add(新增)後,在Meida Type中填寫報警型別,收件人,時間等資訊,如圖-11所示。


圖-11

步驟三:建立Action動作

1)Action動作

Action(動作)是定義當觸發器被觸發時的時候,執行什麼行為。

通過Configuration(配置)-->Actions(動作)-->Create action(建立動作),如圖-12所示。


圖-12

2)配置Action動作的觸發條件

填寫Action動作的名稱,配置什麼觸發器被觸發時會執行本Action動作(賬戶數量大於26),如圖-13所示。


圖-13

3)配置Action動作的具體行為

配置動作的具體操作行為(傳送資訊或執行遠端命令),無限次數傳送郵件,60秒1次,傳送給Admin使用者,如圖-14和圖-15所示。


4)測試效果

在被監控主機建立賬戶(讓賬戶數量大於26),然後登入監控端Web頁面,在儀表盤中檢視問題報警(需要等待一段時間),如圖-16所示。


檢視報警郵件,在監控伺服器上使用mail命令查收報警郵件,如圖-17所示。


圖-17

2 案例2:Zabbix自動發現

2.1 問題

沿用前面的練習,配置Zabbix的自動發現機制,實現以下目標:

  1. 建立自動發現規則
  2. 建立自動發現後的動作,新增主機、為主機連結模板

2.2 方案

什麼是自動發現(Discovery)?

當Zabbix需要監控的裝置越來越多,手動新增監控裝置越來越有挑戰,此時,可以考慮使用自動發現功能,自動新增被監控主機,實現自動批量新增一組監控主機功能。

自動發現可以實現:

  • 自動發現、新增主機,自動新增主機到組;
  • 自動連線模板到主機,自動建立監控專案與圖形等。

自動發現(Discovery)流程:

  • 建立自動發現規則
  • 建立Action動作,說明發現主機後自動執行什麼動作
  • 通過動作,執行新增主機,連結模板到主機等操作

2.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:自動發現規則

1)建立自動發現規則

通過Configuration(配置)-->Discovery(自動發現)-->Create discovery rule(建立發現規則),如圖-18所示。


圖-18

2)填寫規則

填寫自動發現的IP範圍(逗號隔開可以寫多個),多久做一次自動發現(預設為1小時,僅實驗修改為1m),如圖-19所示。配置檢查的方式:HTTP、FTP、Agent的自定義key等檢查,如圖-20所示。


步驟二:建立動作

1)建立Action動作

通過Configuration(配置)--> Actions Event source(事件源):自動發現(Discovery)-->Create action(建立動作),如圖-21所示。


圖-21

2)配置Action動作具體行為

配置動作,新增動作名稱,新增觸發動作的條件,如圖-22所示。


點選操作(觸發動作後要執行的操作指令),操作細節:新增主機到組,與模板連結(HTTP模板),如圖-23所示。


步驟二:新增新的虛擬機器

1)建立新的虛擬機器

建立一臺新的主機,驗證zabbix是否可以自動發現該主機,可以重新部署一臺新的虛擬機器(注意前面的課程,我們已經建立了虛擬機器web2,並且已經安裝部署了Zabbix agent,如果沒有該虛擬機器或沒有安裝Agent,則需要前在web2部署Agent),也可以將舊虛擬機器的IP地址,臨時修改為其他IP。

2)驗證結果

登陸Zabbix伺服器的Web頁面,檢視主機列表,確認新新增的主機是否被自動加入監控主機列表,是否自動綁定了監控模板。

3 案例3:Zabbix主動監控

3.1 問題

沿用前面的練習,配置Zabbix主動監控,實現以下目標:

  1. 修改被監控主機agent為主動監控模式
  2. 克隆模板,修改模板為主動監控模板
  3. 新增監控主機,並連結主動監控模板

3.2 方案

預設zabbix採用的是被動監控,主動和被動都是對被監控端主機而言的!

被動監控:Server向Agent發起連線,傳送監控key,Agent接受請求,響應監控資料。

主動監控:Agent向Server發起連線,Agent請求需要檢測的監控專案列表,Server響應Agent傳送一個items列表,Agent確認收到監控列表,TCP連線完成,會話關閉,Agent開始週期性地收集資料。

區別:Server不用每次需要資料都連線Agent,Agent會自己收集資料並處理資料,Server僅需要儲存資料即可。

當監控主機達到一定量級後,Zabbix伺服器會越來越慢,此時,可以考慮使用主動監控,釋放伺服器的壓力。

另外,Zabbix也支援分散式監控,也是可以考慮的方案。

3.3 步驟

實現此案例需要按照如下步驟進行。

步驟一:新增被監控主機

1)為被監控主機安裝部署zabbix agent

注意:前面的實驗,我們已經在web2主機安裝部署了zabbix agent,如果已經完成,則如下操作可以忽略。

  1. [root@web2 ~]# yum -y install gcc pcre-devel
  2. [root@web2 ~]# tar -xf zabbix-3.4.4.tar.gz
  3. [root@web2 ~]# cd zabbix-3.4.4/
  4. [root@web2 ~]#./configure --enable-agent
  5. [root@web2 ~]# make && make install

2)修改agent配置檔案

將agent監控模式修改為主動模式。

  1. [root@web2 ~]# vim /usr/local/etc/zabbix_agentd.conf
  2. #Server=127.0.0.1,192.168.2.5
  3. //註釋該行,允許誰監控本機
  4. StartAgents=0            
  5. //被動監控時啟動多個程序
  6. //設定為0,則禁止被動監控,不啟動zabbix_agentd服務
  7. ServerActive=192.168.2.5
  8. //允許哪些主機監控本機(主動模式),一定要取消127.0.0.1
  9. Hostname=zabbix_client_web2
  10. //告訴監控伺服器,是誰發的資料資訊
  11. //一定要和zabbix伺服器配置的監控主機名稱一致(後面設定)
  12. RefreshActiveChecks=120
  13. //預設120秒檢測一次
  14. UnsafeUserParameters=1            
  15. //允許自定義key
  16. Include=/usr/local/etc/zabbix_agentd.conf.d/
  17. [root@web2 ~]# killall zabbix_agentd                    //關閉服務
  18. [root@web2 ~]# zabbix_agentd                            //啟動服務

步驟二:建立主動監控的監控模板

1)克隆Zabbix自動的監控模板

為了方便,克隆系統自帶模板(在此基礎上就該更方便)。

通過Configuration(配置)-->Templates(模板)-->選擇Template OS Linux

-->全克隆,克隆該模板,新建一個新的模板。如圖-24所示。

新模板名稱為:Template OS Linux ServerActive。


2)修改模板中的監控專案的監控模式

將模板中的所有監控專案全部修改為主動監控模式,通過Configuration(配置)-->Templates(模板)-->選擇新克隆的模板,點選後面的Items(監控項)-->點選全選,選擇所有監控專案,點選批量更新,將型別修改為:Zabbix Agent(Active主動模式),如圖-25所示。


3)禁用部分監控專案

批量修改監控項的監控模式後,並非所有監控專案都支援主動模式,批量修改後,會發現有幾個沒有修改主動模式成功,說明,這些監控專案不支援主動模式,關閉即可。

可以點選型別排序,方便操作,點選狀態即可關閉。如圖-26所示。


步驟三:新增監控主機

1)手動新增監控主機(主動模式監控)

在Zabbix監控伺服器,新增被監控的主機(主動模式),設定主機名稱:zabbix_client_web2 (必須與被監控端的配置檔案Hostname一致),將主機新增到Linux servers組,IP地址修改為0.0.0.0,埠設定為0,如圖-27和圖-28所示。


為主機新增監控模板,選擇剛剛建立的模板(主動模式),新增連結模板到主機,如圖-29所示。


2)驗證監控效果

檢視資料圖表,通過Monitoring-->Graphs選單,選擇需要檢視的主機組、主機以及圖形,檢視效果,如圖-30所示。


CPU、記憶體等其他資料可用正常獲取,但是,檢視分割槽圖表時並無資料,因為分割槽資料採用的是自動發現監控,與普通監控項一樣,修改為主動模式即可,選擇Template OS Linux ServerActive模板,修改Discovery自動發現為主動模式。如圖-31所示。


4 案例4:拓撲圖與聚合圖形

4.1 問題

沿用前面的練習,熟悉zabbix拓撲圖與聚合圖形,實現以下目標:

  1. 建立修改拓撲圖
  2. 建立聚合圖形

相關推薦

06: Zabbix基礎 、 Zabbix監控實戰 、 Zabbix報警機制

bst 功能 message password 4.2 sch -i 文件 word 部署搭建Zabbix監控服務器 192.168.4.56 部署Zabbix監控服務運行環境 LAMP 安裝Zabbix軟件2.1 安裝準備]# rpm -q gcc gcc-c+

Zabbix報警機制Zabbix進階操作 、 監控案例

Top NSD SECURITY DAY06 1 案例1:實現Zabbix報警功能 1.1 問題 沿用第5天Zabbix練習,使用Zabbix實現報警功能,實現以下目標: 監控Linux伺服器系統賬戶 建立Media,設定郵件伺服器及收件人郵箱 當系統賬戶數

zabbix 報警機制

概念介紹:自定義的監控項預設不會自動報警首頁也不會提示錯誤所以需要配置觸發器與報警動作才可以自動報警觸發器表示式,如果記憶體不足300M,使用者超過30個等當出發條件發生後,會導致一個觸發條件觸發事件會執行某個動作動作觸發器的條件被觸發後的行為可以是傳送郵件,也可以是重啟某個

Zabbix定義報警機制

緩存 host 有效 style 出現 sta ttl 第一個 國外 1. 修改zabbix配置文件 #取消註釋或添加一行 cat -n /etc/zabbix/zabbix_server.conf |grep --color=auto "AlertScriptsPath

在LAMP架構中部署zabbix監控系統及郵件報警機制

director 通過 httpd work 聯網 導致 時有 star 實驗 初步了解zabbix: Zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。是一個基於WEB界面的提供分布式系統監視以及網

監控軟體Zabbix之配置QQ郵箱報警機制

上篇講解了Zabbix的安裝與配置,本篇繼續講解如何配置郵件報警機制;本篇我就在此前zabbix服務端和客戶端都已經配置好的基礎上進行試驗;在監控主機上進行配置: 1.使用yum安裝mailx郵箱服務: * yum install mailx -y 2.安裝完後在末行加入以下配置: * vim /et

監控軟件Zabbix之配置QQ郵箱報警機制

code qq郵箱 bash gin 技術分享 步驟 試驗 點擊 其他 上篇講解了Zabbix的安裝與配置,本篇繼續講解如何配置郵件報警機制;本篇我就在此前zabbix服務端和客戶端都已經配置好的基礎上進行試驗;在監控主機上進行配置: 1.使用yum安裝mailx郵箱服務:

調用釘釘群組機器人在當前群組發送Zabbix報警信息

機器人 zabbix 釘釘 關於釘釘機器人的創建,基本用法詳見我另一篇文章《創建自定義機器人》本實驗測試zabbix版本為3.4接下來我們將直接通過下面的操作完成zabbix報警往我們的釘釘機器人所在群組發送:首先在附件中下載對應的程序到我們的zabbix server的AlertScriptsP

使用釘釘自定義應用的方式實現zabbix報警

zabbix 釘釘 自定義應用 先給大家展示一下完成後的效果圖下面我們就按照下面的步驟來實現我們想要的效果首先去釘釘後臺管理添加自定義應用,關於如何創建自定義應用可以咨詢釘釘客服或者查看釘釘相關文檔,創建好應用後我們需要獲取三個信息:AgentID:創建好應用後再點擊應用進去就可以查看CorpId

zabbix報警流程

流程 zabbix 下面是zabbix的報警流程: 首先item拿到server端的數據,收集到數據後,如果它和一個trigger綁定了,那麽會檢查trigger的狀態是否變成異常狀態,然後按照trigger的狀態生成一個事件(無論狀態變與不變都會生成),最後檢查報警動作。本文出自 “10620

Zabbix報警腳本-微信

mes use ont rip end app monitor from .com #!/bin/bash ###SCRIPT_NAME:weixin.sh######send message from weixin for zabbix monitor######writ

zabbix報警郵件qq郵箱收不到的問題

中文 技術分享 col nes mage brush rip post chown 出現這樣問題的根本原因是因為zabbix對中文支持不太友好,亂碼導致了郵件無法正常接收。 一、解決zabbix郵件內容為附件 1.安裝發送郵件的mailx 以及windows文件轉uni

從Python腳本判斷服務器不可達,到Zabbix報警

主機不可達 subprocess queue zabbix trapper 1、Python腳本獲取不可達服務器的IP: 通過簡單的ping命令判斷主機是否可達。腳本基於Python3.3.6,Python2.x版本的queue模塊應該是Queue。#!/usr/bin/python #

zabbix 報警程式

一,報警程式     本次使用的為onealert   http://c.onealert.com/console/ucid/login.jsp            二,服務端安轉   下面為他教的怎麼安裝這個東西      第一步:     找到指令碼目錄位置:     

SpringCloud整合Hystrix斷路器和feign整合Hystrix的使用(熔斷 》降級之後的報警機制

SpringCloud整合Hystrix斷路器 <dependency> <groupId>org.springframework.cloud</groupId> <

zabbix 報警通知選項配置

{TRIGGER.STATUS} host: {HOSTNAME} IP: {HOST.IP} events_time:{EVENT.DATE} {EVENT.TIME} notice_time:{DATE} {TIME} {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}):

解決zabbix 報警郵件以附件形式傳送

#!/bin/sh #export.UTF-8 FILE=/tmp/mailtmp.txt echo "$3" >$FILE dos2unix -k $FILE /bin/mail -s "$2" $1 < $FILE touch /tmp/mailtmp.txt chown zabbix.za

Zabbix 報警郵件內容帶附件解決方法

安裝zabbix之後,設定郵件指令碼報警的時候,傳送的報警內容變成了tcmime.1278.1278.1724.bin或ATT00001.bin。 yum -y install dos2unix //安裝mailx工具和dos2unix轉換工具 以下是指令碼內容:

zabbix報警邏輯初探

行操作 events 數據存儲 tid peer 刪除數據 設置事件 阻塞隊列 sca zabbix報警邏輯初探 首先貼出一張網上找的一張關於zabbix報警相關表結構及表關聯邏輯圖: actions表 actions表對應前端配置是動作(actions) actio

0213微信ZABBIX報警

企業微信 頁面 part asc led 完成後 serve text 觸發 簡介 微信作為日常使用最頻繁的工具,因此希望將微信接入zabbix報警。 微信企業號 1.申請微信企業號 申請後,請在“我的企業”頁面下記錄企業號的CorpID 2.添加通訊錄 部門添加完成後