linux監控之zabbix

何爲自動化運維


   公司的網絡發展是從小到大一步一步發展而來,隨着業務的發展,需要上線的服務越來越多,公司的服務器也隨之越來越多,公司的主機管理也從之前手動單個管理轉向機器的自動化管理.

   所謂的自動化管理就是實現管理的專業化、標準化和流程化,簡單的說,IT運維自動化是指基於流程化的框架,將事件與IT流程相關聯,一旦被監控系統發生性能超標或宕機,會觸發相關事件以及事先定義好的流程,可自動啓動故障響應和恢復機制。自動化工作平臺還可幫助IT運維人員完成日常的重複性工作(如備份、殺毒等),提高IT運維效率。同時,IT運維的自動化還要求能夠預測故障、在故障發生前能夠報警,讓IT運維人員把故障消除在發生前,將所產生損失減到最低。


wKioL1R74Efj29rNAAIyvmjWokU393.jpg

運維自動化工具

監控自動化,是指對重要的IT設備實施主動式監控,如路由器、交換機、防火牆等;

配置變更檢測自動化,是指IT設備配置參數一旦發生變化,將觸發變更流程轉給相關技術人員進行確認,通過自動檢測協助IT運維人員發現和維護配置。

維護事件提醒自動化,是指通過對IT設備和應用活動的時時監控,當發生異常事件時系統自動啓動報警和響應機制,第一事件通知相關責任人。

系統健康檢測自動化,是指定期自動地對IT設備硬件和應用系統進行健康巡檢,配合IT運維團隊實施對系統的健康檢查和監控。

維護報告生成自動化,是指定期自動的對系統做日誌的收集分析,記錄系統運行狀況,並通過階段性的監控、分析和總結,定時提供IT運維的可用性、性能、系統資源利用狀況分析報告。


一:zabbix

  zabbix(音同 zbix)是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。

wKiom1R76T-hB6oOAARZh6vIg40360.jpg

  zabbix能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。

  zabbix由2部分構成,zabbix server與可選組件zabbix agent。

wKioL1R77InS_RVoAAJHCetJAkg577.jpg


  zabbix server可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux,Solaris,HP-UX,,AIX,Free BSD,Open BSD,OS X等平臺上。



二:zabbix試驗拓撲圖

wKiom1RDSRvQKdhuAAC4R425jls443.jpg

zabbix的server端與agent端的通信

 1)server端向agent採集數據

 2)agent向server報告數據

 3)server請求agent修改配置文件

 4)server通過UDP協議的161端口跟agent通信

 5)agent通過UDP協議的162端口跟server端通信.


zabbix組件

  zabbix-server

  zabbix-database

  zabbix-web

  zabbix-agent

  zabbix-proxy

邏輯組件

  主機組 ; 主機 ; item(監控項) ; graphs(監控圖形) ; application(應用) ; trigger(觸發器) ; event(事件); actions(執行)


三:zabbix安裝配置

 1)zabbix server所需要的組件

  zabbix-2.4.0-1.el6.x86_64.rpm zabbix-server-2.4.0-1.el6.x86_64.rpm zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm  zabbix-get-2.4.0-1.el6.x86_64.rpm    zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm (監控自己所需要的包組)

 2)對於zabbix web端而言需要安裝的組件有

yum -y installzabbix-web-2.4.0-1.el6.noarch.rpm zabbix-web-mysql-2.4.0-1.el6.noarch.rpm

 自動解決依賴關係

 3)要使zabbix的server端顯示在監視器上需要LAMP平臺

 

四:啓動zabbix前的配置操作

 1)啓動之前先重新啓動一下HTTP服務.使其重新加載一下zabbix.conf配置文件.

 2)安裝mysql並創建用戶並授權

CREATE DATABASE zabbix;
mysql> GRANT ALL on zabbix.* TO 'zbxuser'@'172.16.%.%' IDENTIFIED BY '123';
       GRANT ALL on zabbix.* TO 'zbxuser'@'node5' IDENTIFIED BY '123';  (給本機用戶進行授權)
mysql> FLUSH PRIVILEGES;   (刷新授權)

 3)導入Mysql數據文件(數據庫初始化)

       

cd /usr/share/doc/zabbix-server-mysql-2.4.0/create
        mysql zabbix < schema.sql  (依次導入)
        mysql zabbix < images.sql 
        mysql zabbix < data.sql

 4)編輯zabbix的主配置文件

     

 vim /etc/zabbix/zabbix_server.conf
      
      DBHost=172.16.16.5(數據庫地址)
      DBName=zabbix(數據庫名字)
      DBUser=zbxuser(數據庫用戶名)
      DBPassword=123(數據庫用戶密碼)
      DBSocket=/tmp/mysql.sock(當爲本機數據庫時啓用爲/tmp/mysql.sock)

5)在打開zabbix安裝界面之前需要修改php時區

   

vim /etc/php.ini
    date.timezone = Asia/Chongqing

6)重啓http使其配置文件生效.


7)打開安裝配置界面導入數據庫信息

wKiom1RDTNSwV7B0AAI84-PvCPA968.jpg

8)登錄管理員賬號密碼

   passwd的密碼是zabbix

wKiom1RDTS-gPEVVAADQQyi6ozc371.jpg

9)進入管理員界面

wKiom1RDTXmD-aAqAANuqM_9cP0700.jpg

三:安裝zabbix agent 

  1)安裝agent

 yum -y install zabbix-2.4.0-1.el6.x86_64.rpm  zabbix-agent-2.4.0-1.el6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm

 2)配置zabbix agent的配置文件

   

  vim /etc/zabbix/zabbix_agentd.conf

  修改server,server段內填寫zabbix server服務端的IP地址

wKiom1RDTjHD-QZbAACouQIZwng353.jpg

  修改serveractive

wKiom1RDTnzgbc3fAADXLUEFtZ0032.jpg

 修改主機,此處的hostname要跟後面添加主機裏的hostname一樣

    Hostname=node5


3)啓動 zabbix-agent

    service zabbix-agentd start

wKiom1RDTv7zvyTYAAC-r5wp9Wc178.jpg

4)在zabbix-server端添加zabbix-agent主機

wKioL1RDT6PD_LOfAALqi7cccf0572.jpg


wKiom1RDT6qiNGsjAAOC9gSkh7U801.jpg

上圖中的host name 規範填寫方式是要和agent配置文件裏的hostname保持一致.


選擇監控模板

wKioL1RDUDaAwhu6AAJJXIpoiWg180.jpg

根據模板裏select出來的選項選擇正確的監控模板,點擊ADD添加最後添加成功

wKiom1RDUCaAEVQEAAH3_liqFyw664.jpg


5)查看監控數據

 選擇查看界面

wKiom1RDUGLAKUX1AAIVK1ibrY8928.jpg

選擇查看選項

wKioL1RDUNbg_T3zAAJGCA35P7Q696.jpg

四:配置監控主機選項

1)配置agent端item

    監控項item是zabbix服務器用於監控一個特定對象上的一個特定指標,並負責針對其收集相關監控數據.

     每一個Item都有相應的類型.每一個item都有一個專用的key.每個key在全局都要保持唯一.

可以通過zabbix的官方文檔查看item所有的key

     獲取一個key的方法

zabbix_get -s 172.16.16.1  -k 'system.uname'

在host主機監控項裏選擇Item項.

wKiom1RDUPXzKo5sAAFDozGjNOg742.jpg

進如item項後選擇右上角處的create item項進入item配置項

wKiom1RDUe6xrc-4AABlt4BHdqc077.jpg

此處我們配置監控key爲system.cpu.inter

配置item監控選項,這裏我們配置cpu的中斷次數,先通過cpuiter中斷採樣判斷我們採樣數據的趨勢

wKiom1RDUiXQolQLAAInKE8Zjeg924.jpg

根據採樣的數據我們判斷採樣數據是遞增的,所以採用單位時間內數值的變化量做爲採樣展示.

wKioL1RDUqqwnaYWAAKWVU6QQOc560.jpg

updata interval :採樣時間間隔(採樣頻率)

new flexible interval interval :自己制定監控時間.

history storage period : 歷史存放數據的天數

trend storage period :出現最大變化的數據,如最高值,最低值.及歷史趨勢的值.

wKiom1RDUpTBWveIAAHo99ZhtfU824.jpg

OK 我們的item定義好了


2)定義Graphs 

 選擇graphs後進入graphs選擇右上角處的create graphs

wKioL1RDUz7CnSNEAAHBiQ3ao5U276.jpg

進入配置界面勾選配置選項

wKioL1RDU36AhZOAAALa-IxOEM0077.jpg

第三步:會出現那些item需要監控,勾取即可,這裏我們只定義了cpuinter,此處可以勾選多個選項在同一個圖形界面裏展示.

查看一下定義監控的結果

wKioL1RDVAXQ0ploAAJlwVA9dIE173.jpg

3)定義triggers

  triggers主要是用來定義監控的合理閾值,定義該閥值的主要目的是爲了爲監控的選項提供報警.當監控的值超過了我們定義的閾值,就會觸發報警機制.

  triggers的閥值定義是根據觸發器的表達式來定義的.觸發器的表達式高度靈活,可以創建出非常複雜的測試條件

wKioL1RDVEujiXkiAAFOE3bY9Z0504.jpg

報警級別定義:

Not classified :不正確的

Information:有信息報告

Warning:警告

Average:


查看我們的觸發是否出現

wKioL1RDVHySeFtBAAIY0AX8NGE968.jpg

圖中的那條虛線即爲我們定義的報警線.

4)定義acction

wKiom1RDVHTjtTsRAAModPAKkVg713.jpg

定義郵件服務

wKiom1RDVMvRkBJMAAEPMLc7X4E932.jpg

因爲這裏連接不了互聯網,採用本地郵件服務.localhost.發送郵件服務已經定義好了,下面來定義發送郵件的用戶

wKioL1RDVUXAHQdXAAMSGSEF9Ew868.jpg

定義發送郵件用戶的名字

wKiom1R72AXDKwnfAAIZ5_D42lw462.jpg

定義發送時間的級別

wKioL1RDVa2yKQbLAALp-RcG4ak094.jpg

定義事件名字

wKiom1RDVZXi0LUCAAJpXGl_Pe0954.jpg

定義報警條目

wKioL1RDVhHRiO6UAAMXGvDzs7M053.jpg

定定義報警方式

wKioL1RDVj_CMU7xAAK9zXX4bw8050.jpg

定義完畢後,ADD添加後,進行權限修改,不然收不到郵件

wKiom1RDVjfSR9-MAAIoI3UQQAE096.jpg

查看下報警時間是否已經成功執行

wKioL1RDVrbyXBvQAAN956fv5MY660.jpg

圖中的Actions 裏的OK 信息已經告訴我們時間執行成功.即郵件已經發送,來看下郵件信息.

wKiom1RDVqPgp_xsAAMox6uPBmM826.jpg

說明已經成功收到郵件信息.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章