zabbix專題:第一章 zabbix簡介
我們為什麼需要監控?
常用的開源監控系統有哪些?
Zabbix是什麼?
Zabbix的功能和特性
Zabbix的架構
Zabbix的工作流程
zabbix的程序
zabbix的邏輯關系圖
zabbix監控環境中相關術語
zabbix的流程圖,其串聯了各術語之間的關系
zabbix的監控架構
嚴格來說,線上的伺服器沒有監控,是不允許上線的,在真實的生産環境中,我們運維工作,需要時時刻刻了解我們線上平台的運作狀态,伺服器出現故障的時候友善我們更直覺的去依靠監控平台去排除問題。
運維工作就是大部分時候都是通過各種工具來讓我們完成特定的任務, 監控也是如此, 目前也有很多開源的監控軟體可供我們使用 常見的開源監控簡單介紹
Zabbix是一個基于Web界面的分布式系統監控的企業級開源軟體。可以監視各種系統與裝置的參數,保障伺服器及裝置的安全營運。
<a href="http://s2.51cto.com/wyfs02/M00/89/B7/wKioL1gay7ywTT_rAAGgnCMyhOM373.png" target="_blank"></a>
Agent擷取被監控端資料,發送給Server。
Server記錄所接收到的資料,存儲在Database中并按照政策進行相應操作。
如果是分布式,Server會将資料傳送一份到上級Server中。
Web Interface将收集到的資料和操作資訊顯示給使用者。
預設情況下zabbix包含5個程式:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外一個zabbix_java_gateway是可選,這個需要另外安裝。下面來分别介紹下他們各自的作用。
<code>zabbix_agentd</code>用戶端守護程序,此程序收集用戶端資料,例如cpu負載、記憶體、硬碟使用情況等。
<code>zabbix_get</code>zabbix工具,單獨使用的指令,通常在server或者proxy端執行擷取遠端用戶端資訊的指令。通常使用者排錯。例如在server端擷取不到用戶端的記憶體資料,我們可以使用zabbix_get擷取用戶端的内容的方式來做故障排查。
<code>zabbix_sender</code>zabbix工具,用于發送資料給server或者proxy,通常用于耗時比較長的檢查。很多檢查非常耗時間,導緻zabbix逾時。于是我們在腳本執行完畢之後,使用sender主動送出資料。
<code>zabbix_server</code>zabbix服務端守護程序。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的資料最終都是送出到server
備注:當然不是資料都是主動送出給zabbix_server,也有的是server主動去取資料。
<code>zabbix_proxy</code>zabbix代理守護程序。功能類似server,唯一不同的是它隻是一個中轉站,它需要把收集到的資料送出/被送出到server裡。為什麼要用代理?代理是做什麼的?賣個關子,請繼續關注運維生存時間zabbix教程系列。
<code>zabbix_java_gateway</code>zabbix2.0之後引入的一個功能。顧名思義:Java網關,類似agentd,但是隻用于Java方面。需要特别注意的是,它隻能主動去擷取資料,而不能被動擷取資料。它的資料最終會給到server或者proxy。
<a href="http://s2.51cto.com/wyfs02/M02/89/B9/wKiom1gay8uAG8wyAAThmdQ-nuc210.png" target="_blank"></a>
1、<code>主機(host)</code>:要監控的網絡裝置,可由IP或DNS名稱指定; 2、<code>主機組(host group)</code>:主機的邏輯容器,可以包含主機和模闆,但同一個組織内的主機和模闆不能互相連結;主機組通常在給使用者或使用者組指派監控權限時使用; 3、<code>監控項(item)</code>:一個特定監控名額的相關的資料;這些資料來自于被監控對象;item是zabbix進行資料收集的核心,相對某個監控對象,每個item都由”key”辨別; 4、<code>觸發器(trigger)</code>:一個表達式,用于評估某監控對象的特定item内接收到的資料是否在合理範圍内,也就是門檻值;接收的資料量大于門檻值時,觸發器狀态将從”OK”轉變為”Problem”,當資料再次恢複到合理範圍,又轉變為”OK”; 5、<code>事件(event)</code>:觸發一個值得關注的事情,比如觸發器狀态轉變,新的agent或重新上線的agent的自動注冊等; 6、<code>動作(action)</code>:指對于特定事件事先定義的處理方法,如發送通知,何時執行操作; 7、<code>報警更新(escalation)</code>:發送警報或者執行遠端指令的自定義方案,如每隔5分鐘發送一次警報,共發送5次等; 8、<code>媒介(media)</code>:發送通知的手段或者通道,如Email、Jabber或者SMS等; 9、<code>通知(notification)</code>:通過標明的媒介向使用者發送的有關某事件的資訊; 10、<code>遠端指令(remote command)</code>:預定義的指令,可在被監控主機處于某特定條件下時自動執行; 11、<code>模闆(template)</code>:用于快速定義被監控主機的預設條目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模闆可以直接連結至某個主機; 12、<code>應用(application)</code>:一組item的集合; 13、<code>web場景(web scennario)</code>:用于檢測web站點可用性的一個活多個HTTP請求; 14、`前端(frontend):Zabbix的web接口;
<a href="http://s3.51cto.com/wyfs02/M01/89/B9/wKiom1gay9nzp3C7AAZqYPqOVFU008.png" target="_blank"></a>
常用的監控架構平台
1、<code>server-agentd模式:</code>
這個是最簡單的架構了,常用于監控主機比較少的情況下。
2、<code>server-proxy-agentd模式:</code>
這個常用于比較多的機器,使用proxy進行分布式監控,有效的減輕server端的壓力。
版權聲明:本文轉自 好筆記運維 51CTO部落格,原文連結:http://blog.51cto.com/zhang789/1868880,如需轉載請自行聯系原作者