2013年8月26日 星期一

[CentOS]CentOS 6.4 安裝Cacti 0.8.8a -CentOS 6.4 Install Cacti 0.8.8b

這篇文章主要是幫助剛接觸CentOS的朋友,而且也要安裝Cacti這個監控軟體。所以文章會有許多的細節會提醒各位。

For English version, Please check out this website:Install Cacti Network Monitoring Tool on CentOS 6.4 / RHEL 6.4 / Scientific Linux 6.4 written by SK.
這篇文張大部份的內容是參考網友-SK的這篇文章:Install Cacti Network Monitoring Tool on CentOS 6.4 / RHEL 6.4 / Scientific Linux 6.4

很感謝這位朋友可以同意我轉載大部分的指令,才可以讓我把這個重要的資訊再分享給各位。

2013/10/18-補充:內容有修改,原因是cacti在8/5日改版為0.8.8b
2017-06-21-因為許久沒接觸Cacti,無法給讀者安裝與使用上的問題解答,因此關閉留言功能,敬請見諒。

【安裝前的注意事項】
1.確認系統時間是否正確,請利用以下指令來確認



顯示標準時間(因為台灣為GMT+8,所以台灣時間會和這個時間差8個小時)
[root@localhost~]# date -u

系統設定的時間
[root@localhost~]# date

硬體設定的時間
[root@localhost~]# hwclock

當date時間不正確時,可以透過ntp server來更新時間
[root@localhost~]# ntpdate time.stdtime.gov.tw


或者手動更新時間,以date MMDDhhmmYYYY來修改時間
[root@localhost~]# date 082523592013
MMDDhhmmYYYY為:
月份/日期/時/分/西元年

設定完之後使用

[root@localhost~]# hwclock -w

將新的時間設定到硬體上面。


【Step1:安裝EPEL套件】
安裝一些必要套件,因為CentOS官方沒有提供,所以必須下載EPEL套件。

[root@localhost~]# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 

[root@localhost~]# rpm -ivh epel-release-6-8.noarch.rpm


【Step2:安裝Apache】
Apache是用來顯示PHP和RRDtool所繪製的圖形

[root@localhost~]# yum install httpd httpd-devel -y

【Step3:安裝MySQL】
MySQL是用來存放Cacti資料庫的細節

[root@localhost~]# yum install mysql mysql-server -y

【Step4:安裝PHP】
PHP是用來呈現RRDtool所繪製的圖形

[root@localhost~]# yum install php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli php-mysql -y


【Step5:安裝PHP-SNMP】
這是讓SNMP來存取資料

[root@localhost~]# yum install php-snmp -y

【Step6:安裝NET-SNMP】
用來管理網路設定

[root@localhost~]# yum install net-snmp-utils net-snmp-libs php-pear-Net-SMTP -y

【Step7:安裝RRDtool】
利用SNMP的資訊來繪製相關的曲線圖

[root@localhost~]# yum install rrdtool -y


【Step8:開啟相關的服務】

[root@localhost~]# /etc/init.d/httpd start
[root@localhost~]#
/etc/init.d/snmpd start
[root@localhost~]# 
/etc/init.d/mysqld start(首次開啟mysql,可以看到系統提系要設定root密碼)

※設定MySQL的root密碼,密碼假設為admin123
[root@localhost~]# /usr/bin/mysqladmin -u root password 'admin123'


【Step9:設定上面的服務可以在開機時自動啟用】

[root@server ~]# chkconfig httpd on
[root@server ~]# chkconfig mysqld on
[root@server ~]# chkconfig snmpd on

【Step10:安裝cacti tool】

[root@localhost~]# yum install cacti -y


【Step11:設定MySQL】
以下範例是使用root帳號來建立資料庫給cacti。設定cacti的帳號為:cacti 密碼:centos

[root@localhost~]# mysql -u root -p
Enter password:
輸入剛剛設定好的root密碼

進入資料庫之後,建立cacti的資料庫
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)

建立使用者cacti,對於cacti這個資料庫的所有使用權,並設定cacti這個使用者的密碼為centos
mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'centos';
Query OK, 1 row affected (0.00 sec)

更新資料庫的授權表
mysql> flush privileges;
Query OK, 1 row affected (0.00 sec)

離開資料庫
mysql> exit
Bye

【Step12:匯入cacti資料表到cacti資料庫中】
先使用這個指令來找到cacti資料表的位置
[root@localhost~]# rpm -ql cacti | grep cacti.sql
/usr/share/doc/cacti-0.8.8b/cacti.sql

找到之後開始匯入資料表
[root@localhost~]# mysql -u cacti -p cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql
Enter password:輸入剛剛設定的cacti資料庫帳號的密碼:centos


【Step13:修改/etc/cacti/db.php的檔案】
[root@localhost~]# vi /etc/cacti/db.php

開啟vim編輯器之後,可以按一下「/」鍵來尋找關鍵字,找到之後按下「i」鍵開始編輯

$database_type = "mysql"; 
$database_default = "cacti";剛剛在資料庫新增的cacti資料庫
$database_hostname = "localhost";
$database_username = "cacti"; cacti資料庫的帳號:cacti
$database_password = "centos";cacti這個帳號的密碼:centos
$database_port = "3306"; $database_ssl = false;

修改完之後,輸入「:wq」來存檔(按住shift+鍵盤上的ㄤ,再打上wq)

【Step14:修改/etc/httpd/conf.d/cacti.conf的檔案】
在這裡的修改,你可以輸入固定的ip或者是一個網段。範例是輸入192.168.60.0/24這個網段

[root@localhost~]# vi /etc/httpd/conf.d/cacti.conf

<Directory /usr/share/cacti/>
<IfModule mod_authz_core.c>
# httpd 2.4
Require host localhost
</IfModule>
<IfModule !mod_authz_core.c>
# httpd 2.2
Order deny,allow
Deny from all
                Allow from 192.168.60.0/24
</IfModule>

</Directory>

存檔之後重新啟動Apache
[root@localhost~]# /etc/init.d/httpd restart


【Step15:修改防火牆的設定】
這裡會建議初學者直接將防火牆關閉,讓之後debug會比較容易一點。

[root@localhost~]# vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall 
# Manual customization of this file is not recommended. 
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m state --state NEW --dport 80 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT 
-A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT 
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

將防火牆服務重新啟動
[root@localhost~]# /etc/init.d/iptables restart

【Step16:將cacti加入排程中】
在這裡只要將前面的#字移除 [root@localhost~]# vi /etc/cron.d/cacti
*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

【Step17:修改php.ini的檔案】
[root@localhost~]# vim /etc/php.ini 找到這一行,將前面的分號移除之後改成這個格式 date.timezone=Asia/taipei



【Step18:開啟瀏覽器,安裝cacti】 照這以下的圖片來設定。(共6張)
開啟瀏覽器輸入:http://ip-address/cacti.  以我的例子:http://192.168.60.58/cacti







【Step19:完成設定,準備新增設備】
以上步驟就可以完成cacti的建置,下一篇要教各位如何新增設備,建立曲線圖以及安裝套件。


41 則留言:

  1. 您好:感謝分享,另外請問"下一篇"有分享嗎??

    回覆刪除
    回覆
    1. Dear Joseph:

      不好意思,因為寫完這篇以後就再忙其他事情...所以也就沒有多花時間上來分享了。

      請問安裝套件您比較需要知道哪些? Mactrack? Weathermap??

      這樣我可以更快寫完~又滿足您的需求

      刪除
  2. 您好:
    我用 YUM 裝完後,目錄跑去/var/www/cacti/
    但是我在該目錄找不到您上述說的db.php
    可否請徐大幫小弟解惑
    感謝感謝!!
    【Step13:修改/etc/cacti/db.php的檔案】
    [root@localhost~]# vi /etc/cacti/db.php

    回覆刪除
    回覆
    1. find / -name db.php
      或是
      locate db.php

      你的路徑不同,可能是因為先前有參考過別的教學吧?
      如果可以砍掉重來會比較保險喔!但是如果一些參數你懂得如何去改,那也是ok的

      刪除
  3. 您好:再請教一下
    我在瀏覽器輸入 http://ip/cacti/ 可正常瀏覽
    請問在哪裡調整,可以只輸入 IP 即可瀏覽( http://ip ) ??

    感謝感謝!!!

    回覆刪除
    回覆
    1. 你這樣有點偷懶喔! 我只可以提醒你,查看看CentOS上面要怎麼去設定Apache。關鍵是在設定檔。

      刪除
  4. 您好,yum install php-snmp是找不到package的,請問epel有包含這個套件?

    回覆刪除
    回覆
    1. 不太明白您的意思耶,可以麻煩貼上輸入完指令後出現的error嗎?

      刪除
  5. [root@testcacti ~]# yum install rrdtool
    Loaded plugins: fastestmirror, priorities, security
    Loading mirror speeds from cached hostfile
    Setting up Install Process
    No package rrdtool available.
    Nothing to do
    [root@testcacti ~]#
    請教一下,它顯示找不到,請問怎麼解??

    回覆刪除
    回覆
    1. 你的CentOS版本是什麼呢?
      貼一下「# yum list rrdtool」這個指令的回覆。

      刪除
    2. [root@testcacti ~]# yum list rrdtool
      Loaded plugins: fastestmirror, priorities, security
      Loading mirror speeds from cached hostfile
      Error: No matching Packages to list
      [root@testcacti ~]#

      刪除
    3. No matching Packages to list,表示你這個版本的CentOS,yum沒有提供rrdtool的安裝檔
      你的CetnOS是安裝哪一個版本?給我看一下「cat /etc/redhat-release 」

      刪除
    4. [root@testcacti ~]# cat /etc/redhat-release
      CentOS release 5.10 (Final)

      刪除
    5. 5.10啊....建議升級6.5.
      如果yum找不到的話,就用手動安裝吧

      刪除
  6. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 這是因為yum預設自動更新,所以你無法進行安裝.
      方法有兩種,一種是輸入"kill xxxx"
      xxxx就是打上面提示的:pid:13626 (或者是其他的程序)

      刪除
    2. 補充:
      如果出現「Another app is currently holding the yum lock; waiting for it to exit...」
      就是利用上面的方法來解決喔

      刪除
  7. 大大您好,我在Step 14 時,遇到錯誤,Apache起不來
    [root@vmad ~]# vi /etc/httpd/conf.d/cacti.conf
    [root@vmad ~]# /etc/init.d/httpd restart
    正在停止 httpd: [ 確定 ]
    正在啟動 httpd:Syntax error on line 23 of /etc/httpd/conf.d/cacti.conf:
    allow requires at least two arguments, 'from' followed by hostnames or IP-addres s wildcards
    [失敗]
    [root@vmad ~]# vi /etc/cron.d/cacti
    [root@vmad ~]# /etc/init.d/httpd restart
    正在停止 httpd: [失敗]
    正在啟動 httpd:Syntax error on line 23 of /etc/httpd/conf.d/cacti.conf:
    allow requires at least two arguments, 'from' followed by hostnames or IP-addres s wildcards
    [失敗]

    回覆刪除
    回覆
    1. 可以了,我在vi /etc/httpd/conf.d/cacti.conf 這邊有打錯

      刪除
    2. 那你應該有Run 起來了吧?

      刪除
    3. 有了,謝謝您的指教!
      目前有個問題是,我的syslog的HOST只能顯示IP,有辦法讓它顯示我設備的hostname或是我指定hostname嗎??

      刪除
    4. 哪一個地方?syslog不是指本機的log嗎?

      刪除
    5. 我要把該server 當 Log Server,所以裝了rsyslog 這個模組來蒐集網路設備的log (http://download.ithome.com.tw/article/index/id/2305)

      只是裝起來後,在左邊的HOST,只能看到IP,不能顯示設備的hostname

      刪除
    6. 這個我就不清楚耶!我只有拿來看安裝Cacti OS的Log,有空在研究一下

      刪除
  8. 大大,請教一下,我裝起來後,在console > Device 裡面的HOST status 都顯示 unknown,請問該怎麼解??

    回覆刪除
    回覆
    1. 先試試看手動執行 poller這個php檔案。
      # php XXXX/poller.php

      XXX是poller的路徑。

      刪除
  9. 你好 小弟是新手 LIUNX

    【Step8:開啟相關的服務】

    [root@localhost~]# /etc/init.d/httpd start
    [root@localhost~]# /etc/init.d/snmpd start
    [root@localhost~]# /etc/init.d/mysqld start
    找不到檔案,以上的步驟都有安裝 ,還是找不到檔案,是否有哪一個步驟是遺忘的? 還是在安裝到別的目錄?
    那我應該如何找到?

    回覆刪除
    回覆
    1. 先說聲抱歉,因為在當兵所以比較晚回覆。

      麻煩你貼給我看輸入完「/etc/init.d/httpd start」之後的訊息。

      我覺得你有可能是沒有登入到root帳號。

      刪除
  10. 你好。因為用測試的虛擬環境,所以請問如何在沒有網路的情況,無法使用yum的指令下手動完成安裝?
    如果用rpm指令的話,請問如何將windows檔案放到linux目錄下呢?
    感謝回覆 :)

    回覆刪除
  11. 在我之前測試的結果,用CactiEZ來建置Cacti的環境最容易也最穩定。
    建議如果是無法使用對外網路的環境以這個方式來建立最好。

    另外我不太明白"用rpm指令將windows檔案放置Linux目錄"的意思
    我想你的意思應該是該要如何用Linux指令來從windows系統把檔案放置到虛擬機器裡的Linux
    如果是這個意思,那你先google"把檔案傳到VM"之類關鍵字來查查
    查完之後有不懂的歡迎在這繼續討論~

    回覆刪除
  12. 請問進入http://ip-address/cacti後,沒有跳出cacti的安裝畫面,只有跳出
    You are now logged into Cacti. You can follow these basic steps to get started.
    •Create devices for network
    •Create graphs for your new devices
    •View your new graphs
    這四行英文,請問要去哪裡檢查?謝謝回覆 :)

    回覆刪除
  13. 你好。不好意思又打擾了。
    現在變成進入cacti時畫面全白,我cacti.sql也執行了,可以請問還有哪裡需要檢查呢?

    回覆刪除
    回覆
    1. 作者已經移除這則留言。

      刪除
    2. 謝謝喔 我把問題解決了。他沒讀到cacti的conf檔 。感謝你的熱心回覆 :)
      讀你的網誌讓我受益良多

      刪除
  14. 開網頁 192.168.xxx.xxx/cacti / ERROR: Your MySQL TimeZone database is not populated. Please populate this database before proceeding.有照step11~step14作設定找不到錯在哪?

    回覆刪除
    回覆
    1. 我沒碰過這個問題耶,但是google一下可以找到些資訊。關鍵字用:ERROR: Your MySQL TimeZone database is not populated

      刪除
  15. 您好,目前裝完後 graps無圖片顯示該如何檢查呢

    回覆刪除
    回覆
    1. 不好意思這個軟體好久沒使用了,但可以用之前的印象幫你解答。
      1.先確認設備是否開啟SNMP
      2.確認安裝的模組是否與設備匹配,如果不匹配則無法正常顯示圖形

      刪除
    2. 1.console > Management > Graph Management用Turn On Graph Debug Mode確認問題
      2.是完全沒圖表還是沒數據,多試幾個Graph看看

      刪除