初涉cacti——學習筆記整理

cacti功能比較強大,模板插件的,要學習,內容比較多,根據實際情況選擇性學習了。

第一篇 安裝

1、安裝LAMP

[root@cacti ~]# yum -y installhttpd mysql-server php php-mysql mysql-devel

[root@cacti ~]# chkconfig httpd on

[root@cacti ~]# chkconfig mysqld on

[root@cacti ~]# /etc/init.d/httpdstart

[root@cacti ~]#/etc/init.d/mysqld start

安裝完成後,可通過以下程序測試

[root@cacti html]# cat inex.php

<?php

phpinfo();

?>


2、安裝rrdtool

Rrdtool安裝需要cairolibxml2pango庫支持,可通過yum安裝

[root@cacti ~]# yum -y installcairo-devel libxml2-devel pango-devel

[root@cacti ~]# tar zxvfrrdtool-1.4.7.tar.tar

[root@cacti ~]# cd rrdtool-1.4.7

[root@cacti rrdtool-1.4.7]#./configure --prefix=/usr/local/rrdtool

[root@cacti rrdtool-1.4.7]# make&& make install

[root@cacti rrdtool-1.4.7]# ln -s/usr/local/rrdtool/bin/* /usr/local/bin/


3、安裝net-snmp(這個服務可以簡單安裝,直接用系統的,yum安裝)

[root@cacti ~]# vim/etc/snmpd.conf 修改如下

(1)com2sec notConfigUser IP public

注:此IP爲監控主機的IPsnmp安裝在被監控的主機上。通過此協議採集數據。

(2)access notConfigGroup "" any noauth exact all none none

(3)view all included .1 80 去掉註釋

重啓服務,service snmpd restart,加入開機啓動chkconfig snmpd on

檢測:snmpwalk -v 2c -c public IP if

如果出現Timeout: No Response from localhost,檢查進程和端口161

snmpd –f –Le 另一種啓動方法,看到出錯原因,root運行


4、安裝cacti

[root@cacti ~]# tar zxvf cacti-0.8.7 -3.1.tar.gz

[root@cacti ~]# mv cacti-0.8.7-3.1/* /var/www/html

#cacti中的內容移到 web目錄

[root@cacti ~]# useradd cacti

[root@cacti ~]# passwd cacti

[root@cacti ~]# chown -R cacti:cacti/var/www/html/cacti 這個步驟不一定需要,但是rralog的一定要照此修改權限,都爲cacticacit要能讀寫,不然會出現出不了圖的情況,這個一定注意,不然像我一樣,搞了半天,明明看到數據文件更新了,圖像就是出不來。


導入cacti的數據庫

mysql在這裏的作用是記錄rrd文件位置等,如果cacti網頁的密碼忘了,也可以在數據庫裏想改相應的表。

[root@cacti ~]# mysql –u root

#連接到mysql創建數據庫

mysql> create database cacti;

#創建cacti數據庫

mysql> insert into mysql.user(host,user,password) values('localhost','cacti',password('cacti123'));

#建立用戶cacti,密碼cacti123

mysql> flush privileges;

#重載mysql授權表

mysql> grant all on cacti.* to cacti@'localhost' identified by 'cacti123';

#把數據庫cacti授權於用戶cacti

[root@cacti ~]# cd /var/www/html/cacti

[root@cacti cacti]# mysql –u cacti -pcacti123 cacti<cacti.sql #cacti數據庫導入

修改網站配置文件,使用正確連接數據庫參數

[root@cacti cacti]# viminclude/config.php

$database_type ="mysql";

$database_default ="cacti";

$database_hostname ="localhost";

$database_username ="cacti";

$database_password ="cacti123";

$database_port ="3306";

使用瀏覽器打開http://IP/cacti

然後會開始安裝,只需要點next就可以了,最後完成。

首次登錄賬號密碼均爲adminadmin,登錄後會要求修改

安裝完成。


第二篇應用


第一 cacti的使用

1.界面介紹

登陸Cacti後,可以看到左上角是兩個選項卡,“console”和“graphs”。console表示控制檯,在此進行所有的配置等操作;而graphs則是用來查看所有服務器的性能圖像的界面。將來安裝的插件將會顯示在graph的右邊。


2.console菜單

Create

New Graphs——創建新圖像的快捷方式;

Management

Graph Management——圖像管理。可以在此刪除、複製圖像,Cacti會自動創建圖像。不過如果我們有特殊的需要,比如將幾張圖上的數據合併在一張圖像上的話也可以在此手工新建圖像;

Graph Trees——圖像樹。在graphs界面裏,圖像或devices是樹狀結構顯示的,可以在此設置樹的結構;

Data Sources——管理rrd文件。一般無需修改,Cacti會自己創建rrd文件,在自定義時需要添加。

Devices——設備管理。這是我們最經常需要修改的地方,可以在此創建新的設備或修改其名稱等信息。

Collection Methods

Data Queries Data InputMethods是採集數據的方式,一般我們無需對這兩項進行修改;

Templates 模板

Graph Templates HostTemplatesData Templates 分別是圖像模板、主機類型模板和數據模板。這些模板可以導出、導入也可以自己編寫,一般無需修改。後面會講到如何自定義模板。

Import/Export

Import Templates ExportTemplates,對上述模板的導入、導出。我們可以在Cacti的官方網站上找到這些模板,不過需要注意模板對於的Cacti的版本。

Configuration

Settings ——Cacti的主要配置菜單;

可以在此重新設置對應的程序的路徑、版本等信息。也可以設置圖像的輸出方式(允許ftp)、顯示效果、登陸方式(允許使用LDAP)等。

Utilities

System Utilities ——顯示Cacti系統的一些cachelog信息,如果log文件太大建議直接到後臺查看;

User Management ——用戶管理。可以在此添加、刪除用戶,並對每個用戶設置詳細的權限;

Logout User ——註銷用戶。


3.創建監測點

假設被監測的服務器名叫“Test Host”,添加IP,SNMPcommunitypublicsnmp設置裏的密碼)。

1進入Cacticonsole面板->點擊“Devices”進入設備面板->點擊“Add”添加新設備->

填寫要監測服務器的各種信息:

Description : 自定義

Hostname :被監控主機的IP

Host Template:選擇一個合適的主機模板,一般選擇Local LinuxMachine”或“ucd/net SNMP Host

Downed DeviceDetection:根據情況自選,一般不修改

其他的根據需求修改,一般不用修改。

2)點擊“Create”保存信息如果SNMP連接沒有問題,左上角會出現該服務器的信息,否則會出現“SNMP error”的紅色字樣

3)爲該設備創建需監測的內容,在頁面底部修改(或點擊上部的“Create Graphs for this Host ”)。

監測的內容分兩種,“GraphTemplates”和“Data Query,區別在於“Data Query”能根據SNMP信息列出監測項目的信息。例如Data Query裏的“Interface Statistics”可以看到該主機所有網卡的信息,這樣我們可以選擇需要監測的網卡。點擊右側的正方形選擇框勾選上要監測的項目

點擊“Add Graph Template:”複選框,選擇要監測的內容,點擊”add”已選擇的內容,可點擊最後的紅叉進行刪除。

Cacti會自動創建該監測點的rrd文件(在rra目錄中)、“DataSource”和“graph”條目。

最後save,似乎也可以不用(修改(1)中的內容就以一定要save)。創建監測點完畢。


4.查看監測點

點擊“Graph Management”可以看到剛纔創建的監測點對應的圖像,注意由於Cacti默認每5分鐘到監測服務器上取一次數據,所以剛創建的監測點會出現圖像不能顯示的現象,需要等幾分鐘查看纔會正常顯示。

爲了方便查看,可以將剛纔新創建的設備或圖像加入到“圖像樹”上:

點擊“Graph Tree”進入“圖像樹”面板->點擊分支名稱

或“Add”新的分支->點擊“Add”,添加新的“TreeItems(此處有幾個選項)->然後create,然後“Tree Itemtype->add中選擇“Host”,“Tree Item Value”的“host”中選擇剛纔新添加的主機“Test Host”->點擊“Create”。

直接在ViewTree中添加一個host節點進行監控無疑是一個簡單的方法,但隨監控圖的增多,將所有的圖像放到一個host節點上,當查看圖像時圖像的顯示速度會變慢,而且監控圖的條理也不清除,所以通常可以根據監控圖監控的功能和監控服務的類型等進行分類,整理出一棵有條理的圖像樹。可以按下面步驟添加節點。

首先添加一個root節點,“Tree Itemtype”中選擇“Header”,“Title”中填寫一個合適的描述性信息,如本例填寫“Host Monitor”,Host Monitor節點的圖像主要是和主機性能相關的一些圖像,如CPU、內存、磁盤空間等;

點擊剛創建的root節點(HostMonitor)後面的Add鏈接來添加一個Graph

在“Tree Item Type”中選擇“Graph”,在“graph”中選擇加入想要加入的監控圖,重複此過程加入所有你想加入的監控圖。

你還可以添加Tree Items,如MySQLMonitor,此節點用來監控與MySQL服務相關的信息,重複上面的過程直到一顆有條例的樹創建完成。

這樣,我們就可以在“graphs”界面中查看“TestHost”的所有監測圖像了。


5.爲已有host添加新的監控圖

console控制檯下點擊“NewGraphs”,選擇要添加監控圖的主機。在Graph Templates中選擇一個Graph模板,本例選擇SNMP - Ceneric OID Template,點擊create按鈕。

填寫以下信息,在“Title”文本框中填寫Graph的名字,在“VerticalLable”文本框中填寫描述信息或是所繪圖片使用的單位等,顯示在所繪圖片的左側,在“name”文本框中填寫此數據源的名字,在“LegendColor”中選擇畫圖使用的顏色,在“Legend Text”填寫圖例的名字,在“OID”文本框中填寫要監控的主機的OID信息,點擊“create”按鈕完成Graph的創建。



6.合併多個數據源到一張圖上

console控制檯下點擊“GraphManagement”,然後點擊Add鏈接。

在“Select GraphTemplate”下拉框中選擇None,在“Host”下拉框中選擇None,然後點擊create按鈕。

在“Title”文本框中輸入Graph的名字。

點擊Add鏈接,添加GraphItems

添加多個數據源,將所選的多個數據源畫到一張監控圖上。

完成後將所畫的監控圖放到GraphTrees中。



第二 自定義腳本和模板

1、編寫腳本,採集數據

數據格式:

key1:value1 key2:value2 key3:value3 ………

可以將不同圖上的數據都一起讀入,在下一步區分開就行了。只要保證這個格式輸出即可,應該沒得順序要求,反正我的兩三百個數據很亂。然後應該不能加入換行符換行,反正我沒搞定。

2、建立數據源

方法: Console – > Collection Methods ->Data Input Methods -> Add


第一個: Name 自定義

第二個: Input Type == Scripts/Command

第三個: Input String == /bin/sh<path_cacti>/scripts/test.sh

然後點擊create


這個地方注意了,test.sh就是你自己的腳本,前面的照寫(可以使用內部變量 <path_php_binary> <path_cacti>等能在config.phpsetting->path 裏看到的路徑。)果你需要添加命令行參數的話,可以在腳本名字後面添加。應該寫絕對路徑也可以行。

例如

/bin/sh <path_cacti>/scripts/test.sh<hostname> <ip_add>


如果沒有添加命令行參數的話,對應的InputFields保持無內容就可以了,如果有添加命令行參數的話,在“Input Fields”模塊裏,需要修改一下

第一個: Field[Input] 選擇對應的那個

第二個: FriendlyName 自定義

第三個: RegularExpression Match 空着就可以

第四個: AllowEmpty Input 根據實際選擇

第五個: SpecialType Code 自選


無論有沒有命令行參數都要修改的“OutputFields

第一個: Field[Output] 這個就是最關鍵的一個參數了,你shell腳本對應的key1是什麼名字,這裏就須寫什麼名字,不需要冒號。

第二個: FriendlyName 自定義

第三個: Update RRDFile 勾上

然後有幾個參數,就一一重複添加進去,名字記得跟shell腳本輸出對應起來

3、添加數據模板

方法:“Console” == “Data Templates” == “Add”

第一個: Name 自定義

第二個 Name 基本也是隨便取,但是格式是這樣|host_description|- yourname

第三個: DataInput Method 這個就是選擇你上一步數據輸入方法中的名字

第四個:Associated RRA's 默認也可以,把每分鐘加上去也可以

第五個: Step 默認也可以,但是第四個如果把每分鐘加上去的話,這個值必須從300變成60

第六個: DataSource Active 把它勾上


下面就是DataSource Item

Data SourceItem第二次添加點擊new,然後重複以下步驟,這樣做,如果添加了十個Item,會將10Item的數據都寫入一個數據文件,如果要一個Item一個數據文件,則要重複添加數據模板,很麻煩

第一個: Internal Data Source Name 這個名字也很重要,填key1的名字,就是第一步中提到的很關鍵的那個欄的名字

第二個: MinimumValue Maximum Value Data Source Type Heartbeat 這幾個根據情況來,關於DataSource Type ,是rrdtool的內容,對圖形呈現很關鍵,後面說明。


如何選擇 DST 看下面的描述

ACOUNTER :必須是遞增的,除非是計數器溢出(overflows)。在這種情況下,RRDtool 會自動修改收到的值。例如網絡接口流量、收到的 packets 數量都屬於這一類型。

BDERIVE:和 COUNTER 類似。但可以是遞增,也可以遞減,或者一會增加一會兒減少。

CABSOLUTE ABSOLUTE 比較特殊,它每次都假定前一個interval的值是0,再計算平均值。

DGAUGEGAGUE 和上面三種不同,它沒有“平均”的概念,RRDtool 收到值之後字節存入 RRA

ECOMPUTE COMPUTE 比較特殊,它並不接受輸入,它的定義是一個表達式,能夠引用其他DS並自動計算出某個值。


第三個: Output Field 這個地方是選擇的,就是選擇第一步裏key1對應的friendly name

這裏也是所有參數對應一一添加上去


還有一欄就是Custom Data,這個不用做任何添加或修改

修改完成,保存


4、添加圖像模板

4.1 Console->Templates->GraphTemplate->Add

Template Name 這個是模板名,當我們將模板應用於某個機器時使用這個

Title 圖的標題

Unit Grid Value (--unit/--y-grid) Y軸的單位

Vertical Label 就是圖左側的說明

各個選項,根據情況自定義即可

4.2 Graph Template Items Data TemplateGraphTemplate進行綁定。

點擊Graph Template Items右側的Add.

1Data Source,選擇我們之前創建的DataTemplate,因爲可能有多個輸出,因此它也可能有多個,我們一一創建即可。

當後面選擇的GraphItem TypeCOMMENT, VRULE, and HRULE,則不用選擇Data Source

2Color是用於顯示的顏色,GraphItem TypeAREA, STACK, LINE1, LINE2, and LINE3才能選擇顏色

3Graph Item Type是顯示的類型,比如Area就是顯示成塊,line的都是線形

A:官方解釋:Types such as AREA, STACK, LINE1, LINE2, and LINE3 are used torepresent data on the graph, while COMMENT and GPRINT are used put on thelegend. The LEGEND type is specific to Cacti only and can be used if you wantto Cacti to automatically create a GPRINT-LAST/GPRINT-AVERAGE/GPRINT-MAXIMUMgraph item for you.

BYou must always put an AREA item before using STACK or your graphwill not render.

4Consolidation Function選項:

This tells RRDTool which consolidation function to use when representingthis data on the graph. You will typically use AVERAGE for most things on thegraph area, and LAST/MAXIMUM as well for GPRINT items.

5value值:

This field is only used with the HRULE/VRULE graph item types. Typeany valid integer to draw the line at for HRULE or the time of the day HH:MMfor VRULE.

6Text Format就是給這個輸出一個名字.LEGEND類型不用。

7Insert Hard Return是換行,選擇後該Item會有個<HR>標識,圖上會在該Item後換行。

創建後,如果你還想爲這個輸出創建一個Legend,那就是再Add選擇Graph Item Type->Legend即可。可以參考load average模板。

注意上面的Graph Item InputsItemData source關聯,自動創建的,一般不用處理。如果選擇了legend,可以參考load averge模板。

到此,GraphTemplates已經完成,接下來就是應用了。


5、應用GraphTemplates

5.1 添加devices Console->Management->Devices–>add…..

填好前面的選項,最後AssociatedGraph Templates,選擇要添加的模板àadd

然後點擊最上面的createGraphs for this Host,選中要添加圖像的模板,create,馬上就可以在graph裏看到你的圖了

5.2添加data source Console-> Data Source-> add 不過一般都已經自動添加,不用修改。如果有圖沒出,可在data source裏打開bug,複製rrdtool命令去手動建立

5.3添加graph trees console-Graph Trees -> add 建立後tree Items->add

詳細步驟參考前文

5.4graph management ,將data source一一添加。詳細步驟先參考前文。



第三 常用插件的安裝

1、開啓Plugin

Configuration下是否有pluginmanagement

如果沒有,打開“Console-----UserManagement---admin”——最後“Plugin Management”(勾選此選項),單保存”save

2、上cacti官網上下載相關插件:

3、下載後解壓後放到插件目錄

例子:

[root@cacti ~]#tar zxvf monitor-v1.3-1.tgz

[root@cacti ~]# mvmonitor /var/www/html/plugins/

[root@cacti ~]# cd/var/www/html/plugins/monitor/

[root@cactimonitor]# mysql –u cacti –pcacti123 cacti<monitor.sql

打開Cactiweb頁面“PluginManagement”,激活插件(順序點擊“action”下的圖標)。

常用的插件:monitor以圖形方式顯示設備狀態

Setting(用於郵件報警)

Thold(用於設備異常預警、閥值報警)

第四 Cacti輪詢時間(關於spine,由於這裏是摘抄的,我安裝好我的cacti後,在Configuration->settings->poller,poller type就有spine,選擇後,將poller interval和cron interval修改,crontab裏修改,就可以了。以下內容作爲參考)

Cacti默認的輪詢時間爲5分鐘,可通過安裝spine將時間變成一分鐘

下載:http://cacti.net/spine_download.php

1.安裝spine

[root@cacti ~]# tar zxvfcacti-spine-0.8.7i.tar.gz

[root@cacti ~]# cd cacti-spine-0.8.7i

[[email protected]]# ./configure --prefix=/usr/local/cacti-spine--with-snmp=/usr/local/net-snmp/

[[email protected]]# make && make install

[[email protected]]# cd /usr/local/cacti-spine/etc/

[root@cacti etc]# cpspine.conf.dist spine.conf

[root@cacti etc]# vim spine.conf

DB_Host localhost

DB_Database cacti

DB_User cacti

DB_Pass cacti123

DB_Port 3306

DB_PreG 0

這裏修改對應的mysql用戶名和密碼,以及連接參數

打開“console”----“settings”----“Paths”中填寫spine的路徑,然後“save”


2.選擇輪詢模式

打開“console”----“settings”----“Poller”---“save”


添加“每分鐘”流量視圖

打開“console”---“Data Templates”——“Interface - Traffic”


其他模板做相應修改。

最後修改crontab中的

* * * * * env/usr/bin/php /var/www/html/cacti/poller.php>/dev/null 2>&1


但是由於我做的圖裏有需要五分鐘輪詢一次的,如果修改爲1分鐘,會受到影響,具體看自己的要求了。


個人覺得,要用好cacti,還是要先學學rrdtool的基礎知識,便於理解,在排錯等問題上也很有幫助,甚至還可以自己手動添加過去的數據。瞭解它的語法知識,create,update,graph,last,fetch等;還要了解一些專用名詞。對後期設置cacti,建圖,錯誤分析等很有幫助。

rrdtool學習:http://blog.chinaunix.net/uid/20054105/sid-50476-list-3.html




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章