天天看點

部署cacti監控windows && linux

一、安裝LAMP架構

本篇主要介紹cacti如何監控windows主機,cacti的搭建過程也很簡單,同樣,監控linux主機也不難。這裡主要記錄部署監控windows過程中遇到的兩個問題

1、LAMP

1

<code>#yum install -y httpd php mysql-server</code>

2、插件      

<code> </code><code>#yum install -y mysql-server  php-mysql net-snmp* zlib libpng freetype libjpeg  gd libxml2</code>

3、安裝rrdtool

<code>#yum -y install rrdtool</code>

4、安裝cacti          

<code># tar xf cacti-0.8.8b.tar.gz -C /var/www/html/</code>

5、資料庫授權

2

3

<code>mysql&gt;grant all on cacti.* to </code><code>'cacti'</code><code>@</code><code>'localhost'</code> <code>identified by </code><code>'cacti'</code><code>;</code>

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

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

6、導入資料庫(先建庫,再導庫)

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

          折騰了半天,就是因為沒有導入資料庫

          如果不導入資料庫,會報錯:

          PHP Fatal error:  Allowed memory size of 548405248 bytes exhausted (tried to allocate 523800 bytes) in /var/www/html/cacti/lib/adodb/adodb.inc.php on line 833

7、修改配置檔案

4

5

6

7

<code># vim /var/www/html/cacti/include/config.php</code>

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

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

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

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

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

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

8、通路cacti

    http://192.168.1.150/cacti/

     預設使用者名及密碼是admin:admin

9、署好cacti後,可以使用snmpwalk擷取到資料,但cacti web頁面是有圖無資料

因為 httpd,php,rrdtool 都是yum安裝的,mysql 是編譯安裝的,是以懷疑是yum的東西連接配接資料庫的問題,結果證明不是

原因:擷取到的資料沒有順利裝載到資料庫裡,檢視一下是不是資料庫的問題,例如權限、資料表結構~~

檢視日志:tail /var/www/html/cacti/log/cacti.log 沒有資訊     清空日志:&gt;/var/www/html/cacti/log/cacti.log 

/var/www/html/cacti/rra 有資料,說明rrdtool是沒有問題的

執行 /usr/bin/php /var/www/html/cacti/poller.php  報了一個關于 Asia/Chongqing 的錯

#vim /etc/php.ini

date.timezone = Asia/Chongqing

定時任務,每5分鐘去探測一下:

*/5 * * * * /usr/bin/php /var/www/cacti/poller.php &gt;/dev/null &amp;2&gt;1

(2)是無圖無資料

    如果是無圖無資料,那就打開 Date Source 和 Graph Management 的 Debug 模式查原因,可以直接在指令行下運作 Data Source 中的指令來達到出圖的目的

10、檢視日志

一定要用tail,别用 cat 和 vim ,都讀到記憶體中,小心把伺服器搞崩了

二、監控windows主機

   防火牆開戶UDP 161(SNMP)端口

   windows主機需要安裝snmp服務和SNMP Informant服務

   如果依照下面的步驟配置完後,還是不行,那就檢查你伺服器安裝了什麼安全軟體,比如安全狗之類的,我就是被這家夥折磨了一天!

1、cacti用戶端配置:

   為window系統配置snmp服務及安裝snmp informant

  (1)在win2008伺服器上添加功能snmp服務,不是snmp伺服器

  (2)運作 --&gt; services.msc --&gt; SNMP Service

       在彈出的視窗中選擇”安全”頁籤,并設定社群為:public 

       按需要可設定接受來自任何主機的SNMP資料包或隻指定個别機子. 

       然後确定并重新開機SNMP Service.

  (3)解壓并安裝informant-std-16.zip

       下載下傳連結:http://www.wtcs.org/informant/download.htm,目前是STD 1.6

<a href="http://s3.51cto.com/wyfs02/M00/48/01/wKiom1QFT5rggX7QAABSFckZHGM548.jpg" target="_blank"></a>

  (4)在cacti伺服器上測試snmp的連通性

8

<code>[root@cacti ~]</code><code>#  snmpwalk -v 2c -c public 192.168.1.107 system</code>

<code>SNMPv2-MIB::sysDescr.0 = STRING: Hardware: Intel64 Family 6 Model 60 Stepping 3 AT</code><code>/AT</code> <code>COMPATIBLE - Software: Windows Version 6.1 (Build 7601 Multiprocessor Free)</code>

<code>SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.311.1.1.3.1.2</code>

<code>DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (484620) 1:20:46.20</code>

<code>SNMPv2-MIB::sysContact.0 = STRING: </code>

<code>SNMPv2-MIB::sysName.0 = STRING: DY-WORK-Server</code>

<code>SNMPv2-MIB::sysLocation.0 = STRING: </code>

<code>SNMPv2-MIB::sysServices.0 = INTEGER: 76</code>

2、cacti服務端配置:

  (1)下載下傳模闆

       Cacti_SNMP_Informant_Standard_Metrics_v13.zip 

       (該cacti監控模闆支援WinXP/Vista/Win7/Win2000/2003/2008/2012 x32/x64) 

       下載下傳位址: http://forums.cacti.net/download/file.php?id=26562 

  (2)解壓并導入模闆

       把template檔案夾中的6個模闆檔案,通過cacit操作界面導入,

       然後把檔案夾resource\snmp_queries中的xml檔案,放到cacti伺服器中的相應目錄,我的伺服器為/var/www/html/cacti/resource/snmp_queries

3、建立監控主機及監控資源圖

   故障:安裝、建立完成後,cacti不出圖

   解決:首先确認/var/www/html/cacti/rrd目錄是否可寫,照上文設定使用者權限;

        http://blog.sina.com.cn/s/blog_61c07ac50101cfja.html

三、cacti監控linux主機

1、在被監控的linux主機上安裝net-snmp

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<code>[root@localhost ~]</code><code># yum install net-snmp</code>

<code>[root@localhost ~]</code><code># rpm -ql net-snmp</code>

<code>[root@localhost ~]</code><code># vim /etc/snmp/snmpd.conf</code>

<code>#更改以下部分</code>

<code> </code> 

<code>(1)</code><code>#将下邊這行中的default</code>

<code>com2secnotConfigUser default public</code>

<code>#改為192.168.200.105(cacti)伺服器的位址)</code>

<code>com2secnotConfigUser 192.168.200.105 public</code>

<code>(2)</code><code>#将下邊這行中的systemview</code>

<code>access notConfigGroup </code><code>""</code> <code>any noauth exact systemview none none</code>

<code>#改為all</code>

<code>access notConfigGroup </code><code>""</code> <code>any noauth exact all none none</code>

<code>(3)</code><code>#将下邊這行的注釋“#”号去掉</code>

<code>#view all included .1 80</code>

<code>(4)重新開機snmp服務</code>

<code>[root@localhost ~]</code><code># service snmpd restart</code>

<code>(5)設為開機啟動</code>

<code>[root@localhost ~]</code><code># chkconfig snmpd on</code>

<code>(6)檢視端口</code>

<code>(7)檢視服務</code>

<code>[root@localhost ~]</code><code># ss -antulp | grep snmp</code>

<code>tcp    0      128                 127.0.0.1:199                        *:*      </code><code>users</code><code>:((</code><code>"snmpd"</code><code>,23555,8))</code>

2、在cacti伺服器上使用snmpwalk測試

<code>[root@cacti ~]</code><code># snmpwalk -v 2c -c public 192.168.200.111 system</code>

<code>SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-279.el6.x86_64 </code><code>#1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64</code>

<code>SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10</code>

<code>DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2401) 0:00:24.01</code>

<code>SNMPv2-MIB::sysContact.0 = STRING: Root &lt;root@localhost&gt; (configure </code><code>/etc/snmp/snmp</code><code>.</code><code>local</code><code>.conf)</code>

<code>SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain</code>

<code>SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit </code><code>/etc/snmp/snmpd</code><code>.conf)</code>

<code>SNMPv2-MIB::sysORLastChange.0 = Timeticks: (2) 0:00:00.02</code>

<code>SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1</code>

<code>SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance</code>

<code>SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance</code>

<code>SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB</code>

<code>SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB</code>

<code>SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip</code>

<code>SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB</code>

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