歡迎光臨
每天分享高質量文章

30分鐘zabbix入門——最簡單有效的zabbix快速學習法

在公司搭建系統級別的監控,由於ELK對流量監控存在局限——現有的工具只記錄了累計的流量,而無法計算每時每刻的流量。所以決定最後用zabbix來對網絡做監控和報警,下麵會從零開始記錄zabbix搭建過程中的所有步驟,希望可以給你帶來幫助。

安裝前準備工作

安裝必要的軟體,禁用SELINUX,安裝必備軟體

LAMP環境搭建

安裝

啟動mysql,設置開機啟動,修改mysql密碼,註意下麵的yourpassword要替換為你自己的密碼

安裝zabbix服務

創建zabbix資料庫

匯入資料

修改zabbix配置

註意:下麵的yourpasswd請替換為你自己的資料庫密碼

修改時區

修改zabbix登錄密碼(可選)

啟動

設置開機啟動

通過http://hostname/zabbix訪問zabbix的安裝頁面,填寫安裝信息,完成安裝。完成安裝後,初始登錄賬戶密碼為Admin/zabbix。

安裝zabbix-agent

zabbix-server安裝好了,下麵需要“接入”其他機器,將它們納入到zabbix-server的管理,下麵是安裝步驟

配置zabbix-agent

啟動zabbix-agent

下麵在zabbix-server頁面上添加這個機器

按下圖填寫即可

接著系結模板

最後點擊Update,你就可以在Host目錄中看到所有被監控的機器串列

註意:如果zabbix-agent需要被其他機器呼叫,例如通過zabbix_get獲得監控信息,需要在防火牆設置“放開10050端口”

監控網絡流量

假設我們要監控機器192.168.8.5網卡em1上的出入口流量,我們可以先在zabbix服務器上用zabbix_get命令來測試一下,下麵代碼測試的是輸入流量,註意這裡的輸出是一個累積的流量

監控網絡流量的流程為:

  1. 創建模板

  2. 創建監控項
    創建應用:Configuration->Templates->Create application

  3. 創建監控項:Configuration->Templates->network traffic on em1->Items->Create Item

    上圖是入口流量的監控項設置,出口流量監控項network traffic out em1可以一樣設置,成功後你看到的是

  4. 創建Triggers
    Triggers是觸發報警的設置,同樣我們點擊Configuration->Templates->network traffic on em1->Triggers->Create trigger來創建Triggers

  5. 註意在設置Expression時,我們可以利用zabbix提供給我們的模板

  6. 於是,入口流量的觸發值就設置好了,每秒流量超過1048576時就會觸發報警,同理我們可以設置出口流量的觸發值,成功後,我們看到的是

  7. 創建Graphs
    接著,我們再來創建Graphs,Graphs可以以圖形化的方式展示流量信息,點擊Configuration->Templates->network traffic on em1->Graphs->Create graph,創建Graphs的最大好處是我們可以把這些Graphs組合起來形成Screens監控面板,例如下麵這樣

    下麵是創建Graphs的表單

  8. 系結Template
    至此,我們模板就創建完畢了,最後一步需要把主機和模板關聯起來,點擊Configuration->Hosts->Templates->Select創建關聯,然後點擊Add

  9. 此時,通過Monitoring->Latest data可以看到網卡上的最新資料,同時可以通過Monitoring->Graphs來查看圖形化的資料

自定義script報警

當系統出現異常時,我們需要立即發現,並通過郵件或App的方式通知給維護的同學,這樣整個系統才會掌控在我們手中,Zabbix要做到這一點,需要配置以下3個選項(zabbix雖然很強大,但配置和UI有點繁瑣,這是我不喜歡它的地方):

  1. Media types

  2. Events

  3. User Media

Media types

Media types是當產生事件時,以什麼方式進行通知,這裡採用的是Script方式,這種方式的靈活性最大,通過這種方式,我們可以把報警發送到任何支持Webhook的App上,例如釘釘

Script這種方式的原理是:我們把可執行的腳本放在zabbix的指定目錄下,當事件發生時,zabbix會自動呼叫該腳本,可以在/etc/zabbix/zabbix_server.conf中找到指定目錄的路徑

Media types設置如下,意思是在/usr/lib/zabbix/alertscripts下存在一個腳本dingding.py,當事件發生時,zabbix會呼叫該腳本,同時會傳入該腳本3個引數,這3個引數分別是事件的接收人、事件的主題、事件的內容

dingding.py這個腳本如下,我們先實現一個簡單的版本,也就是把這3個引數輸出到日誌中

設置腳本的權限

Events

事件是當某個條件發生時,zabbix所創建的報警物件。在zabbix中,事件發生時和事件恢復時都可以觸發事件,下麵我們來創建一個事件,

可以看到,這裡的事件主題和事件訊息都是系統預設生成的,其中包括時間產生時的必要信息,同時我把允許事件恢復時通知(Recovery message)打了勾,Conditions標簽頁的內容保持不變,然後我們再來修改Operations標簽里的內容

這裡的意思是:事件的持續時間是1個小時(3600s),每隔2分鐘(120s)產生一個事件,一共產生10個事件,產生事件時,發送給Zabbix administrators用戶組中的Admin用戶,最後事件會使用我們剛剛創建的dingding這種Media type

User Meida

事件和Media type創建好後,下麵還需要把它們和指定用戶關聯起來,點擊Administration->Users->Media->Add,修改後,點擊Update

通過以上步驟,我們已經把zabbix的監控和報警建立起來了,並實操創建了網卡的流量監控,現在我們把網絡流量的閾值調到小,故意製造一個超出流量的事故,看一下報警是否生效,我們預期是發送10個報警,發送完畢後,我們再把閾值調到正常,看下是否會收到恢復訊息。還記得之前寫的那個腳本嗎,它會把報警內容輸出到日誌檔案中,現在我們檢查下日誌檔案

很顯然,結果符合我們的預期。

以上便是入門zabbix的全部內容,後面的文章我們會具體實現dingding.py報警腳本,讓你真正的可以在手機上收到報警信息。

作者:解牛_馮雅傑
鏈接:http://www.jianshu.com/p/4d3af373e682

赞(0)

分享創造快樂