工作原理圖:
整個系統有四部分組成:
1、cacti系統平台用于使用者設定與檢視圖表;cacti需要lamp環境的支援。
2、snmp用于采集資料給rrdtool繪制成圖,使用161.162端口,用mib資料庫來保持資料資訊,根據oid定位資料(類似1.3.6.1.2.1);linux下使用net-snmp自帶的snmpget和snmpwalk等程式,windows下使用php的snmp功能。
3、rrdtool繪圖引擎用于性能資料的存儲和繪畫圖像。
4、mysql資料庫用來存儲rrdtool繪圖所需要的資訊。
cacti常見的監測對象:
1、伺服器資源:cpu、記憶體、磁盤、程序、連接配接數等
2、伺服器類型:web、mail、ftp、資料庫
3、網絡接口:流量、轉發速度、丢包率
cacti偏重于網絡流量,系統負載方面的監控(網絡流量,cpu,硬碟使用率等)
一、安裝cacti基于lamp環境(apache+mysql+php+net-snmp+rrdtool)
1
<code>yum </code><code>install</code> <code>-y httpd httpd-devel mysql mysql-server mysql-devel php php-devel php-mysql php-common php-gd php-mbstring php-xml php-imap php-ldap php-odbc php-pear php-xmlrpc php-bcmath gd gd-devel freetype freetype-devel libjpeg libjpeg-devel libpng libpng-devel zlib zlib-devel libxml2 libxml2-devel libjpeg* libgcrypt libgcrypt-devel libxslt libxslt-devel php-snmp net-snmp net-snmp-utils perl-dbi rrdtool perl-rrdtool perl-dbd-mysql net-snmp-libs lm_sensors</code>
2
3
4
5
<code>service httpd start</code>
<code>service mysqld start</code>
<code>chkconfig httpd on</code>
<code>chkconfig mysqld on</code>
<code>mysqladmin -u root password 123.com </code><code>#設定mysql登入密碼</code>
二、安裝配置cacti
1、安裝cacti
<code>wget http:</code><code>//www</code><code>.cacti.net</code><code>/downloads/cacti-0</code><code>.8.8b.</code><code>tar</code><code>.gz</code>
<code>tar</code> <code>zxvf cacti-0.8.8b.</code><code>tar</code><code>.gz</code>
<code>mv</code> <code>cacti-0.8.8b/* </code><code>/var/www/html</code>
2、導入資料庫結構
<code>mysql>create database cacti;</code>
<code>mysql>use cacti;</code>
<code>mysql></code><code>source</code> <code>/var/www/html/cacti</code><code>.sql;</code>
3、配置cacti連接配接資料庫:
6
7
8
9
<code>vi</code> <code>/var/www/html/include/config</code><code>.php</code>
<code>$database_type = </code><code>"mysql"</code><code>;</code>
<code>$database_default = </code><code>"cacti"</code><code>;</code>
<code>$database_hostname = </code><code>"localhost"</code><code>;</code>
<code>$database_username = </code><code>"root"</code><code>;</code>
<code>$database_password = </code><code>"123.com"</code><code>;</code>
<code>$database_port = </code><code>"3306"</code><code>;</code>
<code>$database_ssl = </code><code>false</code><code>;</code>
<code>$url_path = </code><code>"/"</code><code>; </code><code>#去掉注釋,修改路徑為根</code>
4、圖形安裝cacti,輸入ip開始安裝
預設使用者、密碼都是admin,輸入後會讓你修改密碼
5、配置snmp監控本地主機
<code>vi</code> <code>/etc/snmp/snmpd</code><code>.conf</code>
<code>com2sec notconfiguser 127.0.0.1 public</code>
<code>access notconfiggroup </code><code>""</code> <code>any noauth exact all none none</code>
<code>view all included .1 80</code>
<code>service snmpd restart</code>
三、cacti其他配置
1、php設定時區
<code>vi</code> <code>/etc/php</code><code>.ini</code>
<code>date</code><code>.timezone = asia</code><code>/shanghai</code>
<code>service httpd restart</code>
2、手動運作一次,生成初始圖像檔案:
<code>/usr/bin/php</code> <code>/var/www/html/poller</code><code>.php</code>
3、設定計劃任務,每五分鐘生成一次圖表:
<code>crontab</code> <code>-e</code>
<code>*</code><code>/5</code> <code>* * * * </code><code>/usr/bin/php</code> <code>/var/www/html/poller</code><code>.php</code>
4、修改cacti預設設定:console->setting
rrdtool -v #檢視rrdtool版本
snmp version :設定snmp版本,一般是version2
snmp community:設定共同體名,預設是public
5、設定權限:
<code>chown</code> <code>-r apache.root </code><code>/var/www/html/</code>
<code>chmod</code> <code>775 -r </code><code>/var/www/html</code>
<code>chmod</code> <code>777 </code><code>/var/www/html/rra</code> <code>/var/www/html/log</code>
<code>chown</code> <code>-r root.root </code><code>/var/www/html/rra</code> <code>/var/www/html/log</code>
6、監控本地主機
解決:rrdtool fetch -r 300 localhost_mem_buffers_3.rrd average #使用rrdtool擷取抓取的資訊,結果都是-nan,現在看最後一個日期是1379679000,當date +%s擷取的日期超過最後一個,就該出圖了。
四、監控linux主機
被監控主機配置snmp:
<code>yum </code><code>install</code> <code>-y net-snmp-*</code>
<code>com2sec notconfiguser 192.168.0.10 public </code><code>#改為允許監控主機的ip</code>
<code>service snmpd restart </code><code>#重新開機snmp</code>
監控主機添加裝置:
console->device->add->create
添加到圖形樹:
console->graph trees->add->tree item type->host->選擇主機->create
五、監控windows主機
首先主機已經添加snmp服務了,再安裝snmp-informant-std會在服務裡面多出snmp trap,不需要配置,然後配置snmp service:
開始—運作—services.msc,找到“snmp service”,右鍵打開“屬性”,選擇“安全”,在“接受團體名稱”處,點“添加”,在“團體名稱”處寫入你的cacti使用的community,選中“接受來自這些主機的snmp資料包”,預設值為“localhost”,點選“編輯”,将“localhost”改為cacti監控伺服器的實際 ip位址即可!
六、不出圖或不出資料以下入手解決
1.圖像沒有生成,運作 #/usr/bin/php /var/www/html/poller.php
2.權限問題,修改權限 #chmod 777 -r /var/www/html/rra /var/www/html/log/
3.snmp配置問題,檢測是否有資料輸出 #snmpwalk -v2c -c public 127.0.0.1
4.删除rra下所有檔案,清除緩存 #system utilities –>rebuild poller cache
5.系統時間不準确,重新設定時間
6.資料庫表有損壞,修複 #mysqlcheck -ao cacti -auto-repair -uroot -p
7.嘗試重新開機snmpd服務 #service snmpd restart