Zabbix的原理
一、Zabbix簡介:
zabbix是一個基于WEB界面的提供分布式系統監控以及網絡監控功能的企業級的開源解決方案。
zabbix能監視各種網絡參數,保證服務器系統的安全運營;并提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。
1、為什么需要對各類系統運行進行監控?
當系統構建時的正常流程中,通常是不允許未被監控的系統或應用上線的,因為來被監控的系統存在不可預知性,故障未知等不確定因素,且無法及時被發現并排除的,這時整個架構或系統來說都是非常大的風險因患,所以我們在原則上是要對整個的架構或系統進行監控,隨時監控各個方面的指標是否正常,以提高系統的穩定性。
2、Zabbix是如何實現系統系統監控的
一個完整的監控系統所需的指標:
1、采樣:周期性的獲取某個被檢測指標的相關數據
2、存儲:將采樣的數據存儲在指定的存儲系統中,Zabbix默認是MySQL對于數據的監控可分為兩大類:歷史數據:可理解為過去某一時間點的數據趨勢數據:可理解為過去某一段時間的數據
3、展示:采集完數據后,為了使數據能更直觀的展現在用戶面前,可將采集的數據進行二次處理,做成圖像,Zabbix就是使用PHP程序將采集的數據通過Web Gui直觀的展示給用戶。
4、報警:當監控的指標出現異常時需要金控能自動的發出警報信息,甚至警報后能自動完成修復。
3、監控目的
監控是需要站在公司的業務角度去考慮,而不是針對某個監控技術的使用。
對系統不間斷時實監控
實際上是對系統不間斷的時實監控
實時反饋系統當前狀態
我們監控某個硬件、或者系統,都是需要能時實看到當前系統的狀態,是正常、異常、或是故障。
保證服務可靠性安全性
我們監控的目錄就是要保證系統、服務、業務正常運行
保證業務持續穩定運行
如果我們的監控做的很完善,即使出現故障,能第一時間接收到故障報報警,在第一時間處理解決,從而保證業務持續性的穩定運行。
4、監控方法
了解監控對象
了解CPU是如何工作的。
性能基準指標
我們要監控這個東西的什么屬性?比如如CPU的使用率、負載、用戶態、內核態、上下文切換。
報警閾值定義
怎么才算是故障,比如CPU的負載到底多少算高?內核態,用戶態分別跑多少算高?
故障處理流程
收到了故障報警,那么我們怎么處理?
5、監控核心
發現問題
當系統發生故障報警,我們會收到故障報警的信息。
定位問題
故障郵件一般都會寫某某主機故障、具體故障的內容,我們需要對報警內容進行分析,比如一臺服務器連不上:我們就需要考慮是網絡問題、還是負載太高導致長時間無法連接,又或者某開發觸發了防火墻禁止的相關策略等等,我們就需要去分析故障具體原因。
解決問題
當然我們了解到故障的原因后,就需要通過故障解決的優先級去解決該故障。
總結問題
當我們解決完重大故障后,需要對故障原因以及防范進行總結歸納,避免以后重復出現。
6、zabbix監控對象
zabbix支持監控各種系統平臺,包括linux和windows等主流操作系統,也可以借助SNMP或者SSH協議監控路由交換設備。
zabbix如果部署在服務器上,可以監控其CPU、內存、網絡等硬件參數,也可以監控具體服務或者應用程序,服務運行情況及性能。
① 硬件監控(zabbix IPMI interface)
通過IPMI接口進行監控,我們可以通過標準的IPMI硬件接口,監控備監控的對象的物理特征,比如電壓、溫度、風扇狀態、電源狀態等。
② 系統監控(zabbix agent interface)
通過專用的代理程序進行監控,與常見的master/agent模型類型,如果監控對象支持對應的agent,推薦選這種方式。
③ java監控(zabbix JMX interface)
通過JMX進行監控,JMX(java management extensions,即java管理擴展),監控JMX虛擬機時,使用這種方法非常不錯的選擇。
④ 網絡設備監控(Zabbix SNMP Interface )
通過SNMP協議與被監控對象進行通信,SNMP協議的全稱為simple network management protocol,被譯為簡單網絡管理協議,通常來說,我們無法在路由器、交換機這種硬件上安裝agent,但是這些硬件都支持SNMP協議。
⑤ 應用服務監控Zabbix Agent UserParameter
⑥ MySQL數據庫監控:percona-monitoring-plulgins
⑦ URL監控:Zabbix Web 監控?
7、Zabbix架構
7.1?server-client架構
① 也就是zabbix的最簡單的架構
② 監控機器和被監控機器之間不經過任何處理
③ 直接由zabbix-server和zabbix-agent之間進行數據交換。
④ 適用于網絡比較簡單,盡量在局域網內,設備比較少的監控環境。
?
?
7.2 server-proxy-client架構
① 其中proxy是server、client之間溝通的一個橋梁
② proxy本身沒有前端,而且本身并不存放數據,只是將agentd發來的數據暫時存放,然后再交給server。
③ 該架構經常是和master-node-client架構做比較。一般適用于跨機房、跨網絡的中型網絡架構的監控。
?
?
7.3 master-node-client架構
① 該架構是zabbix最復雜的監控架構,使用于跨機房、跨網絡設備較多的大型環境。每一個node都會同步server端。相當于也是一個server端
② node下面可以接proxy,也可以直接接clinet。
③ node有自己的配置文件和數據庫,其要做的是將配置信息和監控數據向master同步,master的故障或損不會對影響node節點的正常工作,但是會影響zabbix-server整體的完整性。
?
?
7.4?zabbix支持的監控內容
① 硬件
電源狀態、cpu溫度、機器溫度、風扇。
物理磁盤、raid、內存狀態、網卡狀態等。
② 軟件
HTTP接口、RPC接口的請求量、耗時、異常量等。
JVM上的線程數、死線程數、活躍線程數、GC耗時等。
(GC是垃圾收集的意思,內存處理是編程人員容易出現問題的地方,忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測對象是否超過作用域從而達到自動回收內存的目的。)
線程池、連接池的連接數、線程數、拒絕任務、任務耗時等。
日志和業務指標,包括錯誤日志、訪問日志、訂單量、PV流量等。
③ 數據
數據庫連接、QPS、TPS
并行會話數、緩存數、鎖狀態等
Nginx的活躍、丟棄、等待連接數、錯誤等
Tomcat上的線程數、請求量、耗時、內存消耗等
緩存、內存消耗、內存碎片、消息隊列等數據
8、zabbix常用術語
主機(host)
要監控的設備,可以有ip或是主機名(必須可解析)指定。
主機組(host group)
主機的邏輯容器,包含主機和模板,主機通常在給用戶或是用戶組指派監控權限時使用。
監控項(item)
一個特定指定的相關數據,比如內存的大小,CPU的使用率,甚至是服務的運行狀態等,監控項數據來源于被監控對象,并且每一個監控項都由一個key值來標識。
觸發器(trigger)
一個表達式,用于評估監控的值是否在合理的范圍,當接收的值超出觸發器的規定時,就被認為是故障,如果超出后再次符合,就被認為是正常。
事件(event)
觸發器觸發的一個特定時間,或者zabbix定義的一個自定上限注冊主機的事件,。
動作(action)
指根據配置,zabbix對于觸發器觸發的特定時間進行處理的具體措施,如執行某個腳本,或是向管理員郵箱發送郵件等等
報警升級(escalation)
發送警報或是執行遠程命令的自定義方案。
媒介(media)
發送通知(告警)的手段,比如:電話,微信,郵件,短信,企業微信,釘釘,等等
通知(notification)
通過指定媒介,向用戶發送的有關事件的信息
遠程命令
指運維人員提前寫好的命令,可以讓被監控主機在觸發事件后執行。
模板(template)
用于快速被監控主機的預設條目結合,通常包括了監控項、觸發器、應用等,模板可以直接連接到某個主機
應用(application)
一組監控的集合
web場景(web scennario)
用于檢測web站點可用性的一個或多個HTTP請求
前端(frontend)
zabbix的web接口
?
總結
- 上一篇: android usb arduino,
- 下一篇: requests库将cookieJar对