網頁

2015年1月7日 星期三

cacti on windows server (相關資料整理)

安裝環境調整與設定:

實做的環境為 Server 2008 R2 64bit & Windows 7 64bit

php.ini調整

啟動以下 dll
extension=php_mysql.dll
extension=php_snmp.dll
extension=php_sockets.dll
cgi.force_redirect = 0

RRDTools安裝

net-snmp安裝

  • net-snmp win binaries download
  • 將它安裝於 C:\net-snmp 目錄內
  • 看看有沒有運作正常:於命令列內輸入 snmpwalk.exe -v 1 -c public localhost ;有看到訊息出現時則表示正常。

Spine 安裝

  • Spine download
  •  下載要的版本後,解壓縮到 C:\cacti\* 目錄內
  • 將 cactid.conf.dist 重新命名為 cactid.conf。修改 cactid.conf,將 MySQL相關資訊更新。

Active Perl安裝

  • 有些查到的資料說,有些 Script 是用 perl 寫的。但做測試時先跳過此部份。

Cacti php code調整

  • 修改設定檔 /cacti/include/config.php ,將 mysql 資訊填入。
  • 將 /cacti/cacti.sql 匯入到 MySQL內
  • 到瀏覽器內輸入 http://your PC IP/cacti/,再按介面提示進行安裝即可。第一次的登入帳密為 admin/admin 
  • 字型設定:於 settings 介面內,設定 RRDTools Default Font 的位址。例如於該欄位內使用 tahoma.ttf 字型。 C:/Windows/Fonts/tahoma.ttf
  • 於作業系統內設定排程,每隔五分鐘自動執行 htdocs/cacti/poller.php。
  • 於 cacti web 介面內新增 Device
    • Host Template 選windows 2000/XP Host (因為是監控 windows  主機)

Cacti Server Backup Issue

  • Cacti PHP Code backup - 若資料過於龐大且可以不保留歷史記錄時,可以將 /rra/* & /log/* 內的資料刪除。
  • MySQL DB backup

Cacti Upgrade

  • 參考此頁內的作法,再透過 web 介面內的提示處理即可;更新時,別忘將 php.ini 內的 disable_function 與 open_basedir 暫時開放。  
    • 0.8.8c 更新至 0.8.8f 更新的經驗:
      • 將 0.8.8c 更新至 0.8.8f 版本後。使用 cacti UI 介面,都沒有接收到後續資料。查了很久後,有可能是 Apache 執行權限不足的緣故。因為當時將整個 cacti 目錄直接刪除,再重新新增 cacti 目錄後忘了調整下面子目錄所需的權限。cacti 程式目錄需要的權限可參考 cacti online document
      • 需要 modify 權限的目錄:cacti\rra\* , cacti\log\* 
      • 針對第七點與第八點的地方( scripts 與 resource 目錄);指令的意義如右: cp –u ( -u, --update copy only when the SOURCE file is newer than the destination file or when the destination files is missing)
    • 0.8.8f 更新至 0.8.8g 更新的經驗:105.03.18
      • 由於這是透過SSH 上傳,不是直接在主機內動作。所以這的更新動作如下
      1.  備份資料庫與目前在運行的cacti 程式碼
      2. 下載新版本並解壓縮,請注意要下載到對的版本。因為這次的更新,很妙的是官方網站內的下載頁面所直接提供的下載連結是舊的版本。導致這次更新時出現 Error Invalid Cacti version 0.8.8f,cannot upgrade to 0.8.8.8的狀況。
      3.  修改解壓縮檔案內的 include/config.php ,將需要的MySQL資料填入
      4.  解壓縮檔案內的刪除 rra/* 目錄
      5.  除了Script、resource的部份。全部直接上傳且覆蓋現在所使用的檔案。
      6.  上傳 Script、resource 目錄的資料,有較新的檔案或無此檔案時才做覆蓋的動作。
      7. 由於採用上傳更新的做法,所以主機上的檔案權限的部份會照舊。
      8.  暫時調整PHP.ini 設定,php.ini 內的 disable_function 與 open_basedir 暫時開放。 restart Apache
      9. 此時再連到 cacti web介面。直接按網頁內的說明進行即可。
      10. 暫時調整PHP.ini 設定調整回來。restart Apache.
      11. 在 cacti 介面內重建 poller cache
        system utilities -->Rebuild poller cache (其實這點我是覺得很奇怪,因為手冊也沒有提到這個。但由於更新到 0.8.8f 與 0.8.8g 時的經驗,若沒有執行此程序時,就不會再出現更新後圖表)移除 install 目錄。手冊雖然沒提及,但我還是刪掉它。
        搞到後來不確定到底是我這的PHP設定的太嚴謹還是需要做這個  Rebuild poller cache 的動作,總之目前將原本所限制的
        disable_function 與 open_basedir 關掉後就可以正常運作。很妙的是也沒有 log 記錄可供參考。由於這台主機是專用,所以有空再來釐清是那的問題。
      12. 完成 !! 

被監控的設備相關設定

  1. SNMP 啟動 : Win7 可參考此頁說明Server 2008 可參考此頁說明
  2. Cacti 介面設定:細部操作可參考此頁說明

Misc

  • 忘了 cacti 登入密碼:可以直接到 MySQL內更新 user_auth ; update user_auth SET password = MD5('new password');
  • 架好後也順利監控各個主機了。但很奇怪,有些圖表。如 Disk Used Space 的圖表在有些時間點會突然消失、有些主機卻是連資料都沒有(圖三)。
    • 查了一下原因,可能是這所提到的問題。調整了 php.ini 的max_execution_time。後續再來觀查看看。

    成果 


     

     

     

     

     

     

     

     

     

     

    奇怪的狀況

     

     

     

     

     

     

     

     

     

    疑難雜症處理


    1. system utilities -->Rebuild poller cache
    2. snmpwalk -v 2c -c public test server ip
    3. check cacti/rra/* files
    4. check apache log files

     

    相關資料:

    沒有留言:

    張貼留言