cacti是以被監控的 【devices】 爲中心,devices關聯了哪些圖形模板,關聯了哪些數據模板,關聯了哪些數據收集方法,這些咱們均可以在編輯devices是進行設置。php
每添加一個被監控的設備,有三個基本的步驟:html
Create devices 添加一個設備;linux
Create graph 爲新增的設備建立圖形ios
view 查看生成的圖形
sql
咱們須要監控設備的狀態,因此,一上來咱們乾的第一件事就是添加 Devices。首先咱們點擊「Devices「標籤,進入設備面板,咱們看到已經存在了一個localhost。
windows
【console】-【Devices】-【Localhost】 安全
而後,咱們點擊Localhost,對本機主機進行配置,"Description","Hostname","Host Template"這些選項都很是直觀易懂。保持默認配置就好。bash
這裏咱們主要修改編輯 SNMP Options,以下圖所示,只要選擇SNMP版本爲「Version2」,和指定相應的community 及 SNMP Port,其餘選項都不用動,而後點擊右下角「Save」便可。
服務器
SNMP 版本 , 根據實際安裝配置 SNMP 而定網絡
Community 也是根據 snmpd.conf 配置文件中的定義
若是localhost沒有安裝 snmp,或者snmpd服務未啓動,更或者是SNMP Community錯誤,在頁面的左上角都會報錯,說明cacti和snmp通訊錯誤。若是出現錯誤,請檢查上述說起的這些問題。
若是SNMP配置沒有問題,那麼在正常狀況下,會在左上角顯示該被監控機的SNMP information,以下圖所示
經過下圖用紅框標記的部分,咱們分別能夠看出localhost這個devices所關聯的"Graph Templates", "Data Queries",咱們能夠點擊紅X,刪除。或者點擊Add按鈕,添加。
由此,咱們也能夠看出, HOST Templates 的做用, HOST Templates 結合了 Graph Templates 以及 Data Templates 。
Data Source List(此主機涉及到的 rrd 文件)
點擊localhost編輯頁面左上角的"Data Source List",查看數據源列表。
而後,咱們能夠點擊數據源的 name,而且打開數據源調試模式,以便查看更詳細的信息。
咱們能夠看到此數據源名爲localhost_load_1min_5.rrd,定義了數據收集完以後,保存在什麼地方。那麼若是我想看這個rrd文件建立時,是使用的什麼命令,該怎麼辦呢? 咱們能夠點擊"Turn On Data Source Debug Mode"查看,詳細的建立rrd的命令,就像上圖看到的。
一樣,咱們也能夠查看"Graph List"。
Graph List(rrdtool graph 相關)
回到devices編輯頁面,仍是左上角的"Graph List",咱們能夠看到此devices的圖形列表。
而後咱們能夠繼續點擊 Graph Title,查看特定的圖形信息。咱們也能夠查看具體的建立圖形的語句,當咱們有時候遇到不出圖的狀況時,可是在rrd中,咱們可以經過rrdtool fetch 查看到數據,此時,咱們可能就須要到這裏來查看一下,是否有問題。
好了,到此咱們應該對cacti的工做原理有一個大概的瞭解。那麼這裏再總結一下:
首先咱們要監控一個設備,咱們須要收集數據。數據從哪裏來呢? 數據收集方法(Collection Methods)。
數據收集到了,如何保存呢?如何建立rrd文件呢? 數據模板(Data Templates)。
而後咱們把數據模板應用到某devices之上,就有了數據源 "Data Sources",也就是能夠繪圖了。
有了數據源,如何繪圖呢? 圖形模板(Graph Templates),或者自定義。
假設我要對localhost添加一些監控項,怎麼辦? 根據上面的思路,就很容易作了。
步驟一:添加監控項目。 添加 數據查詢方法, 也就是定義如何獲取數據,獲取哪一個設備的數據
console -> Devices -> Localhost -> "Associated Data Queries"
第二步: 建立圖形
而後,咱們選擇頁面右上角的「Create Graphs for this Host」,爲這個devices數據查詢建立圖形。
而後,勾選須要建立圖形的複選框, 點擊頁面右下角的 create 便可。注意,添加完成以後,並不會當即出圖,須要等待一段時間,纔會出圖,不要大驚小怪。因爲Cacti默認每5分鐘到監測服務器上取一次數據,因此剛建立的監測點會出現圖像不能顯示的現象,須要等幾分鐘查看纔會正常顯示。
爲了咱們查看圖形方便,咱們能夠建立Graph Trees,把監控的對象進行分類。更直觀,便於咱們管理。默認狀況下,僅包含 Default Tree。
a. 在Cacti Web界面Graph Trees中,選擇相應的列(或者系統默認的Default Tree)。
b. 進去Tree以後,點擊右上角的Add,添加一個新的顯示項。
c. 在Tree Item Type中選擇Host,而後在下面的Host中選擇咱們剛纔建立的主機。點擊Create。
d. 此時,再進入Graphs界面,就能夠看到在Default Tree下加入了咱們新建立的主機。
新建Graph Trees:
點擊「Graph Trees」 -> 「Add」
如今,Graph trees已經建立好了,接下來咱們把主機添加到graph trees中。繼續在上一步的頁面,點擊「Add」,在「Tree Item Type」中,選擇「Host」,其它默認便可,而後點擊「Create」。
之後,咱們要查看某個主機的信息,直接到某個類別下面找便可。這樣就可以清楚的分門別類,更方便咱們管理。
上面講解了如何監控本地的主機,那麼如何監控遠程的主機呢?其實過程和監控本地主機的方式是相同的。可是請注意,前提是遠程的主機上須要安裝SNMP,並簡單的配置。
假設被監控機是類Unix系統, 好比CentOS/RHEL系列:
第一步:在被監控機上安裝snmp,並開啓
[root@db ~]# iptables –F [root@db ~]# setenforce 0 # yum -y install net-snmp # yum -y install net-snmp-utils # 可選項 # chkconfig snmpd on ## 而後編輯配置文件,一般修改下面三行就好了 # vi /etc/snmp/snmpd.conf #容許訪問的IP,後面的是和服務器之間的認證,不建議使用默認值 public,兩邊必須同樣,這邊改了服務器那邊也要修改一下。 com2sec notConfigUser 192.168.0.0/16 public view all included .1 access notConfigGroup "" any noauth exact all none none ## 重啓snmpd服務 # service snmpd restart ## 在監控機上測試, 注意被監控機的 iptables, 和 SELinux [root@db ~]# snmpwalk -v2c -c public 192.168.1.32 system.sysUpTime.0 Timeout: No Response from 192.168.1.32 [root@db ~]# snmpwalk -v2c -c public 192.168.1.32 system.sysUpTime.0 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9759) 0:01:37.59
第二步:在Cacti上配置添加監控主機
【Devices】 - 【Add】 添加新設備, 並填寫被監控機的各類信息,而後點擊右下角的【Create】便可。
其中Host Template請選擇「Local Linux Machine」或「ucd/net SNMP Host」(選擇一個合適的主機模板)
SNMP Community 必定要確保和被監控機 snmpd.conf 中定義的一致
若是SNMP配置沒有問題,那麼此時Cacti頁面左上角會出現 SNMP Information, 不然保存「SNMP error」。
若是出現 SNMP error, 請檢查被監控端的snmpd 服務是開啓,防火牆設定, 以及Cacti 設置的 SNMP Community 是否一致。能夠手動在監控機上執行 snmpget/snmpwalk 命令進行測試。
點擊【Create Graphs for this Host】
點擊右上角的「Create Graphs for this Host 」爲該設備建立需監測的內容。點擊右側的正方形選擇框勾選上要監測的項目,而後 "Create" 便可。
對於windows7/8如何開啓 snmp:
控制面板 -> 程序和功能 -> 啓用或關閉windows功能 -> 勾選簡單網絡管理協議(SNMP)
而後在「services」服務中,編輯其屬性,設置community。
對於windows xp/2003:
這裏以Windows Server 2003爲例,對於其餘Windows產品,方法相似。首先確認當前的windows組件是否已經安裝了SNMP協議,默認狀況下是沒有安裝的。若是沒有安裝,則按如下步驟進行
控制面板 -> 添加或刪除程序 -> 添加/刪除windows組件 -> 管理和監視工具 -> 詳細信息 -> 勾選簡單網絡管理協議(SNMP)。
在安裝過程當中,會提示插入光盤,指定I386的文件夾位置。沒有怎麼辦? 這裏我上傳了一個附件,你們能夠下載。提供windows 2003的SNMP獨立安裝組件,只有200多K,下載後解壓,而後指向這個目錄便可。SNMP組件安裝成功後,接下來打開「管理」菜單中的「服務」。
找到SNMP Service,雙擊它進行配置。這裏須要注意的是,在前面安裝SNMP協議組件以後,SNMP Server會默認啓動,而它下邊的SNMP Trap Service是不要啓動的,請關閉它。
在SNMP Service的配置窗口中,你只須要切換到"安全"選項卡,按照如下的圖示進行填寫,這裏的團體名稱就是前邊介紹過的SNMP v2c版本中的密碼字符串,這裏的"public"只是一個例子,你能夠填寫其它的字符串,在配置cacti的SNMP Option時,選擇v2c協議,同時在 Community輸入框中填寫這個團體名稱便可。
另外一個須要特別設置的地方是下邊的受權主機,選擇"接受來自這些主機的SNMP數據包",而後在下邊的指定主機中添加cacti/Nagios 監控中心的IP,這使得除此以外的其它服務器沒法獲取你的服務器監控信息。
一切配置好後,保證SNMP Service已經開啓,而且若是之後重啓了服務器,也請檢查是否開啓了SNMP服務。另外,還要保證你的服務器已經打開了SNMP Service的端口,默認爲UDP 161。若是你啓用了系統防火牆,那麼請添加這個例外端口,打開本地鏈接->屬性->高級->設置,在"服務"標籤中點擊添加,添加如 下端口:
最好在監控端使用snmpwalk等命令測試一下。
對於windows server 2008
功能—添加功能安裝SNMP服務(安裝完可能須要重啓)
配置SNMP 的屬性: 管理--配置—服務—snmp service 屬性中 安全-添加如下內容。而後重啓snmp服務
好了,這裏扯遠了,回到正題,監控遠程主機,一樣,咱們按照下面的三個步驟便可。
進入Cacti的console面板->點擊「Devices」進入設備面板->點擊「Add」添加新設備
其實這裏最關鍵的就是Hostname,Host Template,以及SNMP Options,其中Host Template請選擇「Local Linux Machine」(選擇一個合適的主機模板,這裏如何添加模板尚未講到,後面的學習記錄中講解)->點擊「Create」保存信息,若是SNMP鏈接沒有問題,左上角會出現該服務器的信息,不然會出現「SNMP error」的紅色字樣。
而後,其後的過程,和監控本地主機徹底相同。不過,請注意因爲cacti默認每5分鐘執行一次poller.php去收集數據,因此剛建立的主機並不會馬上出圖,稍等片刻便可。
一步一步 監控windows server 2008 R2 實戰演練
第一步:前提條件
1、已安裝好 Cacti
2、準備好如下安裝文件,在附件中已提供下載:
Cacti_SNMP_Informant_Standard_Metrics_v13.zip (該cacti監控模板支持WinXP/Vista/Win7/Win2000/2003/2008/2012 x32/x64)
第二步:配置被監控主機(windows server 2008 R2)
爲window系統配置snmp服務及安裝snmp informant(此處以64位的win 2008爲例)
進入功能添加嚮導,勾選SNMP服務,而後點擊」下一步」, 安裝完成後,點擊關閉.
打開【服務管理器】,找到SNMP Service項【雙擊】,打開屬性窗口
彈出的窗口中選擇」安全」選項卡,並設置社區爲: public (根據實際需求)
按須要可設置「接受來自任何主機的SNMP數據包 (不建議)」 或 「接受來自下列主機的SNMP數據包(推薦)」 ,只指定個別機器 IP 地址.
而後肯定並重啓SNMP Service.
解壓文件informant-std-16.zip並安裝其中的informant-std-16.exe(雙擊而後按提示安裝便可,默認安裝便可,此處不特別介紹。)
開啓SNMP服務的防火牆例外,以下圖所示,SNMP使用161端口,咱們必須開放161端口才能夠。
注意:防火牆設置關鍵點以下圖所示,要求所有設置成「任何IP地址」,不然在監控服務器上執行如下命令會得不到任何信息
測試:
//修改前 # snmpwalk -v 1 -c public 10.138.xx.xx .1.3.6.1.2.1.1.1.0 Timeout: No Response from 10.138.xx.xx //修改後 # snmpwalk -v 1 -c public 10.138.xx.xx .1.3.6.1.2.1.1.1.0 iso.3.6.1.2.1.1.1.0 = STRING: "Hardware: Intel64 Family 6 Model 46 Stepping 6 AT/AT COMPATIBLE - Software: Windows Version 6.1 (Build 7600 Multiprocessor Free)"
以上被監控的客戶端設置完畢
第三步:配置cacti 服務器
一、導入cacti監控模板
解壓文件Cacti_SNMP_Informant_Standard_Metrics_v13.zip,把template文件夾中的6個模板文件,經過cacit操做界面導入。
二、而後把文件夾resource\snmp_queries中的xml文件,放到cacti服務器中的相應目錄,個人服務器爲/usr/share/cacti/resource/snmp_queries,具體目錄根據cacti安裝路徑會有所變化。還有設定這些文件的訪問權限,保證全部用戶都有讀的權限。以上cacti模板安裝完成
點擊Devices,添加一臺設備,以下圖所示。
這裏輸入設備的IP地址和描述,在HostTmeplate當中選擇「Windows Host - SNMP Informant」,前天配置以下圖所示,重點是×××底紋標註部分。
注意:
在接下頁面中顯示的Associated Graph Templates和Associated Data Queries的1至3項是cacti自帶的針對linux的模板,與剛纔導入的模板無關,因此最好刪除了,省得建圖時誤錯了。以下圖用×××底紋標註的內容都刪除掉。
http://www.cnblogs.com/xwdreamer/p/3877608.html
好了,先寫到這裏。在下一篇中繼續講解。