天天看點

實戰1 Cacti安裝配置

一、cacti概述

二、cacti工作流程

三、cacti安裝

四、配置cacti監控本機

環境:

作業系統:CentOS 6.4 x86_64

軟體:Cacti-0.8.7e

Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP、MySQL、SNMP及RRDTool開發的網絡流量監測圖形分析工具。它通過snmpget來擷取資料,使用 RRDtool繪畫圖形,它的界面非常漂亮,能讓你根本無需明白rrdtool的參數能輕易的繪出漂亮的圖形。而且你完全可以不需要了解RRDtool複雜的參數。它提供了非常強大的資料和使用者管理功能,可以指定每一個使用者能檢視樹狀結 構、host以及任何一張圖,還可以與LDAP結合進行使用者驗證,同時也能自己增加模闆,讓你添加自己的snmp_query和script!功能非常強大完善,界面友好。可以說,Cacti将rrdtool的所有“缺點”都補足了!下圖是Cacti運作的主界面,

下面我們來簡單的說明一下Cacti的工作流程,

步驟一,snmp協定收集遠端伺服器的資料

步驟二,将snmp收集的資料内容儲存到rrd資料庫中

步驟三,若使用者檢視某台裝置上的流量或其它狀态資訊

步驟四,在mysql資料庫中查找該裝置對應的rra資料庫檔案的名稱

步驟五,通過rrdtool指令進行繪圖即可

好了,在前面的幾篇部落格中我們講解了SNMP協定,也講解了RRDTool工具的使用,現在再來學習Cacti就非常的簡單了,下面我們來安裝并使用Cacti。

注,Cacti的運作是基于LAMP環境的首先我們來安裝LAMP環境。(LAMP環境安裝有兩種方法,有時間的博友可以使用源碼安裝,不想用源碼安裝的博友可以參考我的安裝方法全部用yum安裝。)下面我們來具體示範一下,

1、更換系統預設的yum源

1

2

3

4

5

6

7

8

9

10

11

12

<code>[root@node1 ~]</code><code># rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm</code>

<code>Retrieving http:</code><code>//pkgs</code><code>.repoforge.org</code><code>/rpmforge-release/rpmforge-release-0</code><code>.5.3-1.el6.rf.x86_64.rpm</code>

<code>warning: </code><code>/var/tmp/rpm-tmp</code><code>.1lW03k: Header V3 DSA</code><code>/SHA1</code> <code>Signature, key ID 6b8d79e6: NOKEY</code>

<code>Preparing...                </code><code>########################################### [100%]</code>

<code>   </code><code>1:rpmforge-release       </code><code>########################################### [100%]</code>

<code>[root@allentuns ~]</code><code># ll /etc/yum.repos.d/</code>

<code>total 24</code>

<code>-rw-r--r--. 1 root root  739 Mar 20  2013 mirrors-rpmforge</code>

<code>-rw-r--r--. 1 root root  717 Mar 20  2013 mirrors-rpmforge-extras</code>

<code>-rw-r--r--. 1 root root  728 Mar 20  2013 mirrors-rpmforge-testing</code>

<code>drwxr-xr-x. 2 root root 4096 May 23 15:00 old</code>

<code>-rw-r--r--. 1 root root 1128 Mar 20  2013 rpmforge.repo</code>

2、時間同步

13

14

<code>[root@node1 ~]</code><code># yum -y install ntp</code>

<code>[root@node1 ~]</code><code># ntpdate -u asia.pool.ntp.org</code>

<code> </code><code>4 Jun 10:25:26 ntpdate[1375]: step </code><code>time</code> <code>server 202.73.36.32 offset -28799.877146 sec</code>

<code>[root@node1 ~]</code><code># date</code>

<code>Wed Jun  4 10:25:29 EDT 2014</code>

<code>[root@node1 ~]</code><code># cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime</code>

<code>cp</code><code>: overwrite `</code><code>/etc/localtime</code><code>'? </code><code>yes</code>

<code>Wed Jun  4 22:32:39 CST 2014</code>

<code>[root@node1 ~]</code><code># crontab -l</code>

<code>*</code><code>/1</code> <code>* * * * </code><code>/usr/sbin/ntpdate</code> <code>-u asia.pool.ntp.org</code>

<code>[root@node1 ~]</code><code># service crond restart</code>

<code>Stopping crond:                                            [  OK  ]</code>

<code>Starting crond:                                            [  OK  ]</code>

3、安裝lamp環境

<code>[root@node1 ~]</code><code># yum install -y httpd php php-mysql php-snmp php-xml php-gd mysql mysql-server gd gd-devel</code>

     設定開機自啟動

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

<code>[root@node1 ~]</code><code># service httpd start</code>

<code>Starting httpd:                                            [  OK  ]</code>

<code>[root@node1 ~]</code><code># chkconfig httpd on</code>

<code>[root@node1 ~]</code><code># service mysqld start</code>

<code>Initializing MySQL database:  Installing MySQL system tables...</code>

<code>OK</code>

<code>Filling help tables...</code>

<code>To start mysqld at boot </code><code>time</code> <code>you have to copy</code>

<code>support-files</code><code>/mysql</code><code>.server to the right place </code><code>for</code> <code>your system</code>

<code>PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !</code>

<code>To </code><code>do</code> <code>so, start the server, </code><code>then</code> <code>issue the following commands:</code>

<code>/usr/bin/mysqladmin</code> <code>-u root password </code><code>'new-password'</code>

<code>/usr/bin/mysqladmin</code> <code>-u root -h node1 password </code><code>'new-password'</code>

<code>Alternatively you can run:</code>

<code>/usr/bin/mysql_secure_installation</code>

<code>which</code> <code>will also give you the option of removing the </code><code>test</code>

<code>databases and anonymous user created by default.  This is</code>

<code>strongly recommended </code><code>for</code> <code>production servers.</code>

<code>See the manual </code><code>for</code> <code>more</code> <code>instructions.</code>

<code>You can start the MySQL daemon with:</code>

<code>cd</code> <code>/usr</code> <code>; </code><code>/usr/bin/mysqld_safe</code> <code>&amp;</code>

<code>You can </code><code>test</code> <code>the MySQL daemon with mysql-</code><code>test</code><code>-run.pl</code>

<code>cd</code> <code>/usr/mysql-test</code> <code>; perl mysql-</code><code>test</code><code>-run.pl</code>

<code>Please report any problems with the </code><code>/usr/bin/mysqlbug</code> <code>script!</code>

<code>                                                           </code><code>[  OK  ]</code>

<code>Starting mysqld:                                           [  OK  ]</code>

<code>[root@node1 ~]</code><code># chkconfig mysqld on</code>

<code>[root@node1 ~]</code><code># netstat -tnlp</code>

<code>Active Internet connections (only servers)</code>

<code>Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID</code><code>/Program</code> <code>name   </code>

<code>tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1048</code><code>/sshd</code>           

<code>tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1124</code><code>/master</code>         

<code>tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1625</code><code>/mysqld</code>         

<code>tcp        0      0 :::80                       :::*                        LISTEN      1425</code><code>/httpd</code>          

<code>tcp        0      0 :::22                       :::*                        LISTEN      1048</code><code>/sshd</code>           

<code>tcp        0      0 ::1:25                      :::*                        LISTEN      1124</code><code>/master</code>

測試phpinfo測試頁面

<code>[root@node1 ~]</code><code># cat &gt;&gt; /var/www/html/index.php &lt;&lt;EOF</code>

<code>&gt; &lt;?php</code>

<code>&gt; phpinfo();</code>

<code>&gt; ?&gt;</code>

<code>&gt; EOF</code>

測試php頁面

好了!如果大家能看到這個phpinfo的頁面,說明我們的apache和php是安裝成功的

接着我們來測試我們的mysql資料是否成功

<code>[root@node1 ~]</code><code># mysql</code>

<code>Welcome to the MySQL monitor.  Commands end with ; or \g.</code>

<code>Your MySQL connection </code><code>id</code> <code>is 2</code>

<code>Server version: 5.1.73 Source distribution</code>

<code>Copyright (c) 2000, 2013, Oracle and</code><code>/or</code> <code>its affiliates. All rights reserved.</code>

<code>Oracle is a registered trademark of Oracle Corporation and</code><code>/or</code> <code>its</code>

<code>affiliates. Other names may be trademarks of their respective</code>

<code>owners.</code>

<code>Type </code><code>'help;'</code> <code>or </code><code>'\h'</code> <code>for</code> <code>help. Type </code><code>'\c'</code> <code>to </code><code>clear</code> <code>the current input statement.</code>

<code>mysql&gt; show databases;</code>

<code>+--------------------+</code>

<code>| Database           |</code>

<code>| information_schema |</code>

<code>| mysql              |</code>

<code>| </code><code>test</code>               <code>|</code>

<code>3 rows </code><code>in</code> <code>set</code> <code>(0.00 sec)</code>

<code>mysql&gt; \q</code>

<code>Bye</code>

好了,到這裡Apache+PHP+MySQL就安裝成功了。下面我們來看重點

net-snmp和RRDTool

4、安裝net-snmp

<code>[root@node1 ~]</code><code>#  yum install -y net-snmp net-snmp-utils</code>

      修改snmp的配置檔案

<code>[root@node1 ~]</code><code># cd /etc/snmp/</code>

<code>[root@node1 snmp]</code><code># cp snmpd.conf snmpd.conf.bak</code>

<code>[root@node1 snmp]</code><code># vim snmpd.conf </code>

<code>#修改55行view值</code>

<code> </code><code>55 </code><code>#view    systemview    included   .1.3.6.1.2.1.1</code>

<code> </code><code>56  view    systemview    included   .1.3.6.1.2.1</code>

    接下來啟動net-snmp服務并測試

<code>root@node1 snmp]</code><code># service snmpd start</code>

<code>Starting snmpd:                                            [  OK  ]</code>

<code>[root@node1 snmp]</code><code># snmpnetstat -v 2c -c public -Ca -Cp tcp localhost </code>

<code>Active Internet (tcp) Connections (including servers)</code>

<code>Proto Local Address          Remote Address         (state)</code>

<code>tcp   *.</code><code>ssh</code>                  <code>*.*                   LISTEN</code>

<code>tcp   *.mysql                *.*                   LISTEN</code>

<code>tcp   localhost.smtp         *.*                   LISTEN</code>

<code>tcp   localhost.smux         *.*                   LISTEN</code>

<code>tcp   localhost.</code><code>ssh</code>          <code>localhost.52311       ESTABLISHED</code>

<code>[root@node1 snmp]</code><code>#</code>

好了,到這裡我們net-snmp安裝完成,下面我們來安裝RRDTool繪圖工具。

5、安裝RRDTool

<code>[root@node1 ~]</code><code># yum -y install rrdtool</code>

      接下來測試RRDTool

<code>[root@node1 ~]</code><code># rrdtool -v</code>

<code>RRDtool 1.3.8  Copyright 1997-2009 by Tobias Oetiker &lt;[email protected]&gt;</code>

<code>               </code><code>Compiled Aug 21 2010 10:57:18</code>

<code>Usage: rrdtool [options] </code><code>command</code> <code>command_options</code>

<code>Valid commands: create, update, updatev, graph, graphv,  dump, restore,</code>

<code>  </code><code>last, lastupdate, first, info, fetch, tune,</code>

<code>  </code><code>resize, xport</code>

<code>RRDtool is distributed under the Terms of the GNU General</code>

<code>Public License Version 2. (www.gnu.org</code><code>/copyleft/gpl</code><code>.html)</code>

<code>For </code><code>more</code> <code>information </code><code>read</code> <code>the RRD manpages</code>

好了,到這裡我們基本環境準備就全部完成了,下面我們來安裝與配置Cacti。

6.安裝與配置Cacti

6.1、 解壓cacti壓縮包并移動到指定的路徑下

<code>[root@node1 ~]</code><code># cd /usr/local/src/</code>

<code>[root@node1 src]</code><code># ls</code>

<code>cacti-0.8.7e.</code><code>tar</code><code>.gz</code>

<code>[root@node1 src]</code><code># tar xf cacti-0.8.7e.tar.gz -C /var/www/html/</code>

<code>[root@node1 src]</code><code># cd /var/www/html/</code>

<code>[root@node1 html]</code><code># ls</code>

<code>cacti-0.8.7e  index.php</code>

<code>[root@node1 html]</code><code># ln -sv cacti-0.8.7e cacti</code>

<code>`cacti</code><code>' -&gt; `cacti-0.8.7e'</code>

6.2、其中cacti.sql是儲存了cacti到所有表的語句,但是沒有建立資料庫的語句,是以下面我們來配置一下Cacti資料庫

<code>Your MySQL connection </code><code>id</code> <code>is 4</code>

<code>mysql&gt; create database cactidb; </code>

<code>mysql&gt; use cactidb;</code>

<code>mysql&gt; </code><code>source</code> <code>/var/www/html/cacti/cacti</code><code>.sql </code>

6.3、因為cacti要通路資料庫,是以我們得給cacti建立一個授權使用者

<code>[root@node1 ~]# mysql</code>

<code>Welcome to the MySQL monitor.  Commands end </code><code>with</code> <code>; or \g.</code>

<code>Your MySQL connection id </code><code>is</code> <code>6</code>

<code>Server version: </code><code>5.1</code><code>.</code><code>73</code> <code>Source distribution</code>

<code>Copyright (c) </code><code>2000</code><code>, </code><code>2013</code><code>, Oracle and/or its affiliates. All rights reserved.</code>

<code>Oracle </code><code>is</code> <code>a registered trademark of Oracle Corporation and/or its</code>

<code>Type </code><code>'help;'</code> <code>or </code><code>'\h'</code> <code>for</code> <code>help. Type </code><code>'\c'</code> <code>to clear the current input statement.</code>

<code>mysql&gt; GRANT ALL ON cactidb.* TO cactiuser@localhost IDENTIFIED BY </code><code>'cactiuser'</code><code>;</code>

<code>Query OK, </code><code>0</code> <code>rows affected (</code><code>0.00</code> <code>sec)</code>

<code>mysql&gt; flush privileges;</code>

<code>[root@node1 ~]#  mysql -ucactiuser -pcactiuser </code>

<code>Your MySQL connection id </code><code>is</code> <code>7</code>

<code>| cactidb            |</code>

<code>| test               |</code>

<code>3</code> <code>rows </code><code>in</code> <code>set</code> <code>(</code><code>0.00</code> <code>sec)</code>

6.4、下面我們來修改cacti程式的配置檔案

<code>[root@node1 ~]</code><code># cd /var/www/html/cacti/include/</code>

<code>[root@node1 include]</code><code># cp config.php config.php.bak</code>

<code>[root@node1 include]</code><code># vim config.php </code>

<code>#需要修改的行</code>

<code>/* </code><code>make</code> <code>sure these values refect your actual database</code><code>/host/user/password</code> <code>*/</code>

<code>$database_type = </code><code>"mysql"</code><code>;</code>

<code>$database_default = </code><code>"cactidb"</code><code>;</code>

<code>$database_hostname = </code><code>"localhost"</code><code>;</code>

<code>$database_username = </code><code>"cactiuser"</code><code>;</code>

<code>$database_password = </code><code>"cactiuser"</code><code>;</code>

<code>$database_port = </code><code>"3306"</code><code>;</code>

6.5、下面我們來建立一個cacti使用者(安裝初始化cacti)并修改相關目錄權限,

<code>[root@node1 ~]</code><code># cd /var/www/html/cacti</code>

<code>[root@node1 cacti]</code><code># useradd cactiuser </code>

<code>[root@node1 cacti]</code><code># chown -R cactiuser:cactiuser log/ rra/</code>

 6.6、浏覽器通路cacti的初始化頁面并安裝cacti

cacti的初始化界面,如下圖

點選【Next】繼續

接下來讓你選擇全新安裝還是更新安裝,我們這裡肯定選擇【New Install】,點選【Next】繼續,

接下來會檢查所有配置選項,若有不符合要求的會用紅色标出,我們這裡全部符合要求,點選【Finish】繼續,

直接跳轉到cacti的登入頁面,到這裡我們cacti初始化就全部完成了,下面我們登入一下,預設使用者名和密碼都為”admin”

第一下次登入時讓你修改預設的使用者名和密碼,自己設定一個即可。

首次登陸cacti的登陸界面,如下圖

至此cacti的安裝就完成了,接下來我們來配置cacti監控本地主機的硬體資訊

設定cacti收集資料的預設的任務計劃。

這裡任務計劃是由poller.php程式執行的,需要說明的是poller.php是由php寫的,單線程的功能相對較弱,為此cacti官方單獨開發了一個多線程Spine工具,适合大規模監控應用。好了下面我們就來配置一下任務計劃并檢視。

<code>[root@node1 ~]</code><code># echo '*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php  &amp;&gt;/dev/null' &gt; /var/spool/cron/cactiuser </code>

<code>[root@node1 ~]</code><code># crontab -u cactiuser -l </code>

<code>*</code><code>/5</code> <code>* * * * </code><code>/usr/bin/php</code> <code>/var/www/html/cacti/poller</code><code>.php  &amp;&gt;</code><code>/dev/null</code>

為了防止這個任務計劃不執行,首次我們最好手動驗證一下

38

39

<code>[root@node1 ~]</code><code># su cactiuser </code>

<code>[cactiuser@node1 root]$ </code><code>/usr/bin/php</code> <code>/var/www/html/cacti/poller</code><code>.php </code>

<code>PHP Deprecated:  Assigning the </code><code>return</code> <code>value of new by reference is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/lib/adodb/adodb</code><code>.inc.php on line 866</code>

<code>PHP Deprecated:  Assigning the </code><code>return</code> <code>value of new by reference is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/lib/adodb/adodb</code><code>.inc.php on line 872</code>

<code>PHP Deprecated:  Assigning the </code><code>return</code> <code>value of new by reference is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/lib/adodb/adodb</code><code>.inc.php on line 1183</code>

<code>PHP Deprecated:  Assigning the </code><code>return</code> <code>value of new by reference is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/lib/adodb/adodb</code><code>.inc.php on line 1961</code>

<code>PHP Deprecated:  Assigning the </code><code>return</code> <code>value of new by reference is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/lib/adodb/adodb</code><code>.inc.php on line 3027</code>

<code>PHP Deprecated:  Assigning the </code><code>return</code> <code>value of new by reference is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/lib/adodb/adodb</code><code>.inc.php on line 3592</code>

<code>PHP Deprecated:  Assigning the </code><code>return</code> <code>value of new by reference is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/lib/adodb/adodb</code><code>.inc.php on line 3667</code>

<code>PHP Deprecated:  Assigning the </code><code>return</code> <code>value of new by reference is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/lib/adodb/adodb</code><code>.inc.php on line 3687</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 156</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 156</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 157</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 157</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 158</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 158</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 159</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 159</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 160</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 160</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 161</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 161</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 162</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_constants</code><code>.php on line 162</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 621</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 621</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 622</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 622</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 623</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 623</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 624</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 624</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 625</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 625</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 626</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 626</code>

<code>PHP Warning:  strtotime(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 627</code>

<code>PHP Warning:  </code><code>date</code><code>(): It is not safe to rely on the system</code><code>'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 '</code><code>America</code><code>/New_York</code><code>' for '</code><code>EDT</code><code>/-4</code><code>.0</code><code>/DST</code><code>' instead </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/include/global_arrays</code><code>.php on line 627</code>

<code>PHP Deprecated:  Function </code><code>split</code><code>() is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/poller</code><code>.php on line 77</code>

大家可以看到上面報了一大堆錯,是什麼錯誤喲?主要是因為我們php.ini的時區設定的不對,下面我們來修改一下php時區。

<code>[root@node1 ~]</code><code># vim /etc/php.ini  </code>

<code>; Defines the default timezone used by the </code><code>date</code> <code>functions</code>

<code>; http:</code><code>//www</code><code>.php.net</code><code>/manual/en/datetime</code><code>.configuration.php</code><code>#ini.date.timezone</code>

<code>;</code><code>date</code><code>.timezone =</code>

<code> </code><code>date</code><code>.timezone = Asia</code><code>/Shanghai</code>

<code>[root@node1 ~]</code><code># service httpd restart</code>

<code>Stopping httpd:                                            [  OK  ]</code>

接下來我們在從新驗證一下

40

41

42

43

44

45

<code>[root@node1 ~]</code><code># su cactiuser</code>

<code>PHP Deprecated:  Function </code><code>split</code><code>() is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/poller</code><code>.php on line 178</code>

<code>PHP Deprecated:  Function </code><code>split</code><code>() is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/cmd</code><code>.php on line 60</code>

<code>PHP Deprecated:  Function ereg_replace() is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/lib/rrd</code><code>.php on line 29</code>

<code>OK u:0.00 s:0.00 r:0.00</code>

<code>OK u:0.00 s:0.00 r:1.00</code>

<code>PHP Deprecated:  Function </code><code>split</code><code>() is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/poller</code><code>.php on line 419</code>

<code>06</code><code>/09/2014</code> <code>07:59:36 AM - SYSTEM STATS: Time:1.2201 Method:cmd.php Processes:1 Threads:N</code><code>/A</code> <code>Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5</code>

<code>PHP Deprecated:  Function </code><code>split</code><code>() is deprecated </code><code>in</code> <code>/var/www/html/cacti-0</code><code>.8.7e</code><code>/poller</code><code>.php on line 387</code>

<code>[cactiuser@node1 root]$ </code><code>cd</code> <code>/var/www/html/cacti</code>

<code>[cactiuser@node1 cacti]$ </code><code>chown</code> <code>-R cactiuser:cactiuser log/ rra/</code>

檢視一下執行日志

<code>[cactiuser@node1 cacti]$ </code><code>cd</code> <code>log</code>

<code>[cactiuser@node1 log]$ </code><code>tail</code> <code>-f cacti.log </code>

<code>06</code><code>/08/2014</code> <code>07:55:02 PM - SYSTEM STATS: Time:1.2324 Method:cmd.php Processes:1 Threads:N</code><code>/A</code> <code>Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5</code>

好了,到此我們的cacti就全部完成了;接下來我們來設定cacti來監控本機

首先我們點選一下“Devices”标簽,出下以下界面,大家從圖中可以看出,預設的主機就是Localhost

接下來我們點選一下“Localhost”主機,出現以下界面。

隻要選擇SNMP版本為“Version2”,點選下面的“Save”即可。效果圖如下,

接下來我們選擇右上腳的“Create Graphs for this Host”(為這個主機增加監控圖形),

我們選擇監控本地主機的磁盤空間,點選“Create”即可。下面我們來點選最上面的“Graph”标簽 。如下圖

監控本地主機的硬體資訊

從圖中我們可以看到我們新增加的監控磁盤空間的圖形還沒有出圖,我們得等個幾分鐘才會出現圖形,請博友耐心等待。好了,過幾分鐘就會出現下面的效果圖

好了,到這裡我們配置Cacti監控localhost就全部完成了。在一下篇博文中我們主要講解Cacti怎麼監控遠端主機與Cacti的進階應用。最後,希望大家有所收獲吧^_^……

謝謝好友Share your Knowledge

     本文轉自zys467754239 51CTO部落格,原文連結:http://blog.51cto.com/467754239/1423728,如需轉載請自行聯系原作者