朱曉偉 劉迪 胡迅 黃爭舸



摘? 要:隨著勘察設計企業信息化的不斷發展,網絡服務器系統軟硬件架構也日益復雜,企業面臨著大量的應用程序、服務器、網絡設備等的監控運維問題。為此,基于Zabbix開源平臺構建了適合企業一體化信息體系現狀的監控運維系統,實現了對企業各類軟硬件的實時監控和故障報警,大大提高了運維效率,降低了運維人員的工作復雜度。
關鍵詞:實時監控;Zabbix;Grafana;自動化運維;勘察設計行業
中圖分類號:TP39 文獻標識碼:A? 文章編號:2096-4706(2023)01-0102-05
Research and Application of Monitoring Operation and Maintenance System
Based on Zabbix in Survey and Design Industry
ZHU Xiaowei, LIU Di, HU Xun, HUANG Zhengge
(The Architectural Design & Research Institute of Zhejiang University Co., Ltd., Hangzhou? 310028, China)
Abstract: With the continuous development of informatization in survey and design enterprises, the hardware and software architecture of network server system is increasingly complex, and enterprises are faced with a large number of monitoring operation and maintenance problems of applications, servers, network equipments, etc. Therefore, based on Zabbix open source platform, a monitoring operation and maintenance system suitable for the status of enterprise integrated information system is constructed, which can realize real-time monitoring and fault alarm of various software and hardware of enterprises, greatly improve the efficiency of operation and maintenance, and reduce the work complexity of operation and maintenance staff.
Keywords: real-time monitoring; Zabbix; Grafana; automatic operation and maintenance; survey and design industry
0? 引? 言
隨著勘察設計行業各大企業信息化建設的高速發展,在近幾年,行業大部分企業已經從原來的幾乎沒有管理系統,進入到信息管理系統全面開花階段,企業IT基礎架構規模也在不斷擴大。網絡設備、服務器、存儲、業務系統、數據庫、企業云等軟硬件設備的紛繁復雜,以及員工對于IT業務服務的高可用性需求,使得運維工作壓力加大,傳統的運維方式已經無法滿足保障生產業務系統的穩定運行,存在以下不足:
(1)機械式的監控,人工巡檢效率低下。
(2)不夠精確的監控,復雜IT元素難以有效監控。
(3)傳統運維工具單一分散,無法集中管控。
(4)運維人員無法做到24小時不間斷監控。
(5)缺少自動化或自服務,從發現問題到解決問題的時間周期長。
監控是整個運維過程乃至整個產品生命周期中非常重要的一環,應事前能夠及時預警發現故障,事后可以提供翔實的數據用于追查和定位問題。
沒有監控系統,IT部門將無法全面地了解企業各類系統的運行環境,進行故障診斷,也無法向企業管理層提供系統性的IT架構性能、成本和狀態等信息。當前行業企業普遍現狀是在缺少告警機制的情況下,企業無法第一時間洞悉到系統發生故障,往往只能通過被動的用戶反饋來獲取。系統運維人員大多數時候也只是充當了“救火”人員,大面積的系統或網絡癱瘓會給企業和用戶帶來極大的損失。通過企業監控運維系統,企業可以在系統受損的第一時間得到反饋,并及時對問題進行處理,大大減小系統故障給企業和用戶造成的影響,甚至可以做到無感知的修復。而且相比于運維人員去多個管理界面查詢發現問題,入口統一到一個監控運維平臺更能快速定位問題所在,提升工作效率。
另外,數字化轉型已經成為國家戰略、城市戰略,也是勘察設計行業轉型升級的重要方向。目前設計院的數字化轉型,整體上仍處于初級階段。數字化生產服務模式、數字化管理系統、數字化業務模式等是推動數字化轉型發展的幾個重要方向,而數字化監控運維系統正是數字化管理系統的重要組成部分。
鑒于此,構建數字化監控運維系統勢在必行,不僅是企業規模發展到一定階段后所必需的,也是響應國家戰略方向的重要之舉。
工欲善其事必先利其器,善于利用各種工具是推進企業數字化的重要手段。選擇監控工具的原則是根據企業具體業務場景、IT架構進行選擇,而不是盲目的追求新的、熱度高的工具。工具的選擇一般有三種模式:
(1)購買商業軟件。
(2)第三方公司外包。
(3)開源工具結合自主開發。
出于成本、時間、風險的考慮,又因為筆者所在企業的信息技術部門具有一定的自主研發能力,我們選擇第三種模式來構建企業監控運維系統。
為了構建監控運維系統,實現對服務器、存儲、網絡、應用程序、服務、集群等的監控,及時對發生的故障和問題進行告警通知,減少運維人員的工作壓力,本文基于Zabbix和Grafana兩大流行的開源系統,設計了面向勘察設計企業的監控運維系統。
1? 系統體系結構
1.1? 應用背景
在選擇具體的監控平臺之前,我們最先需要明確,我們監控的目標是什么,也就是我們應該監控什么,以及是用什么樣的工具、技術來實現對這些指標的監控。本文從搭建通用的監控運維系統開始,結合勘察設計行業的行業特征,全面的分析監控目標和內容指標,以浙江大學建筑設計研究院有限公司(UAD)為例,針對如何構建企業監控運維系統進行研究與應用。
在搭建這套監控運維體系之前,UAD已經構建了一套面向勘察設計行業的一體化信息體系,其中集成了大量的軟硬件系統,使其作為一個有機整體對外提供服務,用以滿足企業的全方位需求。如圖1所示,體系分為兩層結構,上層為各類應用軟件系統,為企業用戶提供應用支持;下層為IT基礎設施支撐層,由傳統IT基礎設施和企業私有云混合而成,用以保證用戶快速便捷地訪問和使用上層的應用系統。
UAD的一體化信息體系是一個集約型的信息體系,它能夠整合不同的系統或資源,涵蓋多種關系并能在統一的構架下運行,是一個軟硬件互為支撐的體系[1]。擁有各類物理機和虛擬化服務器約80多臺,交換機等網絡設備50多臺,支撐企業辦公、設計出圖、市場運營、教學科研、圖檔管理等30多個業務系統及網站。業務復雜,出現故障后人工排查困難,運維人員工作枯煩瑣且忙碌,經常因不能及時處理故障遭到員工的抱怨,極大影響了員工對于UAD信息化建設的認同感和體驗。
基于這些情況對已有的開源工具進行調研和比較,對市面上的監控開源工具進行比較,如表1所示。相較于Nagios、Cacti、Prometheus等使用最為廣泛的開源監控系統,Zabbix無論在代碼熟練度、源代碼質量、系統架構,還是用戶友好性、面向對象理念等方面都具有相當優勢[2]。因此,本文最終選擇Zabbix作為本運維監控平臺的基礎進行設計,并選擇Grafana作為可視化展示平臺,不用Zabbix自帶的UI模塊,目的是為了更好地展示,在充分利用Zabbix在監控方面的優勢的同時,彌補Zabbix在UI方面的不足。
綜上,為了達到提高運維效率、節約人力資源的目的,我們通過Zabbix和Grafana這套監控體系,根據前端實際生產應用情況完成大數據監控,進行大體系的實時監控、預警和統計分析,及時發現問題并做出快速響應,保證整個體系運轉正常。
1.2? 整體架構
在IT架構方面,UAD為了物理容災,把服務器架在主院區和分院區的兩個機房中。由于一臺Server主機(Zabbix Server)的CPU、內存都是有限的,監控的內容越多,損耗它的資源也越多,故在系統搭建架構方面,我們在兩個院區各自放一臺代理監控服務器(Zabbix Proxy),由它來進行監控。Zabbix Proxy是Zabbix Server與Zabbix Agent之間溝通的一個橋梁,Zabbix Proxy本身沒有前端,而且其本身并不存放數據,只是將Agent發來的數據暫時存放,而后再提交給Zabbix Server[3]。如圖2所示,是Zabbix的監控流程圖。其中主機是指被監控的設備,監控項是指被監控的主機特定監控指標數據,觸發器可以看作是一個控制中心,用于評估監控項的值是否在合理的范圍內,它會設定一個條件,當監控項中接收到的數據達到預設的條件時,便會執行相應的動作(如企業微信報警或執行特定腳本對問題進行告警或自愈等)。
最后Zabbix Web界面負責統一表現出來,運維管理員可以通過電腦或移動端訪問,充分體現分布式監控集中化管理的特性。整體架構圖如圖3所示。
1.3? 開發技術
Zabbix是一個基于Web界面的企業級監控解決方案,并且是一個高度集成的開源分布式網絡監控解決方案[4]。全球各行各業各種大小規模的組織機構都有選擇Zabbix作為主要的監控平臺,尤其是互聯網企業。
Zabbix擁有很多優秀的特性,正是這些特性,讓它可以實時監控數萬臺設備,采集百萬級指標,真正做到全方位監控,是適用于絕大多數IT基礎架構、服務、應用和云資源的監控解決方案,可以監控的內容包括服務器監控、網絡監控、應用監控、云監控、服務監控等。
Grafana是一個跨平臺的開源度量分析和可視化面板(Dashboard),有著非常漂亮的圖表和布局展示,功能齊全的度量儀表盤和圖形編輯器,可對采集的數據查詢和可視化展示,并及時通知。雖然Zabbix自5.4版本之后新增了強大的UI特性,但是Grafana的UI更加靈活,擁有豐富的插件,功能強大。隨著業務的愈加復雜,對軟件系統的要求越來越高,這意味著我們需要隨時掌控系統的運行情況。因此,對系統的實時監控以及可視化展示,就成了基礎架構的必須能力。
綜上,Zabbix具備較完善的監測告警系統模塊,Grafana則提供了可配置的監測數據可視化能力。因此本文方案將以Zabbix為核心,集成Grafana,再補充關鍵監測數據采集能力,最終實現滿足企業實際需要的監控運維系統。
2? 系統總體設計與實現
UAD的一體化體系分兩層結構:上層是各種應用系統,直接面向企業用戶;下層則是基礎設施支撐平臺,由傳統IT架構和企業私有云混合而成。
本系統通過Zabbix支持各類監控方式,對各層資源進行監控,具體如圖4所示。
基礎層:主要偏硬件、監控主機和底層資源。比如CPU、內存、網絡吞吐、硬盤I/O、存儲等。
中間層:包括Nginx、Redis、MySQL、Tomcat等。
應用層:HTTP訪問的吞吐量、響應時間、返回碼、調用鏈路分析、性能瓶頸、API,還包括用戶端監控等。
不同的監控內容需要不同的監控方式來獲取監控數據,如表2所示。
2.1? 基于SNMP協議對設備的監控
勘察設計企業組網中常見的幾類設備有邊界核心交換機、匯聚交換機、接入交換機、路由器、UPS、存儲等,這類設備不能或者不方便在目標監控設備上安裝Agent代理程序進行獲取,Zabbix允許我們通過SNMP(簡單網絡管理)協議獲取這些設備的CPU使用率、內存使用率、供電、設備溫度、端口進出流量等監控信息。
UAD一體化信息體系使用了各種類型的存儲,包括廉價的SATA、高性能EMC、NAS等,存放了企業最重要的數據。在數據中心中,存儲設備是非常核心且關鍵的基礎設施,任何一個相關告警都會讓運維人員警覺。在推進Zabbix存儲監控的過程中,一個非常棘手的困難點是存儲不單單是硬件設備,SNMP協議不能獲取到帶內的性能信息,但也不像主流操作系統那樣可以安裝Zabbix Agent來做數據采集。
對于這種問題的處理,我們積累的經驗是:首選使用RESTful等外部接口來獲取監控數據,在不支持此條件的情況下,在Zabbix Proxy服務器上通過自定義監控封裝廠家推薦工具或方法來監控,避免對重要設備的侵入,同時相關的存儲告警也能夠及時觸發,并幫助存儲管理人員迅速發現問題、定位原因。
2.2? Windows服務器的監控
UAD目前服務器主要以Windows為主,占比在90%以上,是各類業務系統的主力承載者,故急需實時監控以保障它們的穩定運行。在操作系統層面,經常會出現的問題有系統假死無響應、存儲空間不夠等,因此需要監控的指標項包括CPU使用率、內存使用率、硬盤資源使用率等。
Zabbix默認使用Zabbix Agent監控操作系統,且它已經為我們配置好了很多用于監控主機的模板,包括CPU監控、內存監控、系統進程監控、系統時間監控、磁盤讀寫監控、磁盤容量監控、網卡流量監控、服務監控等,其內置的監控項可以滿足系統大部分的指標監控,監控內容非常豐富。但是有時候,我們并不需要監控那么多內容,只需要監控某一些特定信息即可。因此,我們的解決方案是:根據企業實際情況,使用Zabbix默認的操作系統模板監控相應的主機,通過進行一些優化來確保達到最好的監控效果,同時兼顧Zabbix對系統性能的開銷。
Zabbix對Windows系統監控的默認模板包含了11個應用集,各個應用集又包含了不同的監控項。在本系統搭建過程中,一塊很重要的工作就是針對行業業務管理系統的特點和需要,在現有模板的基礎上對應用集、監控項、觸發器和圖形進行定制化增刪改。
以CPU的監控項為例,模板默認有8個監控項,在對5個監控項設有觸發器。如圖5所示。
可以看到,Zabbix未提供能查看CPU使用率的監控項,也就是CPU使用的百分率,在實際應用時,這個指標是十分受關注的,因此需新創建一個監控項,并對這個監控項創建一個觸發器,如CPU使用率過高(比如5分鐘均值大于90%),其表達式為:
{Windows Server Model:cpu_time.avg(5m)}>90
當實際運行情況達到上述條件時,Zabbix就會發出告警。
2.3? 基于性能及進程的Web系統監控
UAD的一體化信息體系中有著30多個不同的Web業務系統,其中企業綜合信息管理平臺是最重要的Web系統,涵蓋了企業設計生產全過程數字化的各個環節,保證其Web服務的高可用性和高性能,是企業正常運轉的重要前提。
HTTP狀態碼、響應時間、頁面加載速度是最能直觀反映Web服務可用性和性能的3個指標。基于這三個指標,本文從一個或多個應用中自定義選取域名/URL組合成模塊,可實現方便快捷的自定義關注某一業務、某一域名、某一子域名,以及由此推測某一功能模塊下的頁面用戶體驗。
對于運行在一體化信息體系應用還需要監視常用的中間件,如有Oracle、MySQL、SQLSERVER等主流的關系型數據庫,還有像Redis、Neo4J這樣的NoSQL數據庫,Tomcat、Nginx等Web容器的性能。
數據庫以MySQL為例,MySQL數據庫是目前主流的關系型數據庫管理系統應用軟件。本系統將使用Agent 模式對Zabbix默認的監視進行擴展。Agent將會對MySQL3306連接線程的存活狀態、主從延時、連接池狀態、平均TPS/QPS、慢SQL語句個數等進行監視,如圖6所示。
Web容器以Tomcat為例,由于Tomcat Web應用容器是基于JAVA語言開發的,Zabbix支持以JMX對其性能進行監視。通過JMX監視,可以監視到Tomcat服務占用CPU的情況、Tomcat網絡進出流量、內存分配情況、請求數、并發線程數量等。
2.4? 工地設備監控
隨著數字化、大數據、互聯網、物聯網等信息技術的發展,近年來智慧工地這一概念在業界嶄露頭角,在工程建設中得到良好的實踐應用[5]。智慧工地應用的設備種類繁多,專業性強,目前缺乏整體的自動化監控手段[6]。目前這塊內容由于要和具體的工程項目對接,本系統只對少數的項目設備進行了監控。如浙大科創項目中監控的設備包括:環境采集(傳感器)設備、塔吊設備、無人機設備、閘機設備、各點位攝像頭等。
3? Grafana接入Zabbix數據源
在大屏監控展示的時候,我們會發現Zabbix Web界面顯得沒有科技感,不夠高端,這時候我們可以通過Grafana來優化我們的Zabbix Web界面。
Grafana的搭建步驟相對簡單,主要分以下3個步驟:
(1)在一臺CentOS上部署Grafana。
(2)安裝Grafana連接Zabbix的插件。
(3)Grafana與Zabbix整合。
本系統從廣度和深度對監控數據可視化展示,根據實際的監控可視化需要,在Grafana上配置了全局、應用、主機、主機服務等多個維度的監控儀表板,方便運維人員從多個視角掌握監控、告警情況,實現對主機的集中監控[7]。圖7是某個業務服務器的關鍵監控指標。
4? 企業微信告警模塊
告警功能是Zabbix監控平臺的重要組成部分,便于運維人員在系統出現故障時及時知曉,并第一時間處理[8]。企業微信是UAD一體化信息體系的重要組成部分,應用十分廣泛,Zabbix默認只支持郵件的方式進行告警,本系統通過編寫接入企業微信的腳本,將告警信息通過企業微信進行發送。根據業務的類型,我們對不同監控模塊的告警通知,設置了不同的運維人員,以企業微信應用作為載體,將告警信息推送到具體的運維人員。這既保證了消息推送的時效性,又保證了告警通知信息不外泄,兼顧了信息的安全性。實際運行情況如圖8所示。
5? 結? 論
本文基于Zabbix設計了一套面向勘察設計行業的企業監控運維系統,能夠對企業一體化信息化體系中的網絡通信設備、物理服務器、虛擬服務器、私有云,以及運行在其上的各類軟件應用系統進行實時監控。系統在運行期間成效顯著,幫助運維人員快速定位發現問題,降低了運維的難度和風險,提升了運維服務質量,保障了企業一體化信息體系的穩定性和可用性。
在今后的工作中,我們將繼續從廣度和深度方面還將進一步拓展監控系統,希望在監控的種類、指標項的優化、豐富其他報警手段、完善的系統賬戶配置、自動修復、基于Zabbix API的二次開發等方面做進一步提升,推進企業智能化運維的大力發展。
參考文獻:
[1] 黃爭舸,胡迅,朱曉偉,等.一體化信息體系助力設計院快速提升企業效能 [J].中國勘察設計,2019(7):56-61.
[2] 楊立苑,胡佳軍,鄧衛華,劉喆玥.基于Zabbix的省級氣象云監控運維系統 [J].計算機系統應用,2021,30(8):73-80.
[3] 吳秉羲,李明峰.基于Zabbix和Grafana的蘇州臺媒體云監控系統 [J].廣播電視網絡,2020,27(3):111-112.
[4] 吳夫丹.基于云平臺的服務器監控系統設計 [D].西安:西安工業大學,2014.
[5] 喬妹莉.淺析智慧工地建設對項目管理的積極作用 [J].建設監理,2021(7):60-62.
[6] 韓嘯虎,陳超.智慧工地設備運行狀態自動化監控的解決方案研究 [J].電子元器件與信息技術,2020,4(5):70-71.
[7] 潘少博,張和,戴誼.基于Zabbix+Grafana構建微服務自動化監控運維平臺 [J].網絡安全和信息化,2020(10):77-79.
[8] 劉遠超,李樹彬.基于Zabbix和微信企業號實現網絡監控的研究 [J].山東科學,2017,30(4):124-130.
作者簡介:朱曉偉(1989—),男,漢族,浙江海鹽人,室主任助理,碩士,研究方向:計算機應用、數據集成、協同設計;劉迪(1985—),男,漢族,湖南澧縣人,中級工程師,本科,研究方向:虛擬化、私有云;胡迅(1983—),男,漢族,浙江諸暨人,副高,碩士,研究方向:協同設計;黃爭舸(1969—),女,漢族,浙江紹興人,研究員,博士,研究方向:協同設計、管理信息系統、三維數字化設計。
收稿日期:2022-08-18