400-650-1086
首頁(yè) > 最新資訊 > 企業(yè)新聞 > 正文

如何使用Cacti監(jiān)控機(jī)房溫度

admin 2015-07-29 09:39:59 0

  本文基于Cacti監(jiān)控軟件,針對(duì)在無(wú)人值守的情況下,對(duì)機(jī)房的溫度進(jìn)行實(shí)時(shí)的監(jiān)控和圖形顯示,并容許設(shè)定報(bào)警溫度,機(jī)房超溫發(fā)送給機(jī)房管理人員。

  系統(tǒng)原理

  為了實(shí)時(shí)監(jiān)控機(jī)房的溫度,本文基于Cacti監(jiān)控軟件,對(duì)機(jī)房的溫度進(jìn)行實(shí)時(shí)的監(jiān)控和圖形顯示,并容許設(shè)定報(bào)警溫度,機(jī)房超溫則發(fā)送報(bào)警信息至機(jī)房管理人員。

  Cacti是一套基于php、mysql、snmp及rrdtool開(kāi)發(fā)的網(wǎng)絡(luò)流量監(jiān)測(cè)圖形分析工具,利用Cacti的SNMP信息輪詢機(jī)制,實(shí)時(shí)獲取各種信息,并顯示在Cacti監(jiān)控界面。Cacti同時(shí)具有強(qiáng)大的插件功能,比如具備閾值報(bào)警功能的thold插件,可以發(fā)送郵件,還可以后臺(tái)編程發(fā)送短信至網(wǎng)絡(luò)管理人員的手機(jī)終端。

  系統(tǒng)在一臺(tái)服務(wù)器上采集溫度,在Cacti服務(wù)器上使用ftp獲取到該數(shù)據(jù),Cacti使用snmp獲取到該數(shù)據(jù)放入rrd數(shù)據(jù)庫(kù),最后在Web上圖形顯示。

  系統(tǒng)實(shí)現(xiàn)

  溫度采集

  購(gòu)買一款USB接口的溫度計(jì),該溫度計(jì)必須支持將溫度記錄保存至文本文件的功能。

  系統(tǒng)每次重啟溫度計(jì)監(jiān)控軟件都會(huì)新建一個(gè)以創(chuàng)建時(shí)間為文件名的日志文件,溫度計(jì)監(jiān)控軟件還會(huì)每天新建一個(gè)日志文件。日志文件以如下的格式為記錄,每行一條:

  1,35.63,2012-4-2 16:13:39

  為了使Cacti服務(wù)器讀取到最后的溫度記錄,將在Windows服務(wù)器上編寫一個(gè)計(jì)劃任務(wù),該任務(wù)定時(shí)執(zhí)行,將日志文件的最后一條溫度記錄讀取到特定的文本文件,以供Cacti服務(wù)器采集。該批處理的腳本如下:

  @echo off

  cd H:\temper

  dir/B/OD>H:\filelist.txt

  setlocal enabledelayedexpansion

  for/f“delims=”%%i in(H:\filelist.txt)do(

  seta=%%i

  )

  cd H:\temper

  @copy“%a%”H:\temp.txt

  set d=H:\temp.txt

  for/f“usebackq delims=”%%i in(%d%)do(

  set d=%%i

 ?。?/p>

  if NOT“%d%”==“H:\temp.txt”(@echo %d%>H:\

  ftpfortemper\lastline.txt)

  上述腳本的功能大概描述如下:讀取日志文件所在目錄的所有文件,按照日期排序?qū)懭雈ilelist.txt文件,然后讀取filelist.txt文件最后一條記錄,該記錄為溫度計(jì)軟件目前在讀寫的日志文件,賦值給變量a,然后讀取該日志文件copy給temp.txt以供讀取(防止文件讀取的時(shí)候溫度計(jì)軟件需要進(jìn)行訪問(wèn)),最后讀取temp.txt,如果temp.txt文件為空,則將最后一條記錄即溫度計(jì)最后讀取到的溫度寫入到lastline.txt。

  添加計(jì)劃任務(wù),每4分鐘運(yùn)行一次:

  schtasks /create /sc minute/mo 4 /tn “temper”/tr H:\ftpfortemper\filelist.bat

  最后,在Windows服務(wù)器上開(kāi)啟ftp服務(wù),設(shè)置賬號(hào)和密碼,訪問(wèn)目錄為擁有l(wèi)astline.txt文件的文件夾。

 

Cacti監(jiān)控的實(shí)現(xiàn)

  1.編寫腳本ftp.sh以便snmp讀取溫度信息。

  #!/bin/bash

  ftp-i222.201.131.230 2121>/dev/null 2>&1

  errorline=‘0’

  prevtemper=`tail-n1/home/zqliu/temper/temper_

  log`

  lastline=`tail-n1/lastline.txt`

  if[“$prevtemper”=“$errorline”];then

  prevtemper=`tail-n1/home/zqliu/temper/errorline`

  fi

  if[“$prevtemper”=“$lastline”];then

  echo $errorline>>/home/zqliu/temper/temper_log

  tail-n1

  else

  tail-n1/lastline.txt>>/home/zqliu/temper/temper_

  log

  awk-F“,”‘{print$2}’/lastline.txt

  fi

  2.設(shè)定.netrc文件,使服務(wù)器可以不用密碼從溫度采集服務(wù)器下載lastline.txt文件。

  3.修改snmp配置文件#vi/etc/snmp/snmpd.conf,增加如下一行:

  exec.1.3.6.1.4.1.2021.54ftp.sh/bin/bash/root/ftp.sh

  重啟snmpd服務(wù)。

  4.測(cè)試新的oid:

  #snmpwalk-cpublic-v2c

  localhost.1.3.6.1.4.1.2021.54

  UCD-SNMP-MIB::ucdavis.54.1.1=INTEGER:1

  UCD-SNMP-MIB::ucdavis.54.2.1=STRING:“ftp.

  sh”

  UCD-SNMP-MIB::ucdavis.54.3.1=STRING:“/bin/

  bash/root/ftp.sh”

  UCD-SNMP-MIB::ucdavis.54.100.1=INTEGER:0

  UCD-SNMP-MIB::ucdavis.54.101.1=STRING:

  “31.5”

  UCD-SNMP-MIB::ucdavis.54.102.1=INTEGER:0

  UCD-SNMP-MIB::ucdavis.54.103.1=““

  那么OID.1.3.6.1.4.1.2021.54.101.1,

  即為所需要的獲取到的溫度數(shù)據(jù)。

圖形監(jiān)控

  1.增加數(shù)據(jù)模板

  在Cacti界面中console->Templates->Data Templates,按照步驟逐一添加數(shù)據(jù)模板。設(shè)置完畢以后點(diǎn)擊create,然后下面會(huì)多出一些選項(xiàng),我們只需填寫一項(xiàng)就可以,就是OID那一項(xiàng),把上面記下來(lái)的OID填寫進(jìn)去,如圖1所示。

  2.增加圖形模板在Cacti界面中console->Templates->GraphTemplates,按照步驟逐一添加設(shè)置,添加完成后結(jié)果,如圖2所示。

  3.創(chuàng)建圖形添加完數(shù)據(jù)和圖形模板后,我們就可以在本地服務(wù)器上添加新的圖形了。

  在New Graphs中選擇主機(jī)然后在GraphTemplates中的下拉表拉選我們添加的模板,點(diǎn)擊create就完成了。最后的監(jiān)控圖形,如圖3所示。

  短信報(bào)警

  首先安裝thold插件,Cacti插件可以在http://docs.Cacti.net/plugins這個(gè)網(wǎng)站下載。并且在Cacti界面中console->Management->Thresholds,按照步驟設(shè)置監(jiān)控圖的上下閾值,

  然后找到thold目錄下的thold_functions.php文件,在function thold_mail函數(shù)下添加:

  file_put_contents(‘/usr/local/apache/htdocs/Cacti/

  log/changed.log’,$subject);

  exec(”/usr/local/apache/htdocs/Cacti/plugins/thold/

  sendsms.sh“);

  該代碼的意思是將告警變量(標(biāo)題)$subject寫入changed.log,然后執(zhí)行sendsms.sh腳本。sendsms.sh為發(fā)短信的腳本。

  在這里我們采取兩種方式進(jìn)行短信報(bào)警,一個(gè)是使用飛信報(bào)警,二是使用短信貓報(bào)警。

  飛信報(bào)警我們使用PHP飛信發(fā)送類(PHPFetion)發(fā)送短信。按照如下代碼發(fā)信:

  require‘PHPFetion.php’;

  $fetion=new PHPFetion(‘136xx’,‘密碼’);

  $fetion->send(‘135xx’,‘Hello Fetion1!’);

  使用短信貓報(bào)警的時(shí)候,需要購(gòu)置一款usb短信貓,然后在服務(wù)器上安裝gnokii.gnokii提供了在不同操作系統(tǒng)下移動(dòng)電話使用的工具和用戶空間的驅(qū)動(dòng)程序,支持以命令行形式直接向手機(jī)發(fā)送短信。

  if[-s“/usr/local/apache/htdocs/Cacti/log/changed.

  log”]

  then

  cat/usr/local/apache/htdocs/Cacti/log/changed.log|/

  usr/bin/gnokii--sendsms188xxx>/dev/null2>&1

  rm-f/usr/local/apache/htdocs/Cacti/log/changed.

  log>/dev/null2>&1

  fi

  至此,機(jī)房溫度監(jiān)控和短信報(bào)警設(shè)置完成。

來(lái)源:機(jī)房監(jiān)控 機(jī)房環(huán)境監(jiān)控 機(jī)房監(jiān)控系統(tǒng) http://www.dr4xxf.cn

售前咨詢

專線:劉剛 13911133352

E-mail:112417434@qq.com

北京金恒智能系統(tǒng)工程技術(shù)有限責(zé)任公司 版權(quán)所有 Copyright 2007-2020 by Create-china.com.cn Inc. All rights reserved.

法律聲明:未經(jīng)許可,任何模仿本站模板、轉(zhuǎn)載本站內(nèi)容等行為者,本站保留追究其法律責(zé)任的權(quán)利!

電話:86+10-62104277/2248/4249 傳真:86+10-62104193-819 京ICP備10010038號(hào)-2網(wǎng)站XML

智慧機(jī)房

在線體驗(yàn)

CREATE·機(jī)房監(jiān)控 體驗(yàn)端  用戶名:Admin    密碼:12345 點(diǎn)擊體驗(yàn)
在線咨詢 電話咨詢