對(duì)于網(wǎng)絡(luò)運(yùn)維監(jiān)控,一直很青睞Cacti這套開(kāi)源工具,其豐富的插件能滿(mǎn)足各種觀(guān)看和告警的需求,十多年來(lái)一直沒(méi)動(dòng)搖過(guò)更換的念頭。然而近期,辦公室新裝了一臺(tái)70英寸智能電視,目的就是在工作的間隙,抬頭就能方便直觀(guān)地看到監(jiān)控狀態(tài),而且是同辦公室的工作人員都能時(shí)不時(shí)瞟一眼。在4K屏絢麗畫(huà)質(zhì)的誘惑下,原有Cacti的Weathermap已經(jīng)讓人產(chǎn)生了審美疲勞,決定使用界面更美的開(kāi)源監(jiān)控投放到屏幕上,即賞心悅目,也能對(duì)外展現(xiàn)專(zhuān)業(yè)技術(shù)人員的科技感。不看不知道,曾經(jīng)以為除了Zabbix、Nagios、Ossim等幾個(gè)著名的開(kāi)源監(jiān)控,就沒(méi)有幾個(gè)像樣的工具,居然一下搜出好多各具特色的開(kāi)源平臺(tái),瞬間有一種落后于時(shí)代大潮的失落感。
經(jīng)過(guò)一番對(duì)Screenshots界面和SNMP支持程度的比較和篩選,一個(gè)名為Observium的監(jiān)控平臺(tái)吸引了我的目光。
Observium總體上是基于SNMP采集的監(jiān)控平臺(tái),也支 持 Smokeping、Nfsen等第三方工具的集成,官方文檔對(duì)部署的描述較為詳細(xì),常見(jiàn)的rhel/centos系 列,debian/ubuntu系列均能較好地支持這一系統(tǒng)。本文選用Debian-8.7.1進(jìn)行部署,可以充分利用Debian強(qiáng)大的軟件倉(cāng)庫(kù)。安裝分為三個(gè)部分。
首先啟用iptables防火墻,該版本Debian默認(rèn)并未啟用任何防火墻,可選用iptables,與rhel的配置有較大不同,它需要人為將防護(hù)規(guī)則的配置文件關(guān)聯(lián)到網(wǎng)卡初始化配置里并進(jìn)行調(diào)用,監(jiān)控系統(tǒng)自身的安全也不能被忽視(如圖1)。
圖1 debian配置和啟用iptables防火墻
圖2 配置本地主機(jī)名和debian軟件倉(cāng)庫(kù)
接著,在hosts文件中添加IP與域名,最后,添加阿里云的apt更新源,該源不僅穩(wěn)定,在各大運(yùn)營(yíng)商線(xiàn)路上也都有出色的速度表現(xiàn)(如圖 2)。
總的來(lái)說(shuō),Observium環(huán)境需求為Apache2.2/2.4、Fping、MySQL 5.5、Net-SNMP 5.7、RRDTool 1.3、PHP 5.5以及Graphviz等開(kāi)源基本工具,通過(guò)apt工具即可輕松解決包的依賴(lài)關(guān)系。
其中,Apache用于系統(tǒng)的前端展示和管理;Fping是一個(gè)增強(qiáng)的Ping工具,可以并發(fā)地執(zhí)行ICMPPing掃描;RRDTool是環(huán)狀數(shù)據(jù)庫(kù)工具,用于存儲(chǔ)和展示被監(jiān)測(cè)對(duì)象隨時(shí)間的變化情況,許多開(kāi)源監(jiān)控也都有用到;PHP即用于前端頁(yè)面的展示,也用于后臺(tái)采集的腳本;ipmitool是一個(gè)可選工具,用于監(jiān)控支持IPMI基線(xiàn)板控制器的服務(wù)器;libvirtbin也是可選工具,用于監(jiān)控基于libvirt承載的虛擬化環(huán)境。
圖3 配置Observium數(shù)據(jù)庫(kù)連接
圖4 配置Apache環(huán)境
接下來(lái)在/opt目錄下創(chuàng)建Observium主目錄,并下載解壓軟件到此,本文所用的版本為社區(qū)版0.16.10.8128,該版本每半年升級(jí)更新一次。
首先從樣例復(fù)制數(shù)據(jù)庫(kù)連接文件,并修改為擬采用的數(shù)據(jù)庫(kù)名和賬號(hào),接著在MySQL中創(chuàng)建庫(kù)名和賬號(hào),并通過(guò)Discovery.php腳本初始化數(shù)據(jù)庫(kù)(如圖3)。
此時(shí),可以看到字符形式顯示的Observium字樣以及數(shù)據(jù)庫(kù)初始化信息。接下來(lái)創(chuàng)建日志目錄,rrd圖形目錄,設(shè)置目錄屬主和配置Apache。
檢查Apache安裝狀態(tài),確認(rèn)當(dāng)前Apache版本為2.4.10,并根據(jù)Debian獨(dú)有的目錄結(jié)構(gòu)添加和啟用Observium虛擬主機(jī)配置,隨后啟用必須的module,禁用默認(rèn)配置文件(如圖4)。
通過(guò)腳本adduser.php初始化管理員用戶(hù)和密碼,設(shè)置level為10作為最高管理權(quán)限。通過(guò)add_device.php腳本添加第一個(gè)被監(jiān)控設(shè)備,僅在這一腳本不斷滾動(dòng)刷新的結(jié)果就深深吸引了我,原來(lái)SNMP可以提供遠(yuǎn)超Cacti中展現(xiàn)的那么一點(diǎn)對(duì)象;通過(guò)discovery.php腳本初始化自動(dòng)發(fā)現(xiàn)。
通過(guò)poller.php腳本進(jìn)行第一次輪詢(xún),輪詢(xún)這一點(diǎn)倒和Cacti非常一致。
最后是添加定時(shí)任務(wù)來(lái)實(shí)現(xiàn)自動(dòng)輪詢(xún),并且該定時(shí)任務(wù)不能在用戶(hù)的crontab–e編輯配置中運(yùn)行,必須配置到/etc/crontab或/etc/cron.d/observium中方可。定時(shí)規(guī)則為:每6小時(shí)完整掃描一次所有設(shè)備,每5分鐘掃描一次是否有新設(shè)備,每5分鐘進(jìn)行一個(gè)輪詢(xún),每天維護(hù)一次采集到的日志,每天維護(hù)一次產(chǎn)生的圖形數(shù)據(jù)。
圖5 Observium設(shè)備概要視圖
在瀏覽器中打開(kāi)系統(tǒng)http://observium.domain.cn界面,一只可愛(ài)的碩鼠躍然于眼前,給人一種輕松的感覺(jué)。登錄后,主體界面非常簡(jiǎn)潔,立即先找到添加設(shè)備菜單,分別添加了不同品牌的交換機(jī)、存儲(chǔ)和虛擬機(jī)等設(shè)備,在這里操作的簡(jiǎn)單超出了想象,假設(shè)默認(rèn)community字符串就是public,幾乎只需要填入IP點(diǎn)確定,就可以完成被監(jiān)控設(shè)備的添加。
靜候一段時(shí)間待發(fā)現(xiàn)和輪詢(xún)腳本執(zhí)行多遍,再回到主界面感受,每個(gè)被監(jiān)控設(shè)備的信息完備度再次將我震撼,從品牌logo到設(shè)備型號(hào),從操作系統(tǒng)版本到設(shè)備在線(xiàn)時(shí)長(zhǎng),從CPU、內(nèi)存、磁盤(pán)到溫度、電流、電壓,從所有的端口和鄰居發(fā)現(xiàn)到動(dòng)態(tài)路由的OSPF、BGP,幾乎是無(wú)所不包的展現(xiàn)出來(lái)(如圖5),被監(jiān)控對(duì)象的信息非常豐富,所做的操作僅僅只是添加了一個(gè)IP而已。
在首頁(yè)主面板里,并沒(méi)有常見(jiàn)商業(yè)系統(tǒng)的儀表盤(pán),主要有設(shè)備Up/Down狀態(tài)總覽、資產(chǎn)地圖、事件標(biāo)簽、警告信息列表等幾個(gè)部分,運(yùn)維人員的注意力更容易集中在事件標(biāo)簽,而不是花哨的界面上。
在每個(gè)設(shè)備的視圖里,分為左右兩欄(如圖6),左欄自上而下分別是主機(jī)概要信息,整機(jī)網(wǎng)絡(luò)上下行吞吐,事件日志;右欄自上而下分別是處理器、內(nèi)存、存儲(chǔ)、溫度。與Cacti相比,事件日志是Cacti所不具備的,整合在這里也是非常的實(shí)用,可以快速一覽設(shè)備當(dāng)前發(fā)生的情況。處理器信息在一個(gè)界面里清晰顯示了處理器的型號(hào)、數(shù)量,以及整體負(fù)載比例,內(nèi)存則在一個(gè)界面里顯示了used、buffers、cached、free、total的情況。相比Cacti逐個(gè)顯示每個(gè)線(xiàn)程的負(fù)載,每個(gè)內(nèi)存對(duì)象的圖,視覺(jué)上更清晰直觀(guān),也更有利于運(yùn)維人員監(jiān)控。
除此之外,網(wǎng)絡(luò)類(lèi)設(shè)備的CPU信息和溫度的采集則非常全面,常見(jiàn)的國(guó)內(nèi)外品牌的交換機(jī)都能準(zhǔn)確識(shí)別,而Cacti則需要人工逐個(gè)配置mib才可以監(jiān)控到,極大地簡(jiǎn)化了監(jiān)控對(duì)象的配置。
在網(wǎng)絡(luò)相關(guān)信息的組織上,不僅可以看到每個(gè)物理端口上流量,MTU、MAC、SPEED、VLAN等常用信息,也可以清晰地看到每個(gè)VLAN接口上配置的IP,還有IPv4/IPv6與ARP的對(duì)應(yīng)聯(lián)系,通過(guò)LLDP等發(fā)現(xiàn)協(xié)議,標(biāo)識(shí)每個(gè)端口對(duì)端連接設(shè)備的信息,大量信息的集中展示,對(duì)于網(wǎng)絡(luò)故障排查是非常直觀(guān)和方便的。
圖6 Observium設(shè)備詳細(xì)視圖
圖7 Observium自動(dòng)生成的拓?fù)?/p>
圖8 Cacti對(duì)短時(shí)間突發(fā)大流量不夠精確
圖9 Observium對(duì)短時(shí)間突發(fā)大流量較為精確
除此之外,Observium還自動(dòng)繪制接口與對(duì)端互聯(lián)設(shè)備的拓?fù)鋱D(如圖7),而這一切從添加了SNMP設(shè)備后全都無(wú)需任何配置就全部獲取。
在網(wǎng)絡(luò)流量的粒度上,專(zhuān)門(mén)做了一次實(shí)驗(yàn),從一臺(tái)生產(chǎn)交換機(jī)的端口上發(fā)出萬(wàn)兆流量,持續(xù)較短時(shí)間,比較Cacti和Observium都 設(shè) 置為5分鐘輪詢(xún)一次SNMP,Observium再次取得了滿(mǎn)意的結(jié)果(如圖 8)。Cacti在測(cè)試流量期間,并未修改端口屬性將千兆比特率改為萬(wàn)兆,只記錄為300Mbps+的流量,而Observium則在未經(jīng)人為干預(yù)前提下,較為準(zhǔn)確地記錄了9Gbps+的流量,這對(duì)短暫出現(xiàn)的異常記錄非常有幫助。