天天看點

cacti監控一覽無餘

cacti故障解決

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

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

注:問題均是在redhat5.4系統下:httpd-2.2.19.tar.gz、mysql-5.5.30.tar.gz (cmake-2.8.4.tar.gz)、php-5.4.8.tar.gz、cacti-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來初始化。

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-development或php.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"

或在cacti的include/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檔案

 1)rrdtool的版本選取是否正确,

<a href="http://blog.51cto.com/attachment/201303/220703905.png" target="_blank"></a>

2)目錄log、rra權限問題

<a href="http://blog.51cto.com/attachment/201303/221012231.png" target="_blank"></a>

3)mysql的權限問題,檢視cacti的日志,比如權限問題

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

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

<a href="http://down.51cto.com/data/2362378" target="_blank">附件:http://down.51cto.com/data/2362378</a>

本文轉自 劉園  51CTO部落格,原文連結:http://blog.51cto.com/colynn/1147973