zabbix中文配置指南

zabbix中文配置指南                            

1.1 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以上);支持設備多;支持分佈式集中管理;開放式接口,擴展性強。

缺點:中文資料較少。

二、Zabbix配置文件

2.1 說明

Server:指安裝zabbix服務的服務器(以下簡稱服務器端),是最重要的部份,主要安裝在linux系統上(支持多種操作系統),採用mysql存儲監控數據並使用apache+php的方式呈現。

Agent:指安裝在被監控設備上的zabbix代理(以下簡稱代理),被監控設備上的數據由代理收集後統一上傳到服務器端由服務器端收集、整理並呈現。

SNMP:也是agent的一種,指支持SNMP協議的設備(也可以是服務器),通過設定SNMP的參數將相關監控數據傳送至服務器端(大部份的交換機、防火牆等網絡設備都支持SNMP協議)。

IPMI:Agent的另一種方式,主要應用於設備的物理性能監控,例如設備的溫度、風扇的轉速等。

2.2 Zabbix架構

  Zabbix支持多種網絡方式下的監控,可通過分佈式的方式部署和安裝監控代理,整個架構如(圖一、圖四)所示。130335905.png


圖一:架構圖

130428909.png

圖四:架構圖

2.3 Zabbix服務配置文件

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

130608532.png

圖二:配置文件

  主要的配置文件兩個:“zabbix_server.conf”負責服務器端的設定;“zabbix_agent.conf”用來設置客戶端代理參數;“zabbix_proxy.conf”用來設定分佈式的部署。

2.4 zabbix_server.conf說明

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

130715384.png

圖三:zabbix_server.conf

DBName=zabbix                            zabbix所屬數據庫名稱
           DBUser=zabbix                            zabbix所屬數據庫用戶
           DBPassword=www.xxxxxx.com                zabbix數據庫密碼
           StartPollers=30                         輪詢的初始值(0-1000)
           StartIPMIPollers=4                       IPMI輪詢的初始值(0-1000)
           StartPollersUnreachable=30               輪詢不可達的主機數(包括IPMI 0-1000)
           StartTrappers=8                         捕獲的初始值(0-1000)
           StartPingers=4                          ping的初始值(0-1000)
           StartDiscoverers=0                      自動發現的初始值(0-250)
           CacheSize=384M                          緩存大小
           CacheUpdateFrequency=300                緩存更新的頻率
           StartDBSyncers=8                        數據庫同步時間
           TrendCacheSize=128M                     總趨勢緩存大小
           AlertScriptsPath=/usr/bin               腳本的存放位置
           LogSlowQueries=1000                     日誌慢查詢設定

2.5 zabbix_agent.conf說明

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

LogFile=c:\zabbix\zabbix_agentd.log                         日誌文件的存放位置
           Server=192.168.0.189                                        zabbix服務器的IP
           Hostname=192.168.0.13  
                   被監控機的IP

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

131147196.png

圖五:zabbix_agent.conf

131211742.jpg

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

131247145.png

圖七:填入正確的主機名

2.6 Agent安裝

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

2.6.1 Linux Agent安裝

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

  1. useradd zabbix  

  2. cd /usr/local/zabbix

  3. tar zxvf zabbix_agents_1.8.linux2_6.i386.tar.gz

131431640.png

圖八:agent安裝

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

  1. /usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &

  2. ps –ef|grep zabbix_agentd

  如果進程沒起來,可查看agentd.log日誌來排查問題。(注:啓動時建議用全路徑,否則可能會出錯),加入開機運行。

  1. echo ‘/usr/local/zabbix/sbin/zabbix-agentd –c /usr/local/zabbix/zabbix_agentd.conf &‘ >>/etc/rc.local

2.6.2 Windows agent安裝

  Windows下解壓客戶端包到c:\zabbix,下載修改好的zabbix_agentd.conf文件也放到c:\zabbix,打開cmd命令行,執行:

  1. zabbix_agentd -c "c:\zabbix\zabbix_agentd.conf" -i

  2. zabbix_agentd -c "c:\zabbix\zabbix_agentd.conf" -s

  安裝後會在系統服務裏添加一個zabbix_agentd服務(圖九),會自動開機運行。如果需要將卸載客戶端,請執行(圖十):

  1. zabbix_agentd -c "c:\zabbix\zabbix_agentd.conf" -x

  2. zabbix_agentd -c "c:\zabbix\zabbix_agentd.conf" –d

131701504.png

圖九:zabbix agent服務

131728994.png

圖十:zabbix agent服務卸載、安裝命令

三、Zabbix配置

3.1 更改Zabbix map圖標

  Zabbix的maps用來圖形化顯示監控設備的拓撲圖,並且以不同的標記顯示故障事件,通過該圖表很直觀的顯示設備的整體情況。系統默認的圖標比較簡陋,如圖十一所示。通過更改系統自帶的圖標讓監控顯示更加直觀、方便(圖十二)。

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

131837981.png

圖十一:默認的maps圖

131901206.png

圖十二:新maps圖

  1. unzip zabbix_icons_set_generic.zip

  2. unzip make_img_insert_sql.sh.gz

  3. sh make_img_insert_sql.sh ./48 1000

  4. mv my_images_mysql.sql my_images_mysql_48.sql

  5. sh make_img_insert_sql.sh ./128 2000

  6. mv my_images_mysql.sql my_images_mysql_128.sql

  7. cat my_images_mysql_48.sql |mysql -u zabbix -p zabbix

  8. cat my_images_mysql_128.sql |mysql -u zabbix -p zabbix

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

3.2 添加短信報警(腳本方式)

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

3.2.1 新建短信發送腳本

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

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

  1. #!/bin/sh

  2. IFS=""

  3. sms="http://x1.xxxxxxxx.cn/gbk/interface/send_sms.aspx?username=xxxxxx&password=yyyyyy&receiver=$1&content=$2,$3"

  4. echo $sms|tr ' ''.'|iconv -f utf8 -t gbk >/tmp/sendsms.in

  5. cont=`cat /tmp/sendsms.in`

  6. curl $cont -s -o /tmp/sendsms.log

132135105.png

圖十三:sendsms.sh圖

3.2.2 增加報警方式類型

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

132207908.png

圖十四: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害難)和工作時間,點擊保存。(圖十五)

132239480.png

圖十五:user圖

3.2.4 增加報警動作

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

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

{HOST.CONN}                                主機IP地址
           {TRIGGER.NAME}                            觸發事件名稱
           {TRIGGER.STATUS}                           事件觸發狀態
           {TRIGGER.SEVERITY}                         事件觸發級別
           {ITEM.NAME1}                               監控項的名稱
           {ITEM.KEY1}                                監控項的參數
           {ITEM.VALUE1}                              監控項目的值

132411635.png

圖十六:默認action圖

132438330.png

圖十七:修改的action圖

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

132516964.png

圖十八:報警條件

  “Operations”指對於滿足條件的主機所採取的操作(圖十九)。選擇正確的發送週期“step”,默認爲0,“operation type”指的是操作方式,可選擇發送信息和執行遠程指令;“send user groups”指發送的用戶組;“send to users”發送到的用戶;“send only to”採用的具體發送方式。

132545667.png

圖十九:報警操作

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

132609780.png

圖二十:短信提醒

3.3 添加 Hosts

  Host是Zabbix監控的基本載體,所有的監控項都是基於host的。通過Configuration->Hosts->Create Host來創建監控設備(圖二一)。

134308787.png

圖二一:HOST

  按提示填入Host name、Groups、IP ,其他選項默認即可,Link Templates 處選擇一個模板,save即可成功添加設備。(注:如果host上沒安裝agent,添加後的狀態會是unmonitor,會採集不到值,Zabbix自帶大量的設備監控模板,我們添加主機時通過link到這些模板,就可以快速添加主機的監控項和告警觸發條件。)
一類的hosts可以歸屬到同一個Host Group,便於分類管理同一類設備,在Configuration->Host Group->Create Host Group 可以添加設備組。

3.4 添加 Items

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

  在Configuration->Hosts界面,我們能看到每個host所包含的items總數,點擊對應主機的items項,可以看到具體的每個item信息,這些items可以引用自templates,也可以自己創建。

134708549.png

圖二二:ITEM

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

132931517.png

圖二三:ITEM圖

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

3.5 添加 Triggers

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

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

133632387.png

圖二四:Triggers圖

132955712.png

圖二五:Triggers圖

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

3.6 添加 Graphs

  Zabbix的Graphs功能很強大,可以爲每一個item繪製圖表,也可以把多個items繪製在一張圖表內。通過configuration->hosts選擇要繪製圖表的host,點擊graphs,create graphs即可創建圖表。(圖二六、二七)

133734103.png

圖二六:graph圖

135036917.png

圖二七:graph圖

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

3.7 添加 Screens

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

  通過configuration->screen->creat screen來創建,創建時定義screen的行數和列數,點擊對應單元格內的change,添加相應的信息。

135140849.png

圖二八:screen圖

135214772.png

圖二九:screen圖

  通過monitoring-screen,可以查看之前配置好的信息。

3.8 添加 Maps

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

135309675.png

圖三十:maps圖

135332683.png

圖三一:maps圖

3.9 添加 SNMP監控

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

135407976.png

圖三二:SNMP圖

135455556.png

圖三三:SNMP圖

3.10 添加 Templates

  如果有大量的同一類設備,需要監控的信息也大致類似,一個個去修改相關參數比較麻煩,我們可以通過創建一個template來簡化操作。(圖三四)
Configuration->Host Groups->Template->Create Template。創建template後,在configuration->host->template下找到剛創建的Template_MicrosoftSQLServer2008,修改相關的items、triggers、graphs等信息,使滿足要求後link到相關的host即可。

135559404.png

圖三四:模板圖

3.11 添加Reports(定製報表)

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

135639714.png

圖三五:avaliability report圖

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

135712741.png

圖三六:triggers top 100圖

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

135738901.png

圖三七:bar report圖

3.12 Export/Import XML

  Zabbix提供將所有配置導出爲標準XML格式的文件,同樣,也支持導入標準格式的XML配置文件。

  通過configuration->Host->Export,勾選要導出的host,選擇export即可導出xml文件到本地。(圖三九)

135826951.png

圖三九:export圖

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

135918919.png

圖三八:import圖

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

四、Zabbix ITEM、模板及SNMP配置

4.1 Zabbix ITEM說明及配置

  Item是zabbix中最小的監控單位,相關的數據都由item提供。在item項中,最重要的是“Key”項,該項提供具體的監控點(圖四十)。這裏有幾個重要的值,分別如下:

type                          監控類型(有zabbix agent、snmp、jmx等)
           key                           監控值(對於windows監控點使用perf_counter前綴)
           type of information           信息的類型(數值型、字符型、日誌型、文本型等)
           data type                     數據的類理(整數型、浮點型等)
           Units                         單元(例如B=Byte)
           Update interval               數值的更新週期

140113689.png

圖四十:item圖

  可以通過zabbix_get指令來獲取被監控設備的數據值(圖四一)。其中:-s指定需要取值的客戶端;-p指定通訊端口;-k指定具體的鍵值。

140155841.png

圖四一:zabbix_get圖

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

140222760.png

圖四二:typeperf圖

140244477.png

圖四三:sql2005圖

140311561.png

圖四四:sql2008圖

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

140357490.png

圖四五:sql2008模板圖

4.2 Zabbix頁面顯示項配置

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

  1. vi /var/www/html/zabbix/include/menu.inc.php

140449498.png

圖四六:menu.inc.php圖

4.3 Zabbix SNMP說明及配置

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

140532296.png

圖四七:啓用snmp

  1. snmpwalk 172.16.1.1 -v1 -c public |egrep -i 'if(in|out)'|less

  2. snmpwalk -v1 -c public -On 172.16.1.1 ifInOctets.7

  3. snmpwalk -v1 -c public -On 172.16.1.1 ifOutOctets.7

  4. snmpwalk -v1 -c public -On 172.16.1.1 ifInOctets.9

  5. snmpwalk -v1 -c public -On 172.16.1.1 ifOutOctets.9

  6. snmpwalk 172.16.1.1 -v1 -c public |grep -i eth0

  7. snmpwalk 172.16.1.1 -v1 -c public |grep -i eth2

  通過第一條指令結合實際情況找出需要監控的網卡(一個設備上有多個網卡但僅啓用了其中的兩個),並且區分出內網網卡和外網網卡;通過其它指令進一步確認網卡的狀態及實時的數據,根據得出的數據結合設備實際情況定製zabbix的snmp item項,注意OID的填寫(圖四八、四九、五十)。

140626354.png

圖四八:snmpwalk指令

140653234.png

圖四九:snmpwalk指令

140719138.png

圖五十:SNMP item圖


zabbix安裝指南:http://waringid.blog.51cto.com/65148/904201

zabbix使用指南:http://waringid.blog.51cto.com/65148/945352

zabbix使用手冊:http://down.51cto.com/data/462129

zabbix配置手冊:http://down.51cto.com/data/469472


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