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

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)

分享創造快樂