Cacti的安裝配置-SNMP設(shè)置
Cacti 安裝配置:回大綱
這里將會解釋 Net-SNMP 代理的安裝和設(shè)置。截止寫作時,Net-SNMP 的***版本為5.4(12/06/2006發(fā)布)。
依據(jù)操作系統(tǒng)的不同,你可以使用安裝包或者壓縮包來安裝 Net-SNMP。
大部分發(fā)行的Linux操作系統(tǒng)都帶有Net-SNMP的安裝包:
RedHat / Fedora : 安裝 net-snmp, net-snmp-libs and net-snmp-utils
Debian / Ubuntu: 安裝 libsnmp-base, libsnmp5, snmp and snmpd packages
SuSE : 安裝 the net-snmp package
Gentoo : emerge the net-snmp ebuild
Mandriva : 安裝 the libnet-snmp5, net-snmp and net-snmp-utils packages.
從源代碼安裝 Net-SNMP
如果找不到對應(yīng)的二進(jìn)制發(fā)行包,那么可以嘗試從源代碼進(jìn)行編譯。
如下顯示了如何獲得一個正在運行的 Net-SNMP 的配置選項:
- $ snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.100.6.0
設(shè)置 Net-SNMP 代理
視如何安裝 Net-SNMP,主要的配置文件(snmpd.conf)可能被放置在 /etc/snmp(從二進(jìn)制包安裝)或者 /usr/local/share/snmp(從tarball壓縮包安裝)。
請注意當(dāng)你修改了 snmpd.conf 配置文件后,你需要重新啟動 snmpd 守護(hù)進(jìn)程(或者發(fā)送HUP信號)。
最簡單的配置如下:
- rocommunity public
這將會從任何主機上發(fā)送的 SNMP version 1/2 只讀請求,使用的社區(qū)名稱為 public。
使用這個最小化的配置,你就能夠繪制CPU使用率,網(wǎng)絡(luò)接口,內(nèi)存/交換區(qū)使用,登錄的用戶和進(jìn)程數(shù)量等圖形了。
你可以限制接受從哪些主機發(fā)送過來的請求:
- rocommunity public 127.0.0.1rocommunity test 87.65.43.21
默認(rèn)情況下 Net-SNMP 在所有IP V4接口上使用UDP方式在161端口進(jìn)行偵聽。
在如下的示例中 Net-SNMP 將會在10.20.30.40主機的10000端口上建立偵聽。
agentaddress 10.20.30.40:10000
你同樣可以配置其使用TCP方式偵聽(Cacti也支持這種方式):
- agentaddress tcp:161
"tcp"關(guān)鍵詞可以在稍后配置Cacti的時候使用:

對于哪些對安全性要求較高的用戶,可以配置使用SNMP協(xié)議第3版,支持MD5和SHA哈希算法。
- createUser frederic MD5 mypassphrase DESgroup groupv3 usm fredericview all included .iso 80access groupv3 "" any auth exact all all all
上述配置將會創(chuàng)建一個名為"frederic",密碼為"mypassphrase"的用戶。測試一下:
- # snmpget -v 3 -l AuthNoPriv -u frederic -A mypassphrase 10.50.80.45 sysName.0SNMPv2-MIB::sysName.0 = STRING: cyclopes
在 Cacti 中配置的話,添加你的設(shè)備之后,選擇 SNMP V3 版本的協(xié)議,并設(shè)置用戶名和密碼:
到這里訪問控制方面的設(shè)置就完成了,在 snmp.conf 中增加如下兩行,以標(biāo)識設(shè)備的名稱和聯(lián)系人。
syslocation Bat. C2syscontact someone@somewhere.org
他們將會出現(xiàn)在 Cacti 的設(shè)備管理界面中。
有一些OID會返回類似 "-153.1 dBm" 的單元,一個較為安全的做法是關(guān)閉它,可以在 snmpd.conf 中增加如下內(nèi)容實現(xiàn):
dontPrintUnits true
下一步是在 Cacti 中繪制整個文件系統(tǒng),最簡單的方法是在 snmpd.conf 中增加如下內(nèi)容:
- includeAllDisks
當(dāng)你執(zhí)行"ucd/net - Get Monitored Partitions"數(shù)據(jù)查詢時,所有掛載的文件系統(tǒng)就都能夠出現(xiàn):
如果你希望某個文件系統(tǒng)不在這里被列出,那么,在 snmpd.conf 中增加如下內(nèi)容:
- ignoredisk /dev/rdsk/c0t2d0
不幸的是,有些老版本的 Net-SNMP 不能完全支持 includeAllDisks 關(guān)鍵字,這種情況下,就只有顯式的列出所有你希望繪制的文件系統(tǒng):
- disk /disk /usrdisk /vardisk /oracle
你甚至還可以指定一個NFS掛載點。
需要注意的是,Net-SNMP 代理僅能夠報告那些在它啟動之前就已經(jīng)掛載的文件系統(tǒng)。如果你之后手工掛載了文件系統(tǒng),那么你需要重新載入 Net-SNMP 代理(發(fā)送HUP信號)。在 snmpd.conf 中添加如下內(nèi)容,你也可以繪制進(jìn)程信息:
- proc httpd
結(jié)果可以通過 ucdavis.prTabel.prEntry 樹獲得:
prCount, 以當(dāng)前查詢名稱運行的進(jìn)程的數(shù)量
prNames,統(tǒng)計的進(jìn)程的名稱
例如,Apache進(jìn)程的數(shù)量可以通過OID下的 .1.3.6.1.4.1.2021.2.1.5 MIB模塊來獲取。其他一些有用的模塊還有:
mibII/mta_sendmail, 繪制 MTA(Sendmail, Postfix, 等等)的統(tǒng)計信息
diskio, 允許繪制I/O統(tǒng)計信息
ucd-snmp/ImSensors, 硬件監(jiān)控信息(僅Linux和Solaris支持)
添加 Mib 模塊的方法如下:
- $ ./configure --with-mib-modules="module1 module2"
如果要編譯 Net-SNMP 并想制作一個壓縮包的形式,可以參照如下步驟:
- $ ./configure --with-your-options$ make# mkdir /usr/local/dist# make install prefix=/usr/local/dist/usr/local exec_prefix=/usr/local/dist/usr/local# cd /usr/local/dist# tar cvf /tmp/net-snmp-5.3.1-dist.tar usr# gzip /tmp/net-snmp-5.3.1-dist.tar# rm -rf /usr/local/dist
現(xiàn)在你可以拷貝 /tmp/net-snmp-5.3.1.-dist.tar.gz 到其他的服務(wù)器,并且在根目錄下解壓縮(所有的文件都會被釋放到 /usr/local )。
【編輯推薦】