關(guān) 鑫
(遼河油田勘探開發(fā)研究院,遼寧 盤錦 124000)
數(shù)據(jù)中心是石油企業(yè)的核心基礎(chǔ)設(shè)施,中國石油天然氣集團(tuán)有限公司大力推進(jìn)數(shù)字化轉(zhuǎn)型和智能化油田建設(shè),數(shù)據(jù)中心穩(wěn)定、高效運(yùn)行,能為科研生產(chǎn)提供有力支撐。石油行業(yè)專業(yè)軟件更新迭代速度加快,數(shù)據(jù)中心規(guī)模逐漸擴(kuò)大,管理人員需要利用不同的軟件監(jiān)控設(shè)備的運(yùn)行狀態(tài),造成了運(yùn)維“孤島”現(xiàn)象,也增大了運(yùn)維工作的難度[1]。
Zabbix 是一個(gè)企業(yè)級(jí)分布式開源監(jiān)控解決方案,能夠監(jiān)控眾多網(wǎng)絡(luò)參數(shù)和服務(wù)器的健康度、完整度[2]。
Grafana 是一款數(shù)據(jù)可視化的開源軟件,可以結(jié)合數(shù)據(jù)監(jiān)控軟件將數(shù)據(jù)繪制成圖,同時(shí)也支持將數(shù)據(jù)庫數(shù)據(jù)直接繪制成圖,采用Go 語言進(jìn)行開發(fā)[3],數(shù)據(jù)來源多樣,展示方式靈活,為官方庫提供了豐富的儀表盤插件。
VMware vSphere 是VMware 的虛擬化平臺(tái),可將數(shù)據(jù)中心轉(zhuǎn)換為包括中央處理器(Central Processing Unit,CPU)和網(wǎng)絡(luò)資源在內(nèi)的聚合計(jì)算基礎(chǔ)架構(gòu),讓硬件變成可以動(dòng)態(tài)管理的“資源池”,從而提高資源的利用率,簡化系統(tǒng)管理流程[4]。
簡單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP)[5],主要用在管理局域網(wǎng)的設(shè)備,依靠用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol,UDP)傳輸數(shù)據(jù),廣泛應(yīng)用于交換機(jī)、分布式存儲(chǔ)的管理。
MariaDB 是MySQL 的一個(gè)分支,主要由開源社區(qū)維護(hù),采用GPL(通用公共許可證)授權(quán)許可,兼容MySQL。
數(shù)據(jù)中心內(nèi)設(shè)備帶外管理使用“管理網(wǎng)”vlan1,業(yè)務(wù)流量使用“科研網(wǎng)”vlan2,vlan1 與vlan2 在交換機(jī)上隔離,科研網(wǎng)通過防火墻連接外部辦公網(wǎng),具體監(jiān)控網(wǎng)絡(luò)拓?fù)浞桨溉鐖D1 所示。
圖1 監(jiān)控網(wǎng)絡(luò)拓?fù)?/p>
Zabbix 軟件對(duì)系統(tǒng)性能需求不高,且數(shù)據(jù)庫容量小,讀庫查詢頻率低,因此監(jiān)控系統(tǒng)規(guī)劃方案中只需要一臺(tái)計(jì)算機(jī),安裝Zabbix、數(shù)據(jù)庫、Grafana。
為了方便系統(tǒng)擴(kuò)展,提高系統(tǒng)穩(wěn)定性,可將全套軟件部署在成熟的商業(yè)虛擬化平臺(tái)VMware vSphere上,將Zabbix、數(shù)據(jù)庫、Grafana 相分離,安裝在不同的虛擬機(jī)上,可以根據(jù)需求隨時(shí)調(diào)整性能配置,橫向擴(kuò)展只需要克隆虛擬機(jī)。管理網(wǎng)vlan1、科研網(wǎng)vlan2 各安裝一套軟件,管理網(wǎng)與業(yè)務(wù)流量分離,減少干擾,提高安全性。管理網(wǎng)和科研網(wǎng)的數(shù)據(jù)匯集到Grafana,實(shí)現(xiàn)可視化展示,辦公網(wǎng)用戶通過防火墻可安全查看設(shè)備狀態(tài),不需要直接連到數(shù)據(jù)中心內(nèi)部,也不需要獲得服務(wù)器管理權(quán)限。具體方案如圖2 所示。
圖2 監(jiān)控系統(tǒng)規(guī)劃方案
按照網(wǎng)絡(luò)拓?fù)浜蛻?yīng)用規(guī)劃,拆分Zabbix server、數(shù)據(jù)庫、Grafana 后,共需5 個(gè)虛擬機(jī)。
在實(shí)際應(yīng)用中,監(jiān)控主機(jī)需100 個(gè)以上,監(jiān)控項(xiàng)超過10 000 項(xiàng),Zabbix server 要用到大量內(nèi)存緩沖,8 GB 內(nèi)存不足,虛擬機(jī)卡頓,改為16 GB 能大大緩解內(nèi)存壓力。數(shù)據(jù)庫直寫網(wǎng)絡(luò)附屬存儲(chǔ)(Network Attached Storage,NAS),不需要考慮本地磁盤空間。虛擬機(jī)具體硬件配置如表1 所示。
表1 虛擬機(jī)硬件配置
創(chuàng)建虛擬機(jī),安裝CentOS 7 操作系統(tǒng),可選桌面組件以方便調(diào)試,系統(tǒng)安裝完成后,安裝VMware Tools,關(guān)閉系統(tǒng)防火墻、SElinux,配置NTP、YUM 源,將虛擬機(jī)復(fù)制2 份。
將虛擬機(jī)轉(zhuǎn)移到有互聯(lián)網(wǎng)接入的設(shè)備,使其在VMware Workstation 環(huán)境下運(yùn)行。訪問Zabbix 官網(wǎng)地址,配置Zabbix 軟件倉庫配置部署包,運(yùn)行成功后,安裝Zabbix server、Zabbix web 前端,執(zhí)行命令為yum install Zabbix-server-mysql Zabbix-web-mysql。
啟動(dòng)第二個(gè)虛擬機(jī),安裝數(shù)據(jù)庫,執(zhí)行命令為yum install -y mariadb-server,啟動(dòng)數(shù)據(jù)庫并設(shè)置為開機(jī)啟動(dòng)。登錄MariaDB 數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫實(shí)例、賬戶,并授權(quán),測試賬戶可用后,導(dǎo)入Zabbix 初始架構(gòu)和數(shù)據(jù)。
下載對(duì)應(yīng)系統(tǒng)版本的rpm 文件,本地安裝并啟動(dòng),設(shè)置瀏覽器訪問權(quán)限,修改默認(rèn)密碼。在官方社區(qū)下載儀表盤插件,復(fù)制到軟件對(duì)應(yīng)目錄,重啟Grafana。
3.5.1 配置虛擬機(jī)
將虛擬機(jī)復(fù)制到VMware vSphere,克隆Zabbix、數(shù)據(jù)庫所在的虛擬機(jī),按安裝MariaDB 數(shù)據(jù)庫的要求修改配置,5 個(gè)虛擬機(jī)創(chuàng)建完成。
3.5.2 配置MariaDB
MariaDB 的默認(rèn)數(shù)據(jù)存放在/var/lib/mysql/目錄下,為方便擴(kuò)展和避免存儲(chǔ)空間不足,將此目錄映射到NAS。停止數(shù)據(jù)庫服務(wù),將mysql 目錄改名為mysql1,原位置新建mysql 目錄,編輯/etc/fstab 文件,將mysql1 內(nèi)文件復(fù)制到mysql 目錄中,重啟數(shù)據(jù)庫服務(wù)。
3.5.3 配置Zabbix server
編輯zabbix_server.conf 文件,修改數(shù)據(jù)庫位置、數(shù)據(jù)庫實(shí)例、用戶名、密碼。編輯zabbix.conf 文件,修改時(shí)區(qū),配置完成重啟服務(wù)。瀏覽器訪問ip/zabbix,進(jìn)行安裝設(shè)置。
3.5.4 安裝并配置Zabbix agent
下載對(duì)應(yīng)server 版本的agent 的rpm 包,本地安裝。編輯zabbix_agentd.conf 文件,修改Zabbix 服務(wù)器位置、主機(jī)名,重啟服務(wù)。
3.6.1 添加監(jiān)控主機(jī)
訪問zabbix 管理頁面,創(chuàng)建主機(jī),定義主機(jī)名、網(wǎng)際互聯(lián)協(xié)議(Internet Protocol,IP)地址、群組,套用自帶模板,斷開模板鏈接,清理掉不需要的監(jiān)控項(xiàng)。手動(dòng)運(yùn)行,搜索成功后關(guān)閉此功能,手動(dòng)添加對(duì)應(yīng)的監(jiān)控項(xiàng)。選擇部分關(guān)鍵監(jiān)控項(xiàng)設(shè)置觸發(fā)器,復(fù)制主機(jī),修改主機(jī)名、IP 地址、監(jiān)控項(xiàng)名稱,直接用于同類型的設(shè)備。
3.6.2 設(shè)置報(bào)警郵件
打開防火墻對(duì)應(yīng)端口,允許報(bào)警郵件發(fā)送到企業(yè)內(nèi)網(wǎng)郵箱,郵箱內(nèi)設(shè)置自動(dòng)轉(zhuǎn)發(fā)功能,將報(bào)警郵件轉(zhuǎn)發(fā)給所有運(yùn)維人員的郵箱,在微信中設(shè)置郵件提醒,即可實(shí)現(xiàn)Zabbix 報(bào)警信息同步推送到微信。
3.6.3 設(shè)置Grafana
打開Grafana 前端網(wǎng)頁,使用Admin 賬戶登錄,添加2 個(gè)vlan 的Zabbix 數(shù)據(jù)源,創(chuàng)建監(jiān)控頁面,添加儀表盤,選擇數(shù)據(jù)來源,即可實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)可視化。
Zabbix 默認(rèn)模板內(nèi)容豐富,應(yīng)針對(duì)不同服務(wù)器的不同用途,設(shè)置對(duì)應(yīng)的監(jiān)控邏輯。
第一,計(jì)算密集型服務(wù)器。CPU、內(nèi)存隨時(shí)能跑滿,不宜設(shè)置報(bào)警提醒,應(yīng)降低監(jiān)控項(xiàng)采樣頻率,避免影響服務(wù)器性能。重點(diǎn)監(jiān)控SNMP 數(shù)據(jù)、CPU 溫度、風(fēng)扇轉(zhuǎn)速、系統(tǒng)功耗。
第二,軟件應(yīng)用服務(wù)器。多用戶登錄,主要消耗內(nèi)存資源,CPU 占用率較低,應(yīng)監(jiān)控登錄用戶數(shù)、內(nèi)存占用率并設(shè)置報(bào)警提醒,內(nèi)存占用率超過閾值時(shí)觸發(fā)器激活,自動(dòng)執(zhí)行清理內(nèi)存腳本。
Linux 環(huán)境,編輯zabbix_agentd.conf,自定義監(jiān)控項(xiàng)使用shell腳本語句,不受Zabbix監(jiān)控項(xiàng)本身限制,可以實(shí)現(xiàn)許可證監(jiān)控、用戶管理、存儲(chǔ)目錄監(jiān)控、多項(xiàng)數(shù)據(jù)同時(shí)統(tǒng)計(jì)并計(jì)算。套用snmpwalk 工具查詢指定主機(jī)的對(duì)象標(biāo)識(shí)符(ObjectIdentifier,OID),shell 預(yù)處理返回結(jié)果,比直接用SNMP 監(jiān)控更靈活高效。
只展示需要關(guān)注的信息,就不會(huì)出現(xiàn)異常的性能數(shù)據(jù)。明確CPU 內(nèi)存占用率上下限,用graph 展示,設(shè)置閾值,低數(shù)值不顯示,合并同類主機(jī)到一格,曲線一目了然;網(wǎng)絡(luò)流量上下限差異極大,宜使用對(duì)數(shù)坐標(biāo)軸;溫度曲線,縱坐標(biāo)起點(diǎn)可設(shè)為35℃,低負(fù)載低溫設(shè)備不需要關(guān)注;用singlestat math 展示存儲(chǔ)目錄占用率,低數(shù)值賦予背景相近的灰色,高數(shù)值用橙色、紅色提醒,方便查找異常設(shè)備。
基于Zabbix 和Grafana 的油田數(shù)據(jù)中心監(jiān)控系統(tǒng)已上線運(yùn)行3 年,從最初的測試環(huán)境到生產(chǎn)環(huán)境部署,經(jīng)歷了軟件升級(jí)、硬件擴(kuò)容、功能優(yōu)化等階段,系統(tǒng)運(yùn)行穩(wěn)定,無須人工干預(yù),實(shí)現(xiàn)了集中監(jiān)控系統(tǒng)的設(shè)計(jì)初衷,成為非??煽康幕A(chǔ)設(shè)施。該系統(tǒng)圖形化展示數(shù)據(jù),顯著提高了巡檢效率,降低了運(yùn)維門檻;分析性能歷史數(shù)據(jù),為平臺(tái)優(yōu)化提供了幫助;即時(shí)報(bào)警,快速定位故障點(diǎn),保障了業(yè)務(wù)連續(xù)運(yùn)行。該系統(tǒng)監(jiān)控重點(diǎn)從物理設(shè)備逐漸轉(zhuǎn)向數(shù)據(jù)庫、應(yīng)用軟件,高效、自動(dòng)運(yùn)行的監(jiān)控系統(tǒng)在未來能得到更廣泛的應(yīng)用。