汪永寧,母俐麗
(1.淮南職業(yè)技術學院,安徽 淮南 232001;2.北京化工大學 北方學院信息學院,北京 065201)
筆者通過與數(shù)十家中小企業(yè)的IT運維人員進行溝通,總結出中小型企業(yè)IT運維工作的普遍共性有:運維人員少,經(jīng)驗不足;運維工作內(nèi)容全面,實際工作量大;運維系統(tǒng)支撐資金少。要在以上困境中,讓運維人員“輕松運維”,對于企業(yè)IT運行狀況“運籌帷幄、決勝千里”,最好的方案應該是讓企業(yè)實現(xiàn)IT運維自動化,解放運維人員的勞動力,那又如何實現(xiàn)運維自動化呢?筆者認為,解決問題的核心應是“技術”。下面將介紹一些容易實現(xiàn)和實施的技術來幫助企業(yè)實現(xiàn)運維自動化。
數(shù)據(jù)的采集是IT運維工作的根本,只有完成了數(shù)據(jù)的擷取,才可以通過數(shù)據(jù)來了解企業(yè)IT系統(tǒng)運行的狀況,才能夠進行分析、預防故障的發(fā)生、處理故障以及進行系統(tǒng)的升級、優(yōu)化工作。在此給大家介紹三種數(shù)據(jù)采集技術。
2.1.1 SNMP技術
SNMP,就是簡單網(wǎng)絡管理協(xié)議(Simple Network Management Protocol)的簡稱。目前共有3個版本:SNMPv1、SNMPv2c、SNMPv3?,F(xiàn)在大多數(shù)設備基本上都支持這3個版本,以SNMPv2c最為常見,3個版本的約定細節(jié)可以分別查看RFC1157、RFC1901、RFC2571技術文檔。
要利用SNMP來采集數(shù)據(jù),首先要使被采集端設備和采集端設備都要支持SNMP協(xié)議,對于WINDOWS操作系統(tǒng)就是在【控制面板】中“添加或刪除程序”,在“Windows組件”中,勾選并雙擊“管理和監(jiān)控工具”,最后勾選中“簡單網(wǎng)絡管理協(xié)議”;而對于LINUX系統(tǒng)建議通過yum install net-snmp進行安裝;而對于網(wǎng)絡設備,如交換機、路由器來說主要是通過命令行或是WEB管理中啟動SNMP,并設置讀寫團體字就可以了。
如,獲取WINDOWS主機的CPU利用率:
說明CPU的利用率分別為23%和14%。
2.1.2 通過WMIC擷取WINDOWS系統(tǒng)的數(shù)據(jù)
WMI(Windows Management Instrumentation)是Windows管理規(guī)范是Windows管理系統(tǒng)的核心,WMIC提供了從命令行接口和批命令腳本執(zhí)行系統(tǒng)管理的支持,為WMI名稱空間提供了一個強大的、友好的命令行接口。
下面是在WINDOWS系統(tǒng)下通過WMIC擷取遠程主機進程數(shù)據(jù)的示例:
2.1.3 通過腳本(linuxshell、perl、php、bat)進行數(shù)據(jù)采集
有些數(shù)據(jù)是不能通過snmp或是WMIC方式取得的,要求運維人員通過腳本來實現(xiàn),可以采用linux的shell腳本、Perl腳本、或是PHP腳本程序來實現(xiàn)。如要采集監(jiān)控機到遠程主機的網(wǎng)絡延時,就可以寫個腳本通過PING指令向目標主機發(fā)送ICMP數(shù)據(jù)包,通過返回的結果來獲取數(shù)據(jù)。
如:(一個簡單的Perl腳本)
還有,如要采集apache服務器的狀態(tài)、mysql數(shù)據(jù)庫服務器的運行狀態(tài)參數(shù)等,都可以通過腳本來實現(xiàn)。
系統(tǒng)以及應用的日志,是在運維中預知故障、定位故障、分析故障的主要信息之一,所以運維管理系統(tǒng)中,日志信息是不可或缺的一部分。
目前,Linux系統(tǒng)常用有 syslog、syslog-ng、rsyslog三種日志管理系統(tǒng)。其中syslog是老版本Linux系統(tǒng)默認的日志守護進程。而在許多新的LINUX系列發(fā)布版本中,如CentOS6.0、Ubuntu10,都用rsyslog替換了原有的syslog。對于syslog-ng所實現(xiàn)的功能基本上rsyslog都可以實現(xiàn),所以建議使用syslog和rsyslog。
Rsyslog主要功能有:可以通過UPD和TCP來接收遠程主機日志;實現(xiàn)自身系統(tǒng)日志管理以及作為日志中心服務器管理遠程主機日志;支持多種數(shù)據(jù)庫,mysql、oracle等,將日志發(fā)送到數(shù)據(jù)庫中;豐富的日志過濾處理規(guī)則語法。
2.3.1 利用RRDTOOL存儲和展現(xiàn)數(shù)據(jù)
RRDtool代表 “Round Robin Database tool”,其實是一種存儲數(shù)據(jù)的方式,使用固定大小的空間來存儲數(shù)據(jù),在一段時間后,當所有的空間都存滿了數(shù)據(jù),就又從頭開始存放。其特點為:
(1)RRDtool可以進行數(shù)據(jù)存儲,但同時RRDtool又允許創(chuàng)建圖表,其他的數(shù)據(jù)庫只能存儲數(shù)據(jù),不能創(chuàng)建圖表。
(2)RRDtool的每個rrd文件的大小是固定的,而普通的數(shù)據(jù)庫文件的大小是隨著時間而增加的。
(3)其他數(shù)據(jù)庫只是被動的接受數(shù)據(jù),RRDtool可以對收到的數(shù)據(jù)進行計算,例如前后兩個數(shù)據(jù)的變化程度(rate of change),并存儲該結果。
(4)RRDtool要求定時獲取數(shù)據(jù),其他數(shù)據(jù)庫則沒有該要求。
圖1就是利用RRDtool繪制出的一個LINUX服務器負載(Load)的圖形:
圖1 LINUX服務器負載(Load)圖
2.3.2 利用PHP開發(fā)簡單的網(wǎng)頁展現(xiàn)數(shù)據(jù)
Php是開放源代碼、免費的、具有跨平臺性的高效率開發(fā)語言、并且有圖像管理功能,可以將用SNMP、WMI、腳本以及Rsyslog取得的數(shù)據(jù)存入Mysql后,用PHP進行圖表的輸出,可以說是實現(xiàn)IT運維低成本運維的一個好語言工具。在此,列出幾個可以用PHP結合mysql的開發(fā)的IT運維中提高工作效率的功能。
(1)IP地址管理
通過頁面Form表單提供數(shù)據(jù),之后寫入數(shù)據(jù)數(shù)據(jù)庫,最后用php對IP地址進行管理,可以對其進行增加、編輯、刪除、回收、導入、導出到EXCEL等操作,還可以實現(xiàn)對IP地址的使用進行歷史記錄的查詢。
(2)故障記錄統(tǒng)計分析
利用php結合mysql對運營維護中的故障進行記錄,并且可以按時間段對故障記錄進行不同故障級別、不同故障類別的統(tǒng)計分析,并以柱形圖、餅形圖的方式直觀展現(xiàn)分析結果。幫助IT運維分析故障、總結問題、積累經(jīng)驗。
(3)IT設備資產(chǎn)管理
幫助企業(yè)實現(xiàn)個人計算機、服務器、網(wǎng)絡設備、各種信息產(chǎn)品的IT資產(chǎn)信息化管理,簡化企業(yè)對于資產(chǎn)配置、設備維保、資產(chǎn)盤點方面的統(tǒng)計工作,可以快速地查詢IT設備品牌配置、故障維修的情況,實現(xiàn)合理的配置資源,為后期采購決策提供有力的參考數(shù)據(jù),通過將IT資產(chǎn)信息與人、物、財、場地等資源的結合,使得高效率的資產(chǎn)管理和企業(yè)運營得以實現(xiàn)。
(4)運維知識庫管理
通過運維知識庫管理,可以按企業(yè)自身業(yè)務特點不斷地積累運維經(jīng)驗知識庫。在運維過程中,運維人員將自己處理事件的方法和步驟添加到知識庫中作為知識共享,當其他人再遇到此類事件后能夠找到參考的解決方案,提高解決問題的效率。系統(tǒng)提供對經(jīng)驗知識點的詳細分類,具備方便、高效的搜索功能,避免知識流失,減少故障處理轉交率,降低運維成本,以實現(xiàn)快速響應IT服務的需求。
2.4.1 常用的報警方式有三種
報警系統(tǒng)客戶端。值班人員在客戶機上安裝、運行客戶端程序,當監(jiān)視參數(shù)異變時,客戶機在發(fā)出音響同時彈出畫面。
短信方式,GSM模塊通過RS232接入報警系統(tǒng)服務器。系統(tǒng)在產(chǎn)生報警信息時系統(tǒng)向值班人員移動電話發(fā)送短信息報告當前的報警內(nèi)容,提醒注意處理。
電話查詢/通知方式,系統(tǒng)通過調(diào)制解調(diào)器接入普通電話撥入/撥出裝置,用以實現(xiàn)遠程語音報警/遠程語音查詢功能。系統(tǒng)在產(chǎn)生報警信息時,自動撥打值班人員電話用語音通知所發(fā)生的事件;對于報警系統(tǒng)所監(jiān)視的信息,可通過撥打專線電話查詢所有信息。
2.4.2 通過腳本以及接口實現(xiàn)告警
對于告警功能的實現(xiàn),目前采用EMAIL、短信方式、MSN方式告警基本上就已經(jīng)可以滿足告警通告的需求。
利用發(fā)EMAIL告警,可以通過PHP類代碼來實現(xiàn),也可以利用SHELL腳本來發(fā)送告警郵件,下面是用sendmail來發(fā)送告警郵件的簡單示例:
對于手機短信告警,可以利用短信貓或是飛信的WEB接口,通過curl或是WEB表單提交參數(shù)來實現(xiàn),同樣還有MSN告警,也可以利用其WEB接口來實現(xiàn)。
在IT運維工作中,運維信息數(shù)據(jù)的采集、分析處理、日志的管理、數(shù)據(jù)的展示、故障的告警以及運維的輔助性功能,都可以通過腳本或是現(xiàn)在的一些免費的程序來簡化運維人員工作,只要企業(yè)的IT運維人員可以積極拓展思路,80%的工作都可以通過程序開完成。