一、安裝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>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>flush privileges;</code>
<code>mysql> create database cacti;</code>
6、導入資料庫(先建庫,再導庫)
<code>mysql cacti < </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 沒有資訊 清空日志:>/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 >/dev/null &2>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)運作 --> services.msc --> 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 <root@localhost> (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,如需轉載請自行聯系原作者