cacti徹底使用手冊(六)

原文出自:http://foreveryan.blog.51cto.com/3508502/775558php

Cacti和Nagios的監控體系能夠說是使用普遍並且支持豐富的國內外的運維人員都須要掌握的一套監控體系,這套體系的好處在於使用Cacti的強大畫圖和自定義畫圖能力,以及Nagios的可控報警。可是網上的大部份內容都是如何安裝,在安裝成功如何使用的方面介紹的不多,而真正開始用以後,爲了工做須要就須要不斷地去Cacti官網查看使用文檔,或者論壇去翻別人的帖子,十分麻煩。因而我決定寫一篇使用方面的手冊,以讓你們真正會用這套系統。html

 

本文不包含任何Cacti和Nagios的安裝工做,如需安裝,請看前面的博文:
生產環境開源監控系統整合Nagios+Cacti+Nconf
本文全部監控項均使用SNMP監控。linux

本文用的Cacti版本爲最新的 0.8.7i ios

II.Cacti的使用                                  
    Cacti的經常使用服務器的畫圖大部分都是使用模板的形式作的,而Cacti安裝好以後自己自帶了一部分模板,這些模板雖然可用,可是支持的項目太少,因而咱們要尋求更多的模板以及更優化的內容。
    Cacti的官方的模板庫:http://docs.cacti.net/templates  windows

1:cacti模板的通常加載方法:bash

    一個Cacti的模板通常有兩部分組成。一部分是xml模板文件,另外一部分是xml的數據收集文件,雖然這兩種文件都是xml格式的,可是你能夠很顯而易見的就能分出它們的不一樣。由於它們的文件大小一點都不類似。
    舉個簡單的例子:


服務器

這個是一個windows的監控模板,咱們能夠簡單的根據文件的大小來看。
    *  大小大於10KB的,那就是xml模板文件。
    *  大小小於10KB的,那就是xml數據收集文件。

Xml模板文件是要在cacti的Web頁面的Console選項卡內Import Templates項進行添加:網絡

 


而xml數據收集文件,則是要放在Linux上Cacti的安裝目錄的cacti/resource/snmp_queries中:運維

2:如何在Cacti上添加一個新主機並監控相關的內容:(以添加Linux主機爲例)curl

1.建立畫圖

a. 在Cacti的Web頁面Console->Import Templates導入響應的xml模板文件。
b. 在Linux上cacti/resource/snmp_queries中放入模板相關的xml數據收集文件。並確保屬主和屬組均爲cacti。
c. 點擊Console->Devices,打開設備管理頁面。
d. 點擊右上角的add,添加一個新的機器

 

e. 當主機的信息填好以後,點擊Create
f. 此時你的頁面左上角應該顯示:Save Successful,而且已經顯示出了主機信息和SNMP信息,若是SNMP信息顯示 SNMP error,請查看最後的問題綜述。
g. 這時咱們就能夠添加相應的監控項了,在頁面最下方的Associated Graph Templates中添加圖形模板,在Associated Data Queries中添加數據模板。

 

 

h. 添加好相應的模板以後點擊Save。此時左上角會出現Save Successful.
i. 點擊右上角的Create Graphs for this Host,來爲剛纔經過模板所得到到的數據進行畫圖。
j. 選中須要畫圖的項,其中依然分爲兩部分:
    經過Graph Templates中的內容都須要選中,而Data Query獲取的內容比較詳細,因此能夠按需選擇。
k. 選擇好須要畫圖的項目後,點擊右下角的Create,左上角會出現被建立出來的畫圖項。

 

2.在Graphs界面顯示新添加主機。

a. 在Cacti Web界面Graph Trees中,選擇相應的列(或者系統默認的Default Tree)。
b. 進去Tree以後,點擊右上角的Add,添加一個新的顯示項。
c. 在Tree Item Type中選擇Host,而後在下面的Host中選擇咱們剛纔建立的主機。點擊Create。
d. 此時,再進入Graphs界面,就能夠看到在Default Tree下加入了咱們新建立的主機。

III.Cacti的經常使用模板                         

 

1.Windows經常使用模板
    Windows通常所須要監控的基本內容有:
    1.    CPU Use
    2.    Memory Use
    3.    Disk Size
    4.    Interface Traffic

    爲了解決基本的監控項,咱們須要如下模板。
    A.    Cacti_SNMP_Informant_Standard_Metrics_v12.zip
    B.    Cacti_host_template_ucdnet_snmp_host.gz

    咱們還須要在Windows主機上安裝一個軟件,以確保SNMP能發送更多的信息爲咱們提供數據採集:informant-std-16.exe

 

    使用A模板來監控Windows的CPU項目
    使用B模板來監控網絡,硬盤,內存。 
    最終,添加完相關模板,在建立Windows主機以後,在Devices->Your Windows host ->頁面下方正確添加的各類Templates以下:

 

因爲Windows模板下都是Data Queries。因此請確保添加完相關的Data Queries以後,全部項目的Status下應該都是Success以及是能看到不少Items以及Rows的。這說明數據正確採集,若是沒有,請移步最後問題綜述的問題4。
    最後添加完而且畫圖的監控結果:

2.Linux經常使用模板
    Linux與Windows監控的內容基本相同:
    1.    CPU Use
    2.    Load Average
    3.    Memory Usage
    4.    Swap Usage
    5.    Disk I/O
    6.    Disk Size
    7.    Interface Traffic
    爲了解決Linux監控內容,咱們使用如下模板:
    A.    Cacti_host_template_ucdnet_snmp_host.gz
    B.    Cacti_graph_template_ucdnet_-_memory/swap_usage_linux.xml
    C.    Data_query_snmp_-_get_disk_io
    最終,添加完相關模板,在建立Linux主機以後,在Devices->Your Linux host ->頁面下方正確添加的各類Templates以下:

    在全部的Linux監控添加後的內容以下:


 

 

3.Switch && Router的相關模板
    因爲市面上Switch和Router的型號衆多,而不一樣的型號可能就須要不一樣的模板,不能像Windows和Linux同樣進行統一,因此當你須要監控Switch和Router的時候,請Google響應的型號的模板,或者在Cacti官方的模板庫中進行查找。查找以後添加的過程都大同小異,這裏再也不贅述。

IV:自定義腳本的添加以及監控                 

    不少時候,咱們須要爲咱們獨有的環境去指定監控內容,那麼如何制定呢?就能夠經過本身寫腳本的方式進行收集數據。這裏我用一個監控QQ在線人數的例子來舉例。

準備工做:
    1.咱們須要一個腳本,腳本的語言隨意,只要在Linux的機器上可以使用運行而且有返回內容。好比咱們即將使用的腳本:

 
  1. #!/bin/bash 
  2. echo "QQ_Now:`curl im.qq.com/online.shtml | grep qqdata | cut -d":" -f 3 | cut -d">" -f 2 | cut -d"<" -f 1`" 

 

 

    此腳本運行以後輸出內容爲:

    這個裏面只有最後一行是有用的,其餘的爲curl的抓取信息。
    2.咱們的腳本要放在一個確保Cacti用戶可訪問的位置。經常使用的地方是:cacti/scripts/*中,那麼當腳本準備停當以後,就開始咱們的監控工做。

 

 

1.建立數據輸入方式

    1.    在Console-->點擊Data Input Methods
    2.    點擊右上角的Add,添加一個新的數據獲取方式


    3.    點擊Create,出現新的項目
    4.    新的項目包括Input Fields和Output Fields,即輸入內容和輸出內容,輸入內容其實就是向腳本傳遞函數,咱們這個腳本不須要傳遞什麼參數進去,因而沒有,只有Output Fields。
    5.    在Output Fields上點擊Add,添加新的輸出內容。
    6.    在Field[Output]中輸入咱們腳本的輸出項:這裏我填寫「QQ_Now」
    7.    在Friendly Name中輸入解釋輸出項的內容,內容隨意。
    8.    勾選Update RRD File後,點擊Create
    9.    而後查看咱們整個的數據獲取方式信息,點擊Save,左上角應出現「Save Successful」

2.建立數據源

    1.    在Console->點擊Data Sources,進入數據源界面
    2.    點擊右上角的Add,添加新的數據源
    3.    確保Data Template和Host均爲None。直接點擊Create
    4.    在新出現的信息面板中輸入相關內容

 

    5.    點擊Create,此時左上角會出現Save Successful
    6.    注意系統自動給生成的RRD文件路徑,確保裏面不會出現連續兩個反斜線的路徑信息。若是出現,請手動修改成一個反斜線。如:/1194.rrd
    7.    點擊Save,看到Save Successful,則數據源建立成功。 

3.建立圖像

    1.    選擇Console--> Graph Management,進入圖像管理
    2.    點擊右上角的Add,添加一個新的圖像
    3.    選擇Graph Template以及Host均爲None,而後點擊Create
    4.    Title中輸入圖像的名字,其餘保持不變。並點擊Create
    5.    而後你會看到多出的Graph Items,以及中間有一個看不到圖的紅叉,由於這個圖咱們尚未定義。
    6.    在Graph Items中點擊Add,添加畫圖規則。


    7.    添加完畫圖內容以後,點擊Create/Save,返回以前的頁面,接下來還要添加數據的展現內容。
    8.    再次點擊Graph Items中的Add,此次添加的是數據的展現,展現當前值。
 
    9.    設置好後點擊Create建立這個項目,而後按照這個方法,分別建立最大值,最小值,平均值的展現內容。

    10.   添加好後內容如圖。

 

 

4.將自定義好的圖形,加入到Graphs面板

    1.    在Cacti Web界面Graph Trees中,選擇相應的列(或者系統默認的Default Tree)。
    2.    進去Tree以後,點擊右上角的Add,添加一個新的顯示項。
    3.    在Tree Item Type中選擇Graph,而後在下面的Graph中選擇咱們剛纔建立的圖像。點擊Create。
    4.    此時,再進入Graphs界面,就能夠看到在Default Tree下已經出現了咱們新建立的圖像。

 

 

 

V.Cacti問題 Q & A                           

1.填完Drivers信息以後顯示紅色的SNMP error

 

 

    這是因爲被監控機的SNMP設置問題,沒有容許咱們監控機進行監控,或者Community不匹配致使的。
    Linux能夠在/etc/snmp/snmpd.conf中修改/增長髮送snmp的機器,以及community。
    Windows能夠在Snmp服務中增長容許發送snmp的機器,以及community。 

2.添加完圖以後,等待了無數時間圖依然沒法繪製,反饋給咱們一個紅色的X。

    首先,若是你是用添加的模板建立的圖,那麼顯示不了的話,頗有多是因爲模板太老,或者模板不正確致使的。能夠考慮更新做者的最新模板以從新畫圖。固然,若是圖像的確畫不出來,那麼咱們能夠打開畫圖的Debug日誌的方式進行排錯。

    進入Graph Management,在Host中選擇咱們畫不出圖的那個Host,而後點Go,這樣就在下面列出了全部在這個Host中的圖像列表,點擊那個沒法畫圖的列表。這就進入了咱們選定主機的相關圖像的設置界面,咱們應該能夠看到這個界面下方依然有一個紅X,證實咱們沒法畫圖,因此點擊右上角的「Turn on Graph Debug Mode.」來打開Debug日誌,這時候,就能夠看到頁面下方多出了"RRD Tool Command:"的列表,裏面詳細的描述了RRD工具是如何爲咱們畫圖的,這都不是關鍵,關鍵是最後的RRD Tool Says:好比

 

 

    這裏面是RRD Tool 告訴的咱們爲何它沒法畫圖,咱們能夠看到我當前例子的沒有畫圖的緣由是316.rrd這個文件不存在,說明在建立的時候rrd沒有正確的建立出這個文件,這就有多是所用的模板有問題了。
    在這裏,這是一個很好的查看爲何沒有畫出圖的地方,沒有畫出的圖RRD Tool會一一的告訴咱們,咱們只須要根據它說的來修正,直到RRD Tool Says: OK

3.圖什麼的都有,可是數據都是N/A,這是要鬧哪樣?

 

 

    這個的解決辦法其實跟沒法畫圖的解決同樣,就是咱們去看數據的Debug日誌。
    進入Data Sources,在Host中選擇沒有數據的Host,而後在下面的列表中選擇沒有數據的那個圖。進入數據設置界面,而後點擊右上角的「Turn on Data Source Debug mode」,而後去分析它的報錯。

4.在給主機添加Data Query的監控項的時候發現裏面沒有獲取到數據。

 

 

    這時候,若是它獲取不到數據,咱們就沒法給它畫圖。由於在給它建立的圖的界面上顯示沒有內容。
    這時候能夠直接點擊上圖中的Debugging下的相關內容,直接打開Debug查看狀態。

 

 

    這時就能夠看到反饋出得信息,好比上圖,發現SNMP沒法獲取數據。固然也有其餘的,好比MIB文件不存在。只要你仔細看它反饋出來的問題,知道問題的根源,就必定能解決。當解決了數據獲取以後,能夠直接點擊右邊的綠色的小圓圈,就刷新了數據的獲取狀態。

5.關於cacti下文件的權限問題。

    Cacti目錄中的內容權限並不統一,並且權限要求的也不多,並不像其餘的好比Nagios要求的那麼多。咱們能夠簡單的保持整個Cacti目錄的屬主和屬組都是Cacti便可。可是有兩個特殊的例外:     第一個是cacti/rra目錄,整個目錄裏的內容是RRD的畫圖文件自動在裏面生成的。而生成以後裏面文件的屬主和屬組究竟是誰,取決最終是由哪一個用戶來建立的,而這個就是在Cacti的那個crontab裏控制,若是咱們使用的是root用戶添加的crontab,那麼這個rra目錄中的內容屬主和屬組都是root。同理,若是咱們的crontab是在cacti中設置的,那麼rra目錄中的內容屬主和屬組都是cacti。     第二個目錄是cacti/scripts目錄,這裏面存的大部分都是咱們自定義的腳本,必定要確保裏面的腳本是cacti用戶可執行的。最好的檢測方法就是su到cacti用戶中,進入這個目錄,手動運行一下腳本,查看腳本是否成功執行

相關文章
相關標籤/搜索