天天看點

Zabbix中文配置指南二、Zabbix配置檔案三、Zabbix配置四、Zabbix ITEM、模闆及SNMP配置

原文位址:http://waringid.blog.51cto.com/65148/955939/

一、Zabbix簡介

   Zabbix是一個企業級的開源分布式監控解決方案,由一個國外的團隊持續維護更新,軟體可以自由下載下傳使用,運作團隊靠提供收費的技術支援赢利。官方網 站:http://www.zabbix.com官方文檔:http://www.zabbix.com/documentation/2.0 /manual/quickstart。Zabbix通過C/S模式采集資料,通過B/S模式在web端展示和配置。

Zabbix運作條件:

  Server:Zabbix Server需運作在LAMP(Linux+Apache+Mysql+PHP)環境下,對硬體要求低。

  Agent:目前已有的agent基本支援市面常見的OS,包含Linux、HPUX、Solaris、Sun、windows。

  SNMP:支援各類常見的網絡裝置

1.2 Zabbix功能

具備常見的商業監控軟體所具備的功能(主機的性能監控、網絡裝置性能監控、資料庫性能監控、FTP等通用協定監控、多種告警方式、詳細的報表圖表繪制) 支援自動發現網絡裝置和伺服器;支援分布式,能集中展示、管理分布式的監控點;擴充性強,server提供通用接口,可以自己開發完善各類監控。

1.3 優劣勢

優點:開源,無軟體成本投入;Server對裝置性能要求低(實際測試環境:虛拟機CentOS5,2GCPU 1G記憶體,監控5台裝置,CPU使用率基本保持在10%以下,記憶體剩餘400M以上);支援裝置多;支援分布式集中管理;開放式接口,擴充性強。

缺點:中文資料較少。

  Server:指安裝zabbix服務的伺服器(以下簡稱伺服器端),是最重要的部份,主要安裝在linux系統上(支援多種作業系統),采用mysql存儲監控資料并使用apache+php的方式呈現。

  Agent:指安裝在被監控裝置上的zabbix代理(以下簡稱代理),被監控裝置上的資料由代理收集後統一上傳到伺服器端由伺服器端收集、整理并呈現。

  SNMP:也是agent的一種,指支援SNMP協定的裝置(也可以是伺服器),通過設定SNMP的參數将相關監控資料傳送至伺服器端(大部份的交換機、防火牆等網絡裝置都支援SNMP協定)。

  IPMI:Agent的另一種方式,主要應用于裝置的實體性能監控,例如裝置的溫度、風扇的轉速等。

圖一:架構圖

<a href="http://img1.51cto.com/attachment/201208/130428909.png" target="_blank"></a>

圖四:架構圖

  Zabbix安裝後服務端預設的配置檔案存在安裝檔案夾中的/etc中,假設編譯的參數是“—prefix=/usr/local/zabbix”,那麼服務端的配置檔案則在“vi /usr/loca/zabbix/etc/”。如圖二所示。

<a href="http://img1.51cto.com/attachment/201208/130608532.png" target="_blank"></a>

圖二:配置檔案

  主要的配置檔案兩個:“zabbix_server.conf”負責伺服器端的設定;“zabbix_agent.conf”用來設定用戶端代理參數;“zabbix_proxy.conf”用來設定分布式的部署。

   Zabbix_server.conf中的參數比較多,設定值的跨度也很大,這裡僅列出常用的一些參數。如圖三所示。 Zabbix_server.conf參數除了保證服務正常運作外還涉及該伺服器的性能,如果參數設定不合理可能會導緻zabbix添加主機不正常、代理 端資料無法正常收集或是zabbix伺服器性能嚴重下降,經常報告CPU占用過高或是IO占用過高等問題。

<a href="http://img1.51cto.com/attachment/201208/130715384.png" target="_blank"></a>

圖三:zabbix_server.conf

<code>DBName=zabbix                           zabbix所屬資料庫名稱</code>

<code>DBUser=zabbix                           zabbix所屬資料庫使用者</code>

<code>DBPassword=www.xxxxxx.com               zabbix資料庫密碼</code>

<code>StartPollers=30                         輪詢的初始值(0-1000)</code>

<code>StartIPMIPollers=4                      IPMI輪詢的初始值(0-1000)</code>

<code>StartPollersUnreachable=30              輪詢不可達的主機數(包括IPMI 0-1000)</code>

<code>StartTrappers=8                         捕獲的初始值(0-1000)</code>

<code>StartPingers=4                          </code><code>ping</code><code>的初始值(0-1000)</code>

<code>StartDiscoverers=0                      自動發現的初始值(0-250)</code>

<code>CacheSize=384M                          緩存大小</code>

<code>CacheUpdateFrequency=300                緩存更新的頻率</code>

<code>StartDBSyncers=8                        資料庫同步時間</code>

<code>TrendCacheSize=128M                     總趨勢緩存大小</code>

<code>AlertScriptsPath=</code><code>/usr/bin</code>               <code>腳本的存放位置</code>

<code>LogSlowQueries=1000                     日志慢查詢設定</code>

2.5 zabbix_agent.conf說明

  Zabbix_agent.conf用來配置代理的參數,該檔案中需要更改的地方比較少,僅更改幾個常用的參數就行了(linux的agent和windows的都差不多,大同小異,以下的說明以windows為例)。如圖五所示。

<code>LogFile=c:\zabbix\zabbix_agentd.log                    日志檔案的存放位置</code>

<code>Server=192.168.0.189                                   zabbix伺服器的IP</code>

<code>Hostname=192.168.0.13                     被監控機的IP</code>

需要注意的是代理端的設定參數“Hostname=192.168.0.13”要和配置時填入的主機名稱一緻,不然日志中将會報“host {主機名}not found”的錯誤。如(圖六、七)所示。

<a href="http://img1.51cto.com/attachment/201208/131147196.png" target="_blank"></a>

圖五:zabbix_agent.conf

<a href="http://img1.51cto.com/attachment/201208/131211742.jpg" target="_blank"></a>

圖六:主機名不一緻的錯誤提示

<a href="http://img1.51cto.com/attachment/201208/131247145.png" target="_blank"></a>

圖七:填入正确的主機名

   Zabbix需要在被監控的host上安裝agent,在zabbix官網上下載下傳相應平台的agent包到各被監控端,按如下方式在被監控上運作 agent。(注:官網上下載下傳的agent包裡沒有運作agentd所必須的配置檔案,可以從zabbix server上拷貝一份zabbix_agentd.conf,這個conf檔案是所有平台都通用的)

2.6.1 Linux Agent安裝

  Linux、UNIX上的agent是編譯好了的,不用編譯安裝。(圖八)

<code>useradd</code> <code>zabbix  </code><code>cd</code> <code>/usr/local/zabbix</code> <code>tar</code> <code>zxvf zabbix_agents_1.8.linux2_6.i386.</code><code>tar</code><code>.gz</code>

<a href="http://img1.51cto.com/attachment/201208/131431640.png" target="_blank"></a>

圖八:agent安裝

  取一份server上的zabbix_agnetd.conf到本地,然後按說明修改,一般我們隻需修改2.5中的三個參數。修改完成後,運作agentd。

  如果程序沒起來,可檢視agentd.log日志來排查問題。(注:啟動時建議用全路徑,否則可能會出錯),加入開機運作。

2.6.2 Windows agent安裝

  Windows下解壓用戶端包到c:\zabbix,下載下傳修改好的zabbix_agentd.conf檔案也放到c:\zabbix,打開cmd指令行,執行:

  安裝後會在系統服務裡添加一個zabbix_agentd服務(圖九),會自動開機運作。如果需要将解除安裝用戶端,請執行(圖十):

<a href="http://img1.51cto.com/attachment/201208/131701504.png" target="_blank"></a>

圖九:zabbix agent服務

<a href="http://img1.51cto.com/attachment/201208/131728994.png" target="_blank"></a>

圖十:zabbix agent服務解除安裝、安裝指令

  Zabbix的maps用來圖形化顯示監控裝置的拓撲圖,并且以不同的标記顯示故障事件,通過該圖表很直覺的顯示裝置的整體情況。系統預設的圖示比較簡陋,如圖十一所示。通過更改系統自帶的圖示讓監控顯示更加直覺、友善(圖十二)。

  首先下載下傳Icon圖示,通過http://www.zabbix.com/forum/attachment.php?attachmentid=1855&amp;d=1239079235下載下傳圖示庫并壓至相關目錄。

<a href="http://img1.51cto.com/attachment/201208/131837981.png" target="_blank"></a>

圖十一:預設的maps圖

<a href="http://img1.51cto.com/attachment/201208/131901206.png" target="_blank"></a>

圖十二:新maps圖

  指令執行後可能出現128_g_router_off.png、128_g_router_on.png、128_g_router_unknown.png這三個檔案的錯誤提示,對于這三個檔案可以直接通過web方式更改送出。

  短信提醒功能(圖二十)可以讓運維團隊在第一時間了解故障,讓系統管理人員快速定位、解決故障。以下是詳細步驟:

3.2.1 建立短信發送腳本

   對于可以通http方式發送短信的方式都可以參考該腳本,這個例子中日常的短信發送都是通過windows平台發送,這裡把它轉換成了linux下可用 的腳本(圖十三)。這裡通過“curl”指令來實作http的操作,随後通後“iconv”指令實作編碼轉換(utf8轉gbk編碼),否則可能出現收到 短信是亂碼的情況。

  需注意的是該腳本的存放位置要和2.4中的腳本存放位置一緻。

<a href="http://img1.51cto.com/attachment/201208/132135105.png" target="_blank"></a>

圖十三:sendsms.sh圖

3.2.2 增加報警方式類型

   進入zabbix的WEB管理頁面,在“Administration”---“Media types”,建立一個告警方式類型,描述欄填寫“message send by mobile”,類型欄選擇“Script”,Script name欄填寫“sendsms.sh”,勾選“enable”單擊儲存按鈕。(圖十四)

<a href="http://img1.51cto.com/attachment/201208/132207908.png" target="_blank"></a>

圖十四:media types圖

3.2.3 增加報警通知的使用者

   進入zabbix的WEB管理頁面,在“Administration”---“Users”—“Create user”進入建立使用者頁面,在該頁面中選擇“Media”選擇建立報警類型“add”。設定告警方式為“message send by mobile”,在send to欄中設定接收報警的手機号碼,在相應的欄中設定事件的等級(N未分級、I資訊、W警告、A平均、H高、D害難)和工作時間,點選儲存。(圖十五)

<a href="http://img1.51cto.com/attachment/201208/132239480.png" target="_blank"></a>

圖十五:user圖

3.2.4 增加報警動作

  進入zabbix的WEB管理頁面,在“Configuration”---“Actions”—“Create action”進入建立動作頁面,在該頁面中共包含三項目内容:

   “Action”指報警動作的名稱、報警周期、标題、詳細内容及故障恢複時的報警标題和内容。這裡需要注意的是标題和内容不能太長,不然一條短信無法定 遠整顯示(圖十六、十七分别表示action預設的内容和精簡後的内容)。在标題和内容中都可以使用zabbix中自定義的宏。常見的宏有以下内容:

<code>{HOST.CONN}                                主機IP位址</code>

<code>{TRIGGER.NAME}                            觸發事件名稱</code>

<code>{TRIGGER.STATUS}                           事件觸發狀态</code>

<code>{TRIGGER.SEVERITY}                         事件觸發級别</code>

<code>{ITEM.NAME1}                               監控項的名稱</code>

<code>{ITEM.KEY1}                                監控項的參數</code>

<code>{ITEM.VALUE1}                              監控項目的值</code>

<a href="http://img1.51cto.com/attachment/201208/132411635.png" target="_blank"></a>

圖十六:預設action圖

<a href="http://img1.51cto.com/attachment/201208/132438330.png" target="_blank"></a>

圖十七:修改的action圖

   “Conditions”指滿足條件的主機。“Type of calculation”指的是條件的集合,分為兩種:“AND”指條件必須同時滿足,“OR”指滿足其中的一個條件就可以。“Conditions”指 滿足條件的主機。圖十八所表達的意思是:“當主機的狀态不是“維護”并且主機已經觸發“問題”并且主機組等于“project3 group”時的所有裝置”。

<a href="http://img1.51cto.com/attachment/201208/132516964.png" target="_blank"></a>

圖十八:報警條件

   “Operations”指對于滿足條件的主機所采取的操作(圖十九)。選擇正确的發送周期“step”,預設為0,“operation type”指的是操作方式,可選擇發送資訊和執行遠端指令;“send user groups”指發送的使用者組;“send t users”發送到的使用者;“send only to”采用的具體發送方式。

<a href="http://img1.51cto.com/attachment/201208/132545667.png" target="_blank"></a>

圖十九:報警操作

  以上的這些設定好後就點“save”儲存,當滿足條件的主機觸發報警時相關的使用者就會收到短信提醒(圖二十)。

<a href="http://img1.51cto.com/attachment/201208/132609780.png" target="_blank"></a>

圖二十:短信提醒

  Host是Zabbix監控的基本載體,所有的監控項都是基于host的。通過Configuration-&gt;Hosts-&gt;Create Host來建立監控裝置(圖二一)。 

<a href="http://img1.51cto.com/attachment/201208/134308787.png" target="_blank"></a>

圖二一:HOST

   按提示填入Host name、Groups、IP ,其他選項預設即可,Link Templates 處選擇一個模闆,save即可成功添加裝置。(注:如果host上沒安裝agent,添加後的狀态會是unmonitor,會采集不到值,Zabbix自 帶大量的裝置監控模闆,我們添加主機時通過link到這些模闆,就可以快速添加主機的監控項和告警觸發條件。)

一類的hosts可以歸屬到同一個Host Group,便于分類管理同一類裝置,在Configuration-&gt;Host Group-&gt;Create Host Group 可以添加裝置組。

  Item是監控項,是監控的基本元素,每一個監控項對應一個被監控端的采集值。(圖二二、二三)

  在Configuration-&gt;Hosts界面,我們能看到每個host所包含的items總數,點選對應主機的items項,可以看到具體的每個item資訊,這些items可以引用自templates,也可以自己建立。

<a href="http://img1.51cto.com/attachment/201208/134708549.png" target="_blank"></a>

 圖二二:ITEM

   通過點選具體item名字可以修改已有監控項的屬性,點選Satus的連結可以禁用/啟用這個監控項。(注:我們可以通過建立一個template,在 template中禁用掉所有不需要用到的items,然後把同一類hosts link to這個template,就不用一台台主機去更改items)新增item可以通過點選右上角的create item來建立。

<a href="http://img1.51cto.com/attachment/201208/132931517.png" target="_blank"></a>

圖二三:ITEM圖

  按提示逐項填入相關資訊即可,其中key是zabbix已經自帶的取值方法,Application類似于host groups,是item的組。(item key也可以自定義,後面會講到如何自定義監控項)。

  Trigger是觸發器,當Items采集值滿足triggers的觸發條件時,就會産生actions。(圖二四、二五)每一個trigger必須對應一個item,但一個item可以對應多個trigger。

   同樣,通過點選Configuration-&gt;Hosts-&gt;Triggers中某個trigger的名字,可以修改trigger的屬 性。(注意:引用自template的trigger觸發值是不能單獨修改的,必須在template中修改,或是複制一個同樣的trigger再修改, 然後禁用掉之前的)新增trigger可以通過點選右上角的create trigger來建立。

<a href="http://img1.51cto.com/attachment/201208/133632387.png" target="_blank"></a>

圖二四:Triggers圖

<a href="http://img1.51cto.com/attachment/201208/132955712.png" target="_blank"></a>

 圖二五:Triggers圖

   Expression中選擇對應的item、觸發方式及觸發值,Severity是告警級别,根據trigger的嚴重性來選擇。Zabbi 提供多種trigger觸發方式供選擇,常用的我們可以選擇last value &lt;/&gt;/=/#/N(最近一次采集值),或是選擇maximal value for period of time (一段時間内的最大值),等等。可以根據實際需要來設定觸發方式。

   Zabbix的Graphs功能很強大,可以為每一個item繪制圖表,也可以把多個items繪制在一張圖表内。通過 configuration-&gt;hosts選擇要繪制圖表的host,點選graphs,create graphs即可建立圖表。(圖二六、二七)

<a href="http://img1.51cto.com/attachment/201208/133734103.png" target="_blank"></a>

圖二六:graph圖

<a href="http://img1.51cto.com/attachment/201208/135036917.png" target="_blank"></a>

圖二七:graph圖

   Graph type:圖表樣式,有線狀、柱狀、餅狀;還可以自定義圖表大小,及Y軸最大最小值;通過add items可以添加在同一個圖表中展示的多個items(注:注意每個item的顔色及取值範圍,範圍相差太大圖表會顯示不全);配置好的graphs在 monitoring-&gt;graphs中檢視。在monitoring-&gt;last data下能快速檢視每個host的每個item的graph。

  Screen将多種資訊放在一起展示,便于集中展示某個host的多個資訊,或是比較多個hosts的同一種資訊,這些資訊可以為graphs、maps、server infos等等,幾乎涵蓋zabbix所有的監控資訊。(圖二八、二九)

  通過configuration-&gt;screen-&gt;creat screen來建立,建立時定義screen的行數和列數,點選對應單元格内的change,添加相應的資訊。

<a href="http://img1.51cto.com/attachment/201208/135140849.png" target="_blank"></a>

圖二八:screen圖

<a href="http://img1.51cto.com/attachment/201208/135214772.png" target="_blank"></a>

圖二九:screen圖

  通過monitoring-screen,可以檢視之前配置好的資訊。

  這裡可以添加關于主機的拓撲圖:configration-maps,在右上角可以create maps或者import map。這裡我們點選crate maps 點save儲存。(圖三十、三一)

<a href="http://img1.51cto.com/attachment/201208/135309675.png" target="_blank"></a>

圖三十:maps圖

<a href="http://img1.51cto.com/attachment/201208/135332683.png" target="_blank"></a>

圖三一:maps圖

   Zabbix snmp的監控要在configration 中hosts中添加相關主機和snmp裝置IP位址,一般用snmp監控網絡裝置就可以了。(圖三二、三三)在我看來zabbix 對server的監控一般是用agent來做的,是以zabbxi不建議用snmp對server監控,這一點和cacit有本質的差別,因為cacti 主要是通過snmp對主機和網絡裝置進行監控的。

<a href="http://img1.51cto.com/attachment/201208/135407976.png" target="_blank"></a>

圖三二:SNMP圖

<a href="http://img1.51cto.com/attachment/201208/135455556.png" target="_blank"></a>

圖三三:SNMP圖

  如果有大量的同一類裝置,需要監控的資訊也大緻類似,一個個去修改相關參數比較麻煩,我們可以通過建立一個template來簡化操作。(圖三四)

Configuration-&gt;Host Groups-&gt;Template-&gt;Create Template。建立template後,在configuration-&gt;host-&gt;template下找到剛建立的 Template_MicrosoftSQLServer2008,修改相關的items、triggers、graphs等資訊,使滿足要求後link 到相關的host即可。

<a href="http://img1.51cto.com/attachment/201208/135559404.png" target="_blank"></a>

圖三四:模闆圖

  在zabbix中關于報表的功能有三項:Avaliability report:(圖三五)整個系統可用的系統報表提供過濾功能。

<a href="http://img1.51cto.com/attachment/201208/135639714.png" target="_blank"></a>

圖三五:avaliability report圖

  Most busy triggers top 100:(圖三六)提供最常用的triggers 預覽。

<a href="http://img1.51cto.com/attachment/201208/135712741.png" target="_blank"></a>

圖三六:triggers top 100圖

  Bar report :(圖三七)可定制報表可以報多個報表整合到一起。

<a href="http://img1.51cto.com/attachment/201208/135738901.png" target="_blank"></a>

圖三七:bar report圖

  Zabbix提供将所有配置導出為标準XML格式的檔案,同樣,也支援導入标準格式的XML配置檔案。

  通過configuration-&gt;Host-&gt;Export,勾選要導出的host,選擇export即可導出xml檔案到本地。(圖三九)

<a href="http://img1.51cto.com/attachment/201208/135826951.png" target="_blank"></a>

圖三九:export圖

  Import可導入本地的XML檔案,注意格式一定要符合标準要求,如果server上有同名的配置,會被覆寫掉。(圖三八)

<a href="http://img1.51cto.com/attachment/201208/135918919.png" target="_blank"></a>

圖三八:import圖

  如果有大量的配置需要手動新增,譬如新增oralce監控,我們可以手動編寫xml,一次導入所有的items和triggers,但要注意格式,可自己導出一個配置後參考。

  Item是zabbix中最小的監控機關,相關的資料都由item提供。在item項中,最重要的是“Key”項,該項提供具體的監控點(圖四十)。這裡有幾個重要的值,分别如下:

<code>type</code>                          <code>監控類型(有zabbix agent、snmp、jmx等)</code>

<code>key                           監控值(對于windows監控點使用perf_counter字首)</code>

<code>type</code> <code>of information           資訊的類型(數值型、字元型、日志型、文本型等)</code>

<code>data </code><code>type</code>                     <code>資料的類理(整數型、浮點型等)</code>

<code>Units                         單元(例如B=Byte)</code>

<code>Update interval               數值的更新周期</code>

<a href="http://img1.51cto.com/attachment/201208/140113689.png" target="_blank"></a>

圖四十:item圖

  可以通過zabbix_get指令來擷取被監控裝置的資料值(圖四一)。其中:-s指定需要取值的用戶端;-p指定通訊端口;-k指定具體的鍵值。

<a href="http://img1.51cto.com/attachment/201208/140155841.png" target="_blank"></a>

圖四一:zabbix_get圖

  理論上隻要是windows性能螢幕可以檢視的值,通過zabbix都可以監控到,但是對于不同的伺服器安裝的同類應用有可能存在監控鍵值不一樣的情況,在windows系統下通過指令typeperf可以導出windows所有的監控鍵值(圖四二、四三、四四)。

<a href="http://img1.51cto.com/attachment/201208/140222760.png" target="_blank"></a>

圖四二:typeperf圖

<a href="http://img1.51cto.com/attachment/201208/140244477.png" target="_blank"></a>

圖四三:sql2005圖

<a href="http://img1.51cto.com/attachment/201208/140311561.png" target="_blank"></a>

圖四四:sql2008圖

  Windows 主機的監控可以參考圖四三、圖四四所導出來的監控點,在新增的item中建立key,格式為“perf_counter【監控值】”(例如 perf_counter[\Processor(_Total)\% Processor Time]),圖四五是參考SQL2005模闆結合導出的監控點檔案整理的SQL2008模闆,請重點對照Key項。

<a href="http://img1.51cto.com/attachment/201208/140357490.png" target="_blank"></a>

圖四五:sql2008模闆圖

   通過更改zabbix的配置檔案可以控制zabbix的頁面顯示内容,在zabbix初始安裝完成後,管理界面上的“configuration”中還 有一個頁面是“install”選項,存在誤操作重新安裝的風險,通過修改menu.inc.php檔案可以禁用該顯示項目(圖四六)。

<a href="http://img1.51cto.com/attachment/201208/140449498.png" target="_blank"></a>

圖四六:menu.inc.php圖

   SNMP協定主要用在對網絡裝置的監控方面,如交換機、防火牆等。首先需要在被監控裝置上啟用SNMP協定(圖四七),然後在zabbix中增加被監控 的主機。對于未找到snmp模闆的裝置就需要自己手動添加item,這裡通過snmp指令查詢到相關值,然後根據實際情況定制自己所需要item。

<a href="http://img1.51cto.com/attachment/201208/140532296.png" target="_blank"></a>

圖四七:啟用snmp

   通過第一條指令結合實際情況找出需要監控的網卡(一個裝置上有多個網卡但僅啟用了其中的兩個),并且區分出内網網卡和外網網卡;通過其它指令進一步确認 網卡的狀态及實時的資料,根據得出的資料結合裝置實際情況定制zabbix的snmp item項,注意OID的填寫(圖四八、四九、五十)。

<a href="http://img1.51cto.com/attachment/201208/140626354.png" target="_blank"></a>

圖四八:snmpwalk指令

<a href="http://img1.51cto.com/attachment/201208/140653234.png" target="_blank"></a>

圖四九:snmpwalk指令

<a href="http://img1.51cto.com/attachment/201208/140719138.png" target="_blank"></a>

圖五十:SNMP item圖

<a href="http://blog.51cto.com/search/result?q=zabbix" target="_blank">zabbix</a>

本文轉自    bigstone2012   51CTO部落格,原文連結:http://blog.51cto.com/lavenliu/1707606

繼續閱讀