原文出自:http://foreveryan.blog.51cto.com/3508502/775558php
本文不包含任何Cacti和Nagios的安裝工做,如需安裝,請看前面的博文: 本文用的Cacti版本爲最新的 0.8.7i ios |
II.Cacti的使用
Cacti的經常使用服務器的畫圖大部分都是使用模板的形式作的,而Cacti安裝好以後自己自帶了一部分模板,這些模板雖然可用,可是支持的項目太少,因而咱們要尋求更多的模板以及更優化的內容。
Cacti的官方的模板庫:http://docs.cacti.net/templates windows
這個是一個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主機上安裝一個軟件,以確保SNMP能發送更多的信息爲咱們提供數據採集:informant-std-16.exe
使用A模板來監控Windows的CPU項目 |
因爲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的相關模板 |
IV:自定義腳本的添加以及監控
不少時候,咱們須要爲咱們獨有的環境去指定監控內容,那麼如何制定呢?就能夠經過本身寫腳本的方式進行收集數據。這裏我用一個監控QQ在線人數的例子來舉例。
準備工做:
此腳本運行以後輸出內容爲: 這個裏面只有最後一行是有用的,其餘的爲curl的抓取信息。
|
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用戶中,進入這個目錄,手動運行一下腳本,查看腳本是否成功執行