服務(wù)器管理監(jiān)控系統(tǒng).doc
《服務(wù)器管理監(jiān)控系統(tǒng).doc》由會員分享,可在線閱讀,更多相關(guān)《服務(wù)器管理監(jiān)控系統(tǒng).doc(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
. 服務(wù)器管理、監(jiān)控系統(tǒng) 摘要:現(xiàn)今互聯(lián)網(wǎng)行業(yè)發(fā)展迅速,底層支撐互聯(lián)網(wǎng)服務(wù)的服務(wù)器等各種硬件設(shè)備規(guī)模越來龐大。如何管理有效地管理這些設(shè)備、實時發(fā)現(xiàn)其潛在的隱患、獲取其運行的狀態(tài),而顯得至關(guān)重要。根據(jù)這些信息才能合理地決定設(shè)備上所運行系統(tǒng)、應(yīng)用等服務(wù)的關(guān)閉與保留與掛起。本文介紹了利用Zabbix開源監(jiān)控解決方案,以及對該方案的二次開發(fā)而實現(xiàn)對服務(wù)器機房的專家系統(tǒng)。 關(guān)鍵字:機房運維 服務(wù)器監(jiān)控 Zabbix 目錄 摘要 2 1. 引言 4 2. Zabbix 監(jiān)控原理與應(yīng)用 5 2.1. Zabbix 監(jiān)控原理 5 2.2 Zabbix用戶配置 6 3. 監(jiān)控建立與二次開發(fā) 8 4. 系統(tǒng)展示 10 4.1用戶監(jiān)控對象添加 10 5.總結(jié) 14 參考文獻: 15 精選word范本! . 1. 引言 隨著現(xiàn)今互聯(lián)網(wǎng)行業(yè)的迅速發(fā)展,某些物聯(lián)網(wǎng)服務(wù)的用戶已經(jīng)達到了億級,如淘寶網(wǎng)注冊用戶已達到3.7億,僅在2015年“雙十一”當(dāng)天活躍用戶過億[1]。支撐如此龐大用戶使用的硬件基礎(chǔ)是規(guī)模龐大的服務(wù)器群。如何獲取每一臺服務(wù)器的運行狀態(tài),及時獲悉潛在隱患,出現(xiàn)問題及時鎖定排除顯得至關(guān)重要。機房運維人員以及高層決策人員只有在實時掌握這些信息后才可有效地對進行決策,如在訪問流量過大或其他惡意攻擊后是及時關(guān)閉服務(wù)還是啟動備用服務(wù),服務(wù)區(qū)癱瘓后是需要工作人員至機房處理硬件問題還是只需遠程重啟服務(wù)器等類似或簡單或復(fù)雜的決策,都需要底層專家系統(tǒng)信息的支持。 現(xiàn)今比較成熟的開源服務(wù)器底層數(shù)據(jù)的采集解決方案主要有Zabbix和Nagios。 Nagios是一個監(jiān)視系統(tǒng)運行狀態(tài)和網(wǎng)絡(luò)信息的監(jiān)視系統(tǒng),能監(jiān)視所指定的本地或遠程主機以及服務(wù),同時提供異常通知功能等[2]。Nagios可運行在Linux/Unix平臺之上,同時提供一個可選的基于瀏覽器的Web界面以方便系統(tǒng)管理人員查看網(wǎng)絡(luò)狀態(tài),各種系統(tǒng)問題,以及日志等等。 Nagios 可以監(jiān)控的功能有: 1、監(jiān)控網(wǎng)絡(luò)服務(wù)(SMTP、POP3、HTTP、NNTP、PING等); 2、監(jiān)控主機資源(處理器負荷、磁盤利用率等); 3、簡單地插件設(shè)計使得用戶可以方便地擴展自己服務(wù)的檢測方法; 4、并行服務(wù)檢查機制; 5、具備定義網(wǎng)絡(luò)分層結(jié)構(gòu)的能力,用"parent"主機定義來表達網(wǎng)絡(luò)主機間的關(guān)系,這種關(guān)系可被用來發(fā)現(xiàn)和明晰主機宕機或不可達狀態(tài); 6、當(dāng)服務(wù)或主機問題產(chǎn)生與解決時將告警發(fā)送給聯(lián)系人(通過EMail、短信、用戶定義方式); 7、可以定義一些處理程序,使之能夠在服務(wù)或者主機發(fā)生故障時起到預(yù)防作用; 8、自動的日志滾動功能; 9、可以支持并實現(xiàn)對主機的冗余監(jiān)控; 10、可選的WEB界面用于查看當(dāng)前的網(wǎng)絡(luò)狀態(tài)、通知和故障歷史、日志文件等[2]; 11、可以通過手機查看系統(tǒng)監(jiān)控信息; 精選word范本! 12、可指定自定義的事件處理控制器[3]。 其他一些大型企業(yè)也有自己獨立開發(fā)的服務(wù)器監(jiān)控服務(wù),如小米運維部的人性化互聯(lián)網(wǎng)企業(yè)級監(jiān)控系統(tǒng)Open-Falcon、淘寶運維部使用 OpenTSDB等,它們也有各自的優(yōu)點。 本文第一章概述了服務(wù)器機房的專家,以及可提供這些服務(wù)的一些解決方案等;第二章介紹Zabbix所提供的監(jiān)控原理即使用;第三章介紹Zabbix的實際監(jiān)控應(yīng)用以及二次開發(fā);第四章進行專家的分析;第五章對服務(wù)器機房專家系統(tǒng)進行總結(jié)。 2. Zabbix 監(jiān)控原理與應(yīng)用 Zabbix是一個B/S模式的企業(yè)級的監(jiān)控服務(wù)解決方案,用戶可以此獲取服務(wù)器等硬件、操作系統(tǒng)、中間件等的運行狀態(tài),為應(yīng)用層的決策提供決策信息。 2.1Zabbix 監(jiān)控原理 Zabbix由agent和server組成,其中agent負責(zé)采集服務(wù)器等監(jiān)控對象的數(shù)據(jù),server負責(zé)處理這些數(shù)據(jù),判斷異常等,并通過提供apache服務(wù)在web端實現(xiàn)對數(shù)據(jù)的可視化展示。 其中agent的類型主要監(jiān)控對象包括: (1)Zabbix-agent,根據(jù)Zabbix監(jiān)控方式實現(xiàn)對操作系統(tǒng)層級的信息采集,實現(xiàn)對系統(tǒng)的監(jiān)控。Zabbix-agent 有sender和get兩部分組成,分別通過命令來采集數(shù)據(jù)[4]。監(jiān)控對象有CPU運行狀態(tài)、磁盤I/O、內(nèi)存使用、進程線程數(shù)等;同時可利用其他應(yīng)用提供的端口實現(xiàn)對應(yīng)用服務(wù)的監(jiān)控,如MySQL數(shù)據(jù)庫等。 (2)、IPMI-agent,根據(jù)IPMI(Intelligent Platform Management Interface)接口實現(xiàn)對服務(wù)器等硬件設(shè)備的監(jiān)控,監(jiān)控對象包括CPU運行溫度、風(fēng)扇轉(zhuǎn)速、環(huán)境溫度等硬件信息的監(jiān)控; (3)SNMP-agent,根據(jù)SNMP(Simple Network Management Protocol)協(xié)議實現(xiàn)對交換機、路由器等網(wǎng)絡(luò)設(shè)備的監(jiān)控。監(jiān)控對象包括各端口運行狀態(tài)、流入流出流量等。 (4)JMX-agent,根具JMX(Java Management Extensions)提供的接口實現(xiàn)對Java類應(yīng)用的監(jiān)控。監(jiān)控對象包括Java虛擬機、Tomcat服務(wù),Hadoop、Spark等分布式服務(wù)的監(jiān)控等。 當(dāng)agent得到數(shù)據(jù)并發(fā)送給server后,server端將數(shù)組存放在位于服務(wù)端的數(shù)據(jù)庫,然后前端服務(wù)調(diào)用數(shù)據(jù)庫數(shù)據(jù)并將其可視化顯示。顯示給用戶的只有browser頁面,用戶在前端進行服務(wù)器管理并據(jù)此進行相應(yīng)決策。圖(1)表示了Zabbix 的監(jiān)控原理。 圖1 Zabbix監(jiān)控原理圖 Zabbix 的agent將數(shù)據(jù)發(fā)送給server并儲存在數(shù)據(jù)庫中,前端頁面調(diào)用數(shù)據(jù)庫中的數(shù)據(jù)與用戶交互。 2.2Zabbix用戶配置 Zabbix server處理數(shù)據(jù)時為了便于用戶操作按圖(2)的方式處理、集成監(jiān)控數(shù)據(jù)。 圖2數(shù)據(jù)處理、集成圖 其中host為用戶監(jiān)控的主機、設(shè)備或操作系統(tǒng)等;item為實際的監(jiān)控個體,可能是某一個CPU的使用率,磁盤讀寫速度等,一個host上可能存在若干item;每一個item都可設(shè)定對應(yīng)的trigger,根據(jù)閾值判斷還item的使用情況是否達到報警值。Trigger發(fā)現(xiàn)報警后將會在主界面顯示,也可都過短信、郵件、微信等向用戶發(fā)送報警信息,并連接后續(xù)修復(fù)操作。 因此用戶在實際使用時主要需配置host,item和trigger,分別如圖(3)、圖(4)、圖(5)所示。 圖3 Host配置圖 用戶配置監(jiān)控方式即監(jiān)控對象,包括監(jiān)控Host配置圖對象的名稱、所在群組、監(jiān)控方式、IP地址等。 圖4 item配置圖 用戶根據(jù)不同的監(jiān)控類型配置監(jiān)控的具體個體,可設(shè)置監(jiān)控元素、監(jiān)控周期、數(shù)據(jù)保存時限等。 圖5 trigger配置圖 Trigger配置報警信息,其中Expression為表達式判斷item的使用情況。如圖所示為空閑內(nèi)存與全部內(nèi)存的比值,但可用內(nèi)存的使用率小于20%時,將產(chǎn)生報警,警報級別為高。 除了上述3種配置外,用戶還可通過配置graph、map、screen等,分別配置數(shù)據(jù)展示圖,host關(guān)系圖、監(jiān)控大屏等。 3. 監(jiān)控建立與二次開發(fā) 本監(jiān)控與專家系統(tǒng)根據(jù)東海分局預(yù)報中心需要,利用Zabbix監(jiān)控體系并結(jié)合Java web技術(shù)二次開發(fā)建立,為整個預(yù)報中心提高機房管理、監(jiān)控專家服務(wù)。 3.1 搭建環(huán)境 本系統(tǒng)選擇Ubuntu server 作為Zabbix server所在服務(wù)器,上文四種監(jiān)控agent部署與客戶端采集數(shù)據(jù);數(shù)據(jù)庫選擇MySQL server;網(wǎng)頁服務(wù)選擇apache開源服務(wù);同時利用spring boot 框架進行java web開發(fā),整合Zabbix的api,并直接處理Zabbix數(shù)據(jù)庫,在交互更良好的頁面實現(xiàn)管理與決策。 3.2 Zabbix server建立 根據(jù)Zabbix的監(jiān)控原理,server的搭建主要包括數(shù)據(jù)庫的建立,apache web服務(wù)的建立,Zabbix server的建立等,另外Zabbix server只能搭建在Linux系統(tǒng)中。本系統(tǒng)中Zabbix server的安裝都選擇Ubuntu系統(tǒng)下的編譯安裝,具體建立流程不在贅述,詳情參見Zabbix用戶手冊[5]。 3.3 二次開發(fā) Zabbix 原始界面為英文界面,中文翻譯的界面十分生硬,不便于中國用戶使用。本系統(tǒng)對Zabbix進行了二次開發(fā),在Zabbix上用封裝了一層用戶管理系統(tǒng)。本系統(tǒng)使用Java web技術(shù),結(jié)合Zabbix api操作Zabbix數(shù)據(jù),同時根據(jù)用戶需要添加了針對性的服務(wù)。系統(tǒng)界面如圖6: 圖6平臺界面 如圖所示,用戶可添加硬件、中間件、操作系統(tǒng)等類型的host。 圖(7)為用戶添加host的界面: 圖7后臺host添加頁面 用戶可在次添加設(shè)備信息,同時根據(jù)Zabbix的api可將添加的數(shù)據(jù)發(fā)送值Zabbix server,實現(xiàn)Zabbix對該設(shè)備的監(jiān)控。Host添加代碼如下,host的添加選擇了使用Zabbix api實現(xiàn): /** * Created by light on 2016/2/26. */ public class ZbxHostServiceImpl { public static IHostService hostService = new HostServiceImpl(); static { // 登錄 Login.login(); } // Type: 1 - Zbx_agent; 2 - SNMP; 3 - IPMI 4 - JMX. // Port: 1 - 10050; 2 - 161; 3 - 12345; 4 - 632 public static CreateDuplicate createDuplicate = new CreateDuplicate(); String response; //創(chuàng)建防火墻 public String createHostFw(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"161","10081",2); return response; } // 創(chuàng)建主機 收集服務(wù)器性能信息:CPU、Memory等 public String createHostHost(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"10050","10081",1); return response; } //創(chuàng)建iis 服務(wù) public String createHostIIS(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"10050","10081",1); return response; } //創(chuàng)建jvm public String createHostJava(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"12345","10081",4); return response; } //創(chuàng)建 oracle 數(shù)據(jù)庫 public String createHostOracle(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"161","10081",2); return response; } // 創(chuàng)建 ping 監(jiān)控 changes needed here public String createHostPing(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"10050","10081",1); return response; } //創(chuàng)建路由 public String createHostRouter(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"161","10081",2); return response; } // 收集服務(wù)器硬件信息:溫度,轉(zhuǎn)速等 public String createHostServer(String hostName,String interfaceIp,String interfacePort) { response= createDuplicate.createHostEasy(hostName,interfaceIp,interfacePort,"10081",1); return response; } //創(chuàng)建IPMI public String createHostServerIPMI(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"623","10081",4); return response; } public String createHostSqlserver(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"10050","10081",1); return response; } //創(chuàng)建存儲 public String createHostStore(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"10050","10081",1); return response; } //創(chuàng)建交換機 With Group public String createHostSwitchboard(String hostName,String interfaceIp) { response= createDuplicate.createHostWithGroup(hostName, interfaceIp, "9","161","10208",2); return response; } //創(chuàng)建tomact服務(wù) public String createHostTomcat(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"12345","10081",4); return response; } // 創(chuàng)建虛擬機 public String createHostVmware(String hostName,String interfaceIp) { response= createDuplicate.createHostEasy(hostName,interfaceIp,"10050","10081",1); return response; } public String ZbxDeleteServer(String hostId) { // 數(shù)據(jù)準(zhǔn)備 HostDeleteRequest delete = new HostDeleteRequest(); delete.getParams().add(hostId); return hostService.delete(delete); } public JSONObject getHostIdAndName(){ HostGetRequest hostGetRequestContent = new HostGetRequest(); String[] outputs = {"name"}; hostGetRequestContent.getParams().setOutput(outputs); // hostGetRequestContent.getParams(); return hostService.get(hostGetRequestContent); } public JSONObject getHostIdAndName(String hostid){ HostGetRequest hostGetRequestContent = new HostGetRequest(); String[] outputs = {"name"}; String[] hostids = { hostid }; hostGetRequestContent.getParams().setOutput(outputs); hostGetRequestContent.getParams().setHostids(hostids); return hostService.get(hostGetRequestContent); } public static class HostArray{ public static ArrayList- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 服務(wù)器管理 監(jiān)控 系統(tǒng)
鏈接地址:http://www.3dchina-expo.com/p-5365959.html