Cacti-0.8.8b詳細安裝及配置步驟

 1.  Cacti環境安裝

1.1         安裝LAMP環境

安裝LAMP環境,固然,若是你有興趣能夠採用編譯,我線上Mysql是編譯的,其他是yum安裝的。在此次實驗採用yum安裝。php

關閉iptables與selinux,若是有須要,後面再開啓。配置好yum源,開始安裝。html

yum -y install httpd httpd-devel httpd-manual mysql mysql-devel mysql-server php php-devel php-mysql php-common php-pdo php-gd lm_sensors net-snmp net-snmp-devel  php-snmp net-snmp-utils dejavu-* patchmysql

chkconfig mysqld onlinux

chkconfig httpd on  sql

chkconfig snmpd on  數據庫

service mysqld start  apache

service httpd start  vim

service snmpd start  windows

在瀏覽器中輸入http://serverip,查看測試頁有沒有出現。瀏覽器

1.1         配置snmp

vim /etc/snmp/snmd.conf

 

#/etc/init.d/snmpd restart

驗證snmp配置是否正確

# snmpwalk -v 2c -c public 127.0.0.1 if  表示正確

IF-MIB::ifIndex.1 = INTEGER: 1

IF-MIB::ifIndex.2 = INTEGER: 2

IF-MIB::ifDescr.1 = STRING: lo

若是提示Timeout: No Response from 127.0.0.1則配置不對。

 

1.3         建立數據庫存儲cacti的數據

# mysqladmin -u root password 'sky123'  

# mysql -u root -p  

輸入密碼  

mysql> create database cacti;

Query OK, 1 row affected (0.00 sec)  

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

Query OK, 0 rows affected (0.01 sec)  

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)  

mysql> exit

# mariadb

MariaDB [(none)]> grant select on mysql.time_zone_name to 'cactiuser'@'localhost' identified by 'cactiuser';

Query OK, 0 rows affected (0.03 sec)

Tip:建立 cacti數據庫與cactiuser,能夠省略在cacti配置文件中修改。固然也能夠建立別的名字,只是在cacti的配置文件須要多作兩步。

1.4         安裝cacti

1.4.1   安裝rrdtool須要的軟件包

yum -y install cairo-devel libxml2-devel pango pango-devel perl-CPAN

1.4.2   安裝rrdtool

tar zxf rrdtool-1.4.8.tar.gz

cd rrdtool-1.4.8

./configure --prefix=/usr/local/rrdtool

Make && make install

1.4.3   安裝cacti-0.8.8b

tar zxf cacti-0.8.8b.tar.gz -C /var/www/html/  

cd /var/www/html/  

mv cacti-0.8.8b cacti  

chown -R apache:apache /var/www/html/cacti/

cd  /var/www/html/cacti/

patch  -p1 -N < /opt/security.patch

Tip:當咱們打開瀏覽後,是apache用戶來訪問cacti,若是是編譯的http,則不是apache用戶,在http.conf有定義

# cactiuser是用於執行poller.php的

cd  /var/www/html/

useradd  cactiuser

chown -R cactiuser:cactiuser  cacti/{rra,log}

1.4.4   導入數據庫

mysql -ucactiuser -p cacti < cacti/cacti.sql  

Enter password:

1.4.5   改配置文件

vim cacti/include/global.php  

vim include/config.php修改下面的數據庫鏈接信息,基本不用修改。

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactiuser";

$database_port = "3306";

$database_ssl = false;

1.4.6   添加計劃任務

#echo "*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null" >/var/spool/cron/cactiuser

#/etc/init.d/crond restart

Tip:以cactiuser的身份定時執行這個腳本。

1.4.7   初始化cacti

http://IP/cacti/

 

將/usr/local/bin/rrdtool修改爲正確的路徑」/usr/local/rrdtool/bin/rrdtool」,點完成輸入用戶和密碼都 是admin,輸入以後會要求強制修改密碼。

打開http://IP/cacti 打開Console → setting → Genernal →修改下面兩項

RRDTool Utility Version選擇RRDTOOL 1.4.x

SNMP Version選擇version 2

手動執行一次php /var/www/html/cacti/poller.php會提示下警告

PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EST/-5.0/no DST' instead in /var/www/html/cacti/lib/functions.php on line 486

#vim /etc/php.ini 啓用下面並修改。

date.timezone = Asia/Chongqing

/etc/init.d/httpd restart,再執行行php /var/www/html/cacti/poller.php沒警告了,這下應該正常了。等幾鍾應該會出圖,

最後獲得的結果以下所示。

1.5        安裝spine

tar zxf cacti-spine-0.8.8b.tar.gz

cd cacti-spine-0.8.8b

./configure --prefix=/usr/local/cacti-spine

configure: error: Cannot find SNMP headers.  Use --with-snmp= to specify non-default path.

#yum -y install net-snmp-devel

#./configure --prefix=/usr/local/cacti-spine

#make && make install

#cd /usr/local/cacti-spine/etc/

#cp spine.conf.dist spine.conf

#vim spine.conf

DB_Host         localhost

DB_Database     cacti

DB_User         cactiuser

DB_Pass         cactiuser

DB_Port         3306

DB_PreG         0

測試spine安裝是否正確,輸出下面信息表示安裝成功

# /usr/local/cacti-spine/bin/spine --conf=/usr/local/cacti-spine/etc/spine.conf

SPINE: Using spine config file [/usr/local/cacti-spine/etc/spine.conf]

SPINE: Version 0.8.8a starting

SPINE: Time: 0.1251 s, Threads: 5, Hosts: 2

打開catcti網頁。

Console→ setting → poller 將cmd.php修改爲spine,並保存。

Console → settings → paths,添加spine命令的路徑並保存。

/usr/local/cacti-spine/bin/spine

 

1.6         安裝插件

 

(本人經常使用的幾個插件:settings、thold、monitor、realtime、weathermap)

在安裝thold插件,必須先安裝settings插件,後安裝thold插件。由於settings插件提供email的相關設置,thold插件的報警功能是根據settings裏的設置來決定發送郵件的。

tar xf settings-v0.71-1.tgz  -C /var/www/html/cacti/plugins

tar xf thold-v0.5.0.tgz -C /var/www/html/cacti/plugins

tar xf monitor-v1.3-1.tgz  -C /var/www/html/cacti/plugins

tar xf realtime-v0.5-2.tgz  -C /var/www/html/cacti/plugins

 

unzip php-weathermap-0.98.zip -d /var/www/html/cacti/plugins

chown -R apache.root /var/www/html/cacti/plugins/*

# vim /var/www/html/cacti/include/config.php

//$url_path = "/cacti/"; 在這一行下面添加一行

$plugins[] = 'settings';

$plugins[] = 'thold';

$plugins[] = 'monitor';

$plugins[] = 'realtime';

$plugins[] = ' weathermap';

保存後,打開cacti網頁,啓用插件console → Configuration → plugin management →將插件安裝與啓用,以下圖表示已經正確啓用。

1.7        設置郵件報警通知

在Console → setting → mail/DNS中填寫好

若是點了send a test Email出現下圖的錯誤

解決辦法

# cat /var/log/httpd/error.log中提示沒權限

sendmail: fatal: chdir /var/spool/postfix: Permission denied

#setenforce 0再測試就ok了

若是成功後,登陸郵箱會收到一封郵件。

若未安裝sendmail

yum -y install sendmail-cf sendmail-doc cyrus-sasl m4 dovecot mailx

service sendmail start

chkconfig sendmail on

測試發送郵件

郵件能夠發送便可。

2.  插件配置

2.1         配置Monitor

(用圖形方式顯示設備狀態)

2.1.1   Monitor插件使用

圖示:

綠色:被監控設備狀態正常; 
紅色:被監控設備Down機;

蘭色:被監控設備恢復(Down後從新啓動,界於紅色與綠色之間的狀態); 
黃色:被監控設備門檻報警

2.1.2   Monitor的選項設定

 console → settings → Misc

 

Alarm Sound :設定聲音警報的語音

Refresh Interval :設定更新的間隔時間

Show Icon Legend:顯示圖例,如什麼色表明Down機,正常等

Grouping:設置如何分組(選擇tree以後,monitor裏的主機就會按照graph trees分組顯示,見下圖(grouping:tree  view:tiles)。)

(Default(預設排列);Default with permission(預設排列依照權限);Tree(依照graph的樹裝結構分組);Device template(依照使用的偵測方式分組),建議使用tree的分組方式,這樣會比較符合自訂的方式區分出機器,看起來比較好看)

View :選擇機器圖案的格式

(Default(預設);Tiles(顯示信息較爲詳細);List(清單型,圖示會比較小);Colored blocks(背景圖案全變色);Simple(極簡化)。

根據監控設備的數量而定,設備較少建議使用Tiles,設備較多就使用List。)

2.1.3   Monitor裏添加單個主機

 編輯主機設置,勾選Monitor host

 

2.1.4   在Monitor裏批量添加主機

 Devices中選擇主機,choose an action選擇Enable Monitoring,選擇go完成設置

 

2.1.5   完成後進入monitor查看

 

2.1.6   爲monitor主機分組

打開Default Tree並添加Items

 

建立新的Items

在Items中添加主機

 

查看效果

 

 

2.2         配置thold插件(郵箱告警)

 (用於設備異常預警,閾值報警)

 

2.2.1   配置

Console → Configuration → Settings 選擇「Thresholds」修改相應選項 save 

郵箱設置

 

其中有兩處單選框必須選中,分別是:
"Syslogging":這一欄是將要發送的信息記入cacti.log中。
"Send alerts as text":這一欄是將要送的警告信息保存爲文本形式,沒有圖片。

 

2.2.2   設置thold報警

 (1)    建立thold模板

 Console → Management → Thresholds

 

單擊圖中右上腳的「Add」按鈕,彈出以下圖示:

 

在圖中的「Host:」一欄中,單擊右側的下拉框,選擇你要監控的報警的主機,選好「Host:」後,會出現下面的「Graph:」,在下拉框中,選擇你要設置報警的服務,這裏以選擇「sky-test - Used Space - C: Label:  Seri [hdd_total]」爲例,選擇好後,單擊「Create」按鈕後,會出現一個頁面,讓你去設置一個閥值,達到多少會發報警郵件:

 

Templates Name: 這一個Templates 的名稱。

Template Propagation Enabled:是否套用Thold模板。若是這個Thold還使用設置好的統一模板的,就選上Enabled

Weekend Exemption: 這一個項目就是六日不會發出警告,很貼心的設計不過在臺灣大概行不通。

Disable Restoration Email: 遠端主機發生異常斷線後從新連結髮出警告,這是一個反向的選項,預設是開啓,勾選後取消。Threshold Type: 設定警惕值屬性,選項有High/Low values,Baseline,Time Based。

Warning High Threshold:告警值上限;

Warning Low Threshold:告警值下限;

High Threshold: 警惕值上限。

Low Threshold: 警惕值下限。

 

通常狀況下,Threshold的閥值即爲實際數據,但在網絡流量Thold中,有所不一樣,具體的換算方法爲:

網絡流量閥值設定值=網絡流量限值/8

如咱們設網絡流量限值爲10M的話,哪麼網絡流量閥值設定值爲:

  10×1024×1024/8= 1310720

 

Data Type: 警惕值計算方式,能夠選擇Exact Value(回傳值爲單位),CDEF,Percentage。

Re-Altert Cycle: 重複發出警告的時間間隔。

Notify accounts: 設定警告賬號。

Alter E-Mail: 設定警告信的收件者,多位收件者能夠用逗號「,」區隔

 

(2)    建立完在holds中能夠查到

 

(3)      報警的內容更改

 

選擇Console → Configuration → Settings → 選擇「Thresholds」
如圖示紅線處即爲變動報警信息的內容:

(4)    套用創建的規則

主機數量多若是要每一部都加上規則是至關消耗時間的,並且往後的維護也不容易,在Cacti 中能夠多選主機一次套用Template

console → Graph Managerment--選擇要套用thold Templates 的項目,選擇圖表資源項目,在到下面的選單中選擇Create Threshold from Templates 選項,就將選擇的主機統一套用所設定的Templates—Continue

要查看已經創建的thold 項目能夠到console → thold 這一個項目中,選擇status 到any 的情況就會出現全部的項目,預設是隻出現被tiggered 的項目,方便管理人員在表單中辨識符合警惕值的主機項目。在主機的內容中Template Propagation Enabled 的項目是被勾選的,就表示這一個項目是有套用thold Templates,當修改Templates 的異動修改都會同步套用到這一項目

選擇已有的threshold模板

在thold中查看添加的結果

2.2.3   建立通知列表

打開Console → Notification Lists,可添加一個郵件列表

多個郵箱地址以」,」分割。

 

2.3         配置realtime

 安裝完realtime,在每個監控圖邊上,都會有一個小圖標,此時點擊這個小圖標,不會出來實時的數據,會報「The Image Cache Directory directory does not exist. Please first create it and set permissions and then attempt to open another realtime graph」。提示出沒有Cache目錄以及權限等的錯誤,須要進一步配置後才能取到數據。

 

2.3.1   設置cache目錄及權限

 進入cacti的目錄

cd /var/www/html/cacti

建立緩存目錄並賦權

mkdir cache

chown apache.root cache

緩存目錄爲:

/var/www/html/cacti/cache

2.3.2   配置cacti緩存目錄

登錄cacti網頁

在監控端添加被監控機,打開cacti監控界面。

打開「Console → Settings → Misc」,設置「Cache Diredtiory」爲「/var/www/html/cacti/cache

」,保存後會出現 [OK: DIR FOUND]

2.3.3   查看realtime

 

2.4         配置weathermap

 

2.4.1   設置容許admin查看

打開Console → User Management

 

打開admin,勾選Weathermap並保存

 

2.4.2   添加配置文件

打開Console → Weathermaps

配置文件默認位置 /var/www/html/cacti/plugins/weathermap/configs

 

添加配置文件

2.4.3   手動畫圖

打開Weathermaps → Editor

 

建立配置文件

【Add Node】              添加節點

【Add Link】               添加節點間的鏈接

【Position Legend】        添加圖例

【Position Timestamp】    添加製表時間

 

(圖片位置位於:/var/www/html/cacti/plugins/weathermap/images)

第一行position,表明該節點的位置,由(橫座標,縱座標)表示,原點在圖形的 最左上角;

第二行是內部名稱,通常是寫一個本身能看懂的名字,例如設備名稱,最好修改爲與Label相一致;

第三行是Label,標籤是顯示在外面,顯示在網頁的名字,給用戶看的。默認不支持中文,由於要修改比較複雜,暫時沒有較好的方法漢化;

第四行Info ]URL:此節點表明的設備的流量圖的網頁鏈接;

第五行‘Hover’Graph URL:此節點表明的設備的流量圖的網頁鏈接,經過Pick from cacti這個按鈕來選擇節點相應的連接;

最後一行選擇該節點的圖形。

中文亂碼

中文顯示,咱們能夠在配置文件裏指定中中文字體的路徑

 

vi /var/www/html/cacti/plugins/weathermap/configs/test.conf

FONTDEFINE 100 /var/www/html/cacti/plugins/weathermap/msyh.ttf 10

msyh.ttf是中文字體的名字.須要用戶本身加進去,指定路徑,後面10字體是大小

每次對圖形進行調整後,都是自動保存的

 

3.  Cacti客戶端配置

 3.1         linux client

#yum -y install net-snmp

#vim /etc/snmp/snmpd.conf修改下面三處

 

關閉iptables服務

#service iptables stop

#chkconfig iptables off

 

注:若是不關閉iptables,須要進行以下修改

編輯iptable

#vim /etc/sysconfig/iptables開放161端口

*filter

:INPUT DROP [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT

-A OUTPUT -o lo -j ACCEPT

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p tcp -m state --state NEW  -m multiport --destination-port  22,80 -j ACCEPT

-A INPUT -p udp -m state --state NEW  -m multiport --destination-port  161 -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

-A INPUT -p udp -m state --state NEW  -m multiport --destination-port  161 -j ACCEPT

#/etc/init.d/iptables restart

至此被監控端設置完成 

3.2        windows client

 Client端:監控window2008主機與網卡流量

安裝snmp,在2008後,snmp被作成一個功能的形式,而不是組件。按下面步驟安裝snmp

右鍵計算機管理

 

功能選項添加功能

 

勾選SNMP服務

 

安裝完後,須要重啓,window系統基本都是這樣。重啓後,在管理--->配置--->服務中找到snmp service點屬性,作下面修改。

 

到些,window主機設置完畢。

重啓一下snmp服務。 

3.3         ubantu clinet

 root@summba-dev3:~# apt-get install snmp snmpd

root@summba-dev3:~# vim /etc/default/snmpd 

 

root@summba-dev3:~# vim /etc/snmp/snmpd.conf 

root@summba-dev3:~# service snmpd restart  

4.  Cacti服務器端設置

4.1         添加linux被監控服務器

在監控端添加被監控機,打開cacti監控界面。

步驟一:添加完成後保存。

保存後,增長graph template和data query(Associated Data Queries裏必選的兩項:SNM-Get Mounted Partitions和SNMP-Interface Statsites)

 

添加snmp -get mounted partions時爲後面監控報警可使用ucd/net - Get Monitored Partitions 能夠刪除,由於snmp - get mounted partions 也會獲取磁盤的使用。

這裏完了以後,須要點下面的Creat 

 

選擇哪些資源畫成圖形,再選擇下面的Create。(select a graph type  選擇: 流入/流出 位)

# 流入/流出  位  和 流入/流出  位(64位) 的區別

32位 和 64位 圖形的問題,查詢32位流量的snmp給出的數據就是小於100M的,而查詢64位流量的snmp給出的數據是準確的.因此,對於64位的操做系統或支持64位snmp的主機以及網絡設備,都應該在添加圖形的時候添加64位記數器的圖形.

若是該主機爲64位主機,請選擇「流入/流出 位(64位)」

若是該主機爲32位主機,請選擇「流入/流出 位」便可

 

能夠本身選擇圖形的顏色,這裏選擇默認的。

 

下圖表示建立成功

 

步驟二:將graph添加到Graphs

點擊graph trees → add

(能夠add新的Graph Tree也能夠在Default Tree上添加新的主機)

 

選擇host → 選擇剛添加的被監控主機 → create

 

配置完成

點擊 graphs就能看到剛添加的被監控設備了

 

完成後點Create,在device中能夠看到剛添加的設備。過幾分鐘狀態應該會變成up。

若是建立時沒法建立網卡圖片或其餘圖片時:點擊verbose query,排查錯誤

下面就是debug信息

 

若是網卡圖像沒法建立,編輯 vim /etc/snmp/snmpd.conf

view systemview included .1.3.6.1.2.1.1 將這行修改
view systemview included .1.3.6.1.2.1 改爲這樣
重啓snmpd,再從新編輯主機,建立圖像。

被監控機監控磁盤容量要在snmpd.conf中添加磁盤分區格式以下

disk  /

disk  /home

disk  /boot

disk  /data

或者執行此命令

mount |egrep '^/' |awk '{print "disk  " $3}' >> /etc/snmp/snmpd.conf && service  snmpd restart 

4.2         添加windows被監控服務器 

在監控端添加被監控機,打開cacti監控界面。

在cacti添加window,監控主機與網卡流量也與上面同樣。只是選擇模板的時候須要注意。

第一步: 添加主機並保存

 

關聯圖形模板和數據查詢

 

第二步:Create Graphs for this Host

選擇發現的磁盤和內存

 

選擇發現的網卡

 

完成後點擊Create(select a graph type  選擇: 流入/流出 位)

第三步:將graph添加到Graphs

點擊graph trees → add

(能夠add新的Graph Tree也能夠在Default Tree上添加新的主機)

 

添加Tree Items

Tree item type中選擇root,Tree Item Type選擇host,host選擇對應的主機

(Tree Item Type:)

 

Save添加完成。

 

5.  Cacti高級配置(優化)

 5.1         修改監控間隔時間爲60秒

 

5.1.1  修改poller

進入cacti ,點擊settings ,而後點擊右邊的Poller,將Poller Interval和Cron Interval所有設置爲every minute,而後點擊最下面的save (固然Poller Interval 能夠設置爲10s ,15s,20s,30s,)

 

5.1.2  修改crontab

 [root@monitor rra]# vi /var/spool/cron/cactiuser

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

 5.1.3  修改data templete

我這裏的是網絡流量監控,因此直接修改Interface Traffic 點擊進去,將Step 300 改成60 ,Associated RRA’s 把1 minute average 也選擇上,而後點擊save 退出

(同理,能夠修改cpu、磁盤等相關監控的間隔)

 

5.1.4  清除cache

System Utilities-Rebuild Poller Cache

 5.1.5  從新創建rrd cache

cd /var/www/html/cacti/cli/

php -q rebuild_poller_cache.php –d

5.1.6  刪除全部rra文件

cd /var/www/html/cacti/rra

rm -rf *

 最後發現仍是5分鐘一次。無奈刪除全部的graph,而後從新添加graph後正常。

 

5.2       Round Robin Archives(監控數據歸檔)

 5.2.1  修改rrdtool的存儲大小

console-Management->Data Sources->RRAs

修改模版參數,如hourly(1 minute average)

Consolidation Functions設置爲:max、min、average和last

X-Files Factor修改成:0.5

Steps設置爲:1 (每1分鐘繪圖一次)

Rows設置爲:60(在Timespan這個時間跨度裏保存的數據記錄數,單位爲minutes)

Timespan設置爲:3600(時間跨度,單位:秒)(不用修改,由於每小時、天天、每一年對應的時間(秒)都是固定值)

推薦的模版參數以下:   

 

若是想讓天天、每週或者每個月(31天)的steps爲1分鐘,推薦的設置以下(只需修改steps和rows,計算方法爲:以Weekly爲例,按steps爲1(每分鐘)爲單位,rows=7*24*60=10080):

 

當rows超過10000行,須要按照步驟2修改php配置。 

5.2.2  修改maxrows

rows默認存儲數據最大值爲10000,要想存儲超過10000行的數據,須要修改lib/rrd.php文件中的參數maxrows

參考以下:

    /* basic export options */  

   $xport_opts =   

       "--start=$xport_start" . RRD_NL .   

       "--end=$xport_end" . RRD_NL .   

       "--maxrows=100000" . RRD_NL;   

   $xport_defs = "";

5.3         顯示交換機端口描述

5.3.1  默認「流入/流出 位」模板便可以顯示端口描述

5.3.2  也能夠將「流入/流出 位 (64位)」端口名稱顯示修改成「NAME-ALIAS」,將該項上移便可。

 

以windows爲例,在windows下查看網卡信息以下:C:\Users\Administrator>wmic nic list brief

ifName: 對應的是Name(IF-MIB)

ifAlias:對應的是Alias(IF-MIB),常見於交換機的配置描述

ifIP: 對應的是IP Address列

ifDescr:對應的是Description(ipconfig /all 中的描述)

 

修改完成後,在添加圖形時必定要選擇對應修改後的graph

 

5.3.3  默認ifName顯示的長度爲15字節,會致使端口看不全

 

修改默認顯示長度的方式:

登陸到cacti管理頁面,打開

Console -> Settings -> Visual -> Maximum Field Length: 默認15,修改成30

注:已生成Graph的圖像須要刪除從新生成纔會生效

相關文章
相關標籤/搜索