redhat下cacti的安裝使用

cacti是一套基於PHP,Mysql,SNMP及rrdtools開發的網絡流量監測圖形分析工具

製圖等各方面都很優秀,也支持各種模版的添加,功能很強大,現在下面介紹一下cacti的安裝與使用

cacti的主程序下載

Cacti官方網站:www.cacti.net/

cacti-0.8.7e-cn-utf8.tar.gz  (中文版)
cacti-0.8.7g.tar.gz(英文版)

cacti安裝需要的一些軟件包

rrdtool-1.2.23.tar.gz
net-snmp-5.6.tar.gz
cacti-cactid-0.8.6k.tar.gz
cacti-spine-0.8.7g.tar.gz
(版本大家可以自行選擇,不過高版本與低版本都會因自身服務環境不同而出現各種問題,依問題提示解決)

cacti的安裝需要有可以提供網站服務的應用,比如apache器,nginx等

因爲cacti是以php語言編寫的,nginx+php(fast-cgi)+mysql的功能很強大,所以筆者以這個環境下搭建cacti

nginx+php(fast-cgi)+mysql的安裝配置請參考另一篇文章

下面安裝一些基礎軟件包

安裝Fontconfig
tar -zxvf fontconfig-2.4.2.tar.gz
cd fontconfig-2.4.2
./configure --with-freetype-config=/usr/local/freetype
make && make install
 

安裝GD庫及相關插件 

tar -zxvf gd-2.0.34.tar.gz
  cd gd-2.0.34
  ./configure --prefix=/usr/local/libgd --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg
編譯時顯示以下信息:

** Configuration summary for gd 2.0.34:

   Support for PNG library:          yes
   Support for JPEG library:         yes
   Support for Freetype 2.x library: yes
   Support for Fontconfig library:   yes
   Support for Xpm library:          no
   Support for pthreads:             yes
(按照上面的提示預安裝一些基礎軟件包,比如png的有libpng-1.2.16.tar.tar等,zlib-1.2.3.tar.gz,freetype-2.3.4 .tar.gz,jpegsrc-1.v6b.tar.gz)

這些軟件包都要以在http://oss.oetiker.ch/rrdtool/pub/libs/ 庫文件中找到

  make && make install

編輯/etc/ld.so.conf,添加以下幾行到此文件中。

    /usr/local/zlib/lib

    /usr/local/freetype/lib

    /usr/local/libjpeg/lib

    /usr/local/libgd/lib

    並執行ldconfig命令,使用動態裝入器裝載找到共享庫
 

編譯安裝rrdtool及安裝配置snmp
安裝如下幾個rpm包
yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel

安裝rrdtool
tar -zxvf rrdtool-1.2.23.tar.gz
./configure --prefix=/usr/local/rrdtool
make && make install

 

安裝SNMP
tar -zxvf net-snmp-5.6.tar.gz
./configure --prefix=/usr/local/snmp --enable-developer
然後一直回車
make # make install # ln -s /usr/local/snmp/bin/* /usr/local/bin/

創建snmpd的配置文件,默認情況下它是不存在的
vi /usr/local/snmp/share/snmp/snmpd.conf

寫入以下內容

#       sec.name  source          community
com2sec notConfigUser  127.0.0.1       public
com2sec notConfigUser  192.168.20.185       public   ##監聽的服務器IP與community號
# Second, map the security name into a group name:
#       groupName      securityModel securityName
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser
# Third, create a view for us to let the group have rights to:
# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.2
view    systemview    included   .1.3.6.1.2.1.25.1.1
view    all    included   .1
# Finally, grant the group read-only access to the systemview view.
#       group          context sec.model sec.level prefix read   write  notif
#access  notConfigGroup ""      any       noauth    exact  mib2 none none
access  notConfigGroup ""      any       noauth    exact  all none none
##       sec.name  source          community
#com2sec local     localhost       COMMUNITY
#com2sec mynetwork NETWORK/24      COMMUNITY
com2sec notConfigUser  default  public
com2sec     *.*.*.0   192.168.20.185/24 public
##     group.name sec.model  sec.name
group MyRWGroup  any        local
group MyROGroup  any        mynetwork
group notConfigUser  any        zcom
#group MyRWGroup  any        otherv3user
##           incl/excl subtree                          mask
view all    included  .1                               80
view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc
##                context sec.model sec.level prefix read   write  notif
access MyROGroup ""      any       noauth    0      all    none   none
access MyRWGroup ""      any       noauth    0      all    all    al

(修改需要監聽的服務器IP)

經過配置後,現在可以啓動snmpd
 /usr/local/snmp/sbin/snmpd

關閉,則可以直接kill這個進程
killall -9 snmpd

加入到開機自啓動
echo "/usr/local/snmp/sbin/snmpd" >> /etc/rc.d/rc.local

安裝cacti和Cactid
tar -zxvf cacti-0.8.7g.tar.gz
mv cacti-cacti-0.8.7g /data/web/cacti

vi /data/web/cacti/include/config.php

修改內容

database_type = "mysql";
$database_default = "cacti";
$database_hostname = "127.0.0.1";
$database_username = "cacti";
$database_password = "cacti";

添加cacti用戶,將rra目錄的所有權給cacti用戶
groupadd cacti
useradd cacti -g cacti
chown -R cacti.cacti /data/web/cacti/rra
爲cacti用戶添加cron任務
su – cacti  (一定要在cacti用戶下)
crontab –e
*/5 * * * * /usr/local/php/bin/php  /data/web/cacti/poller.php > /dev/null 2>&1

每5分鐘執行一次
首次執行poller.php時請使用cacti用戶,否則生成的rrd文件cacti將沒有寫入權限
在cacti用戶模式下執行
/usr/local/php/bin/php  /data/web/cacti/poller.php
 

安裝Cactid
確認安裝了
net-snmp-devel(需要編譯安裝net-snmp時添加--enable-developer選項)
mysql            
mysql-devel    (mysql源文件編譯安裝後默認支持)
openssl-devel  (Redhat默認安裝)

tar -zxvf cacti-cactid-0.8.6k.tar.gz
cd cacti-cactid-0.8.6k
./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/snmp
make && make install

vi /usr/local/cactid/etc/cactid.conf      //修改cactid配置文件
DB_Host        127.0.0.1
DB_Database    cacti
DB_User        cacti
DB_Pass        cacti

安裝安裝cacti-spine cacti

本來不打算安裝spine的,就使用cmd.php來完成數據採集,可是後來發現cmd.php採集存在很大的延遲,執行效率太低了。兩廂比較了一下,從添加device好到設備up,spine只需要不到一分鐘,而cmd等的時間較長,超過10分鐘。

# tar -zxvf cacti-spine-0.8.7e.tar.gz
# cd cacti-spine-0.8.7e
# ./configure --with-mysql=/usr/local/mysql/
# make && make install


vi /usr/local/spine/etc/spine.conf
DB_Host         127.0.0.1
DB_Database     cacti
DB_User         cacti
DB_Pass         cacti

mysql設置
進入mysql
/usr/local/mysql/bin/mysql -u root -p -S /var/lib/mysql/mysql.sock

GRANT ALL PRIVILEGES ON cacti.* TO 'cacti'@'192.168.20.185' IDENTIFIED BY 'cacti';

導入cacti的數據源
cd /data/web/cacti
/usr/local/mysql/bin/mysql -u root -p -S /var/lib/mysql/mysql.sock cacti < cacti.sql

 

安裝完成
從瀏覽器登陸:http://192.168.20.185/    #在nginx或者其它網站服務應用上指定catic的目錄,開啓服務就可以訪問了

默認賬號與密碼均是admin

cacti的基礎設置 

 Console>Settings>general

設置cacti用到的命令路徑
Console>Settings>patch

snmpwalk Binary Path          /usr/local/ bin/snmpwalk

snmpget Binary Path         /usr/local/ bin/snmpget

RRDTool Binary Path         /usr/local/ bin/rrdtool

PHP Binary Path              /usr/local/bin/php

Cacti Log File Path           /data/logs/cacti.log

Spine輪詢器路徑:  /usr/local/spine/bin/spine

RRDTool應用程序版本  :RRDTool 1.2.*


Console>Settings>Poller
選擇spine


添加設備

devecs>>add>>

選擇相應的監聽模版

以上就納入了nginx的狀態,CPU的使用率,load的負載,內存的使用跟接口流量

記得save保存一下

選擇頁面右上角的添加生成圖片--create graphs for this host

之後選擇相應的監聽接口就行了,保存之後你就可以在graphs managerment中找到生成的相應圖片

 

有時候圖片不能正常顯示是因爲你的設備剛添加進去,每5分種執行一次計算的時候你的cacti還沒有在你的rra下生成rrd

因爲我的時間設置的不同步了,所以提示錯誤,可以忽略

到此,完整的cacti安裝及初步使用步驟就結束了

如果中間安裝的時候出現問題,根據提示來判斷,可能是軟件包的版本不對應,換個高一點的版本,或者你的動態庫缺少某個軟件包導致

某些知識摘取其他網上資源

 

附上一些遇到的問題

/usr/local/php/bin/php /data/web/cacti/poller.php

提示以下錯誤時的解決方法

/usr/local/php/bin/php: /usr/local/lib/libpng12.so.0: no version information available (required by /usr/local/php/bin/php)

 

解決方法就是

cd /usr/local/lib

mv libpng12.so.0 libpng12.so.0.backup

ln -sf /usr/lib/libpng12.so.0 libpng12.so.0

這就是libpng默認安裝的時候會出現的一些問題

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