安裝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,查看測試頁有沒有出現。瀏覽器
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則配置不對。
# 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的配置文件須要多作兩步。
yum -y install cairo-devel libxml2-devel pango pango-devel perl-CPAN
tar zxf rrdtool-1.4.8.tar.gz
cd rrdtool-1.4.8
./configure --prefix=/usr/local/rrdtool
Make && make install
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}
mysql -ucactiuser -p cacti < cacti/cacti.sql
Enter password:
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;
#echo "*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null" >/var/spool/cron/cactiuser
#/etc/init.d/crond restart
Tip:以cactiuser的身份定時執行這個腳本。
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沒警告了,這下應該正常了。等幾鍾應該會出圖,
最後獲得的結果以下所示。
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
(本人經常使用的幾個插件: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 →將插件安裝與啓用,以下圖表示已經正確啓用。
在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
測試發送郵件
郵件能夠發送便可。
(用圖形方式顯示設備狀態)
圖示:
綠色:被監控設備狀態正常;
紅色:被監控設備Down機;
蘭色:被監控設備恢復(Down後從新啓動,界於紅色與綠色之間的狀態);
黃色:被監控設備門檻報警
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。)
編輯主機設置,勾選Monitor host
Devices中選擇主機,choose an action選擇Enable Monitoring,選擇go完成設置
打開Default Tree並添加Items
建立新的Items
在Items中添加主機
查看效果
(用於設備異常預警,閾值報警)
2.2.1 配置
Console → Configuration → Settings 選擇「Thresholds」修改相應選項 save
郵箱設置
其中有兩處單選框必須選中,分別是:
"Syslogging":這一欄是將要發送的信息記入cacti.log中。
"Send alerts as text":這一欄是將要送的警告信息保存爲文本形式,沒有圖片。
(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,可添加一個郵件列表
多個郵箱地址以」,」分割。
安裝完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目錄以及權限等的錯誤,須要進一步配置後才能取到數據。
進入cacti的目錄
cd /var/www/html/cacti
建立緩存目錄並賦權
mkdir cache
chown apache.root cache
緩存目錄爲:
/var/www/html/cacti/cache
登錄cacti網頁
在監控端添加被監控機,打開cacti監控界面。
打開「Console → Settings → Misc」,設置「Cache Diredtiory」爲「/var/www/html/cacti/cache
」,保存後會出現 [OK: DIR FOUND]
打開Console → User Management
打開admin,勾選Weathermap並保存
打開Console → Weathermaps
配置文件默認位置 /var/www/html/cacti/plugins/weathermap/configs
添加配置文件
打開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字體是大小
每次對圖形進行調整後,都是自動保存的
#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
至此被監控端設置完成
Client端:監控window2008主機與網卡流量
安裝snmp,在2008後,snmp被作成一個功能的形式,而不是組件。按下面步驟安裝snmp
勾選SNMP服務
安裝完後,須要重啓,window系統基本都是這樣。重啓後,在管理--->配置--->服務中找到snmp service點屬性,作下面修改。
到些,window主機設置完畢。
重啓一下snmp服務。
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
在監控端添加被監控機,打開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
在監控端添加被監控機,打開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添加完成。
進入cacti ,點擊settings ,而後點擊右邊的Poller,將Poller Interval和Cron Interval所有設置爲every minute,而後點擊最下面的save (固然Poller Interval 能夠設置爲10s ,15s,20s,30s,)
[root@monitor rra]# vi /var/spool/cron/cactiuser
* * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null
我這裏的是網絡流量監控,因此直接修改Interface Traffic 點擊進去,將Step 300 改成60 ,Associated RRA’s 把1 minute average 也選擇上,而後點擊save 退出
(同理,能夠修改cpu、磁盤等相關監控的間隔)
System Utilities-Rebuild Poller Cache
cd /var/www/html/cacti/cli/
php -q rebuild_poller_cache.php –d
cd /var/www/html/cacti/rra
rm -rf *
最後發現仍是5分鐘一次。無奈刪除全部的graph,而後從新添加graph後正常。
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配置。
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 = "";
以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
修改默認顯示長度的方式:
登陸到cacti管理頁面,打開
Console -> Settings -> Visual -> Maximum Field Length: 默認15,修改成30
注:已生成Graph的圖像須要刪除從新生成纔會生效