cacti監控一覽無餘

cacti故障解決

 cacti對於運維者而言,是一套基於PHP,MySQL,SNMPRRDTool開發的網絡流量監測圖形分析工具,她的用途很明顯,可以很方便的幫助運維者監控網絡環境中的服務器、設備等,並且也能夠實現通過郵件、飛信、msn告警的功能,本篇就不是詳細介紹cacti安裝、使用、告警實現了,可以參照附件,有完整的安裝及使用過程。

 由於筆者採用源碼的方式安裝,並且源碼都較新,出現的很多的問題,百度、谷歌發現解決問題並沒有很強的針對性,故列舉行遇到的問題共同學習:

注:問題均是在redhat5.4系統下:httpd-2.2.19.tar.gzmysql-5.5.30.tar.gz cmake-2.8.4.tar.gz)、php-5.4.8.tar.gzcacti-0.8.8a.tar.gz的環境下。

1、首先針對lamp源碼環境

  mysql爲源碼,需要用cmake來編譯,

   cmake安裝

   ./configure  

   make && make install

  mysql編譯安裝

  [root@host ~]#tar -zxvf mysql-5.5.30.tar.gz  -C /usr/local/

 [root@host ~]# cd /usr/local/mysql-5.5.30/

  [root@host mysql-5.5.30]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -       DMYSQL_DATADIR=/mysql/data/  [mysql的數據目錄,初始化時要通過 --datadir指明] \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 \
  -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all \  -DDEFAULT_COLLATION=utf8_general_ci \

  -DWITH_DEBUG=0

[root@host mysql]#make  && make install  編譯過以後,自行參照INSTALL-BINARY來初始化。

  

   php的源碼編譯要指定 --enable-sockets 選項,否則,cacti將無法運行  參看lamp源碼搭建》

 

2、錯誤時區問題

Warning: strtotime(): 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 the timezone 'UTC' for now, but please set date.timezone to select your timezone. in/usr/local/apache/htdocs/cacti/include/global_constants.php on line 165

在源碼安裝php時指定配置文件的路徑

--with-config-file-path=/usr/local/php/etc

然後從php的源碼包拷貝php.ini-developmentphp.ini-production  命名爲php.ini

[root@localhost php-5.4.8]# pwd

/usr/local/src/php-5.4.8

[root@localhost php-5.4.8]# cp php.ini-production  /usr/local/php/etc/php.ini 

php.ini中加入  date.timezone = "Asia/Shanghai"

 

或在cactiinclude/config.php中添加   

date_default_timezone_set("Asia/Shanghai");   //實驗中這種修改方式成功

 

3、在安裝插件thold時錯誤 

Fatal error: Call to undefined function define_syslog_variables() in /usr/local/apache/htdocs/cacti/plugins/thold/includes/settings.php on line 91

PHP5.3開始便廢除一些較舊的函數,當使用這些函數時,會遇到 E_DEPRECATED 錯誤。

define_syslog_variables(),該函數初始化所有與 syslog 相關的變量。該函數不是必需的,因爲它定義的常量已經被全局定義。廢除這個函數調用應該是有必要的。

解決方法:

編輯 cacti 目錄下 plugins/thold/includes/settings.php,並註釋掉91該行。問題解決。

4、無法生成rrd文件

 1rrdtool的版本選取是否正確,

2)目錄logrra權限問題

3)mysql的權限問題,查看cacti的日誌,比如權限問題

  比如cacti用戶是否已經授權成功,源碼安裝mysql時注意數據目錄的所有者,等等了,

讓我們共同努力讓cacti的使用不再繁瑣,跟貼,共同創建cacti的故障手冊。。。

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