Snmp學習總結(六)——linux下安裝和配置SNMP
1、安裝SNMP
1.一、下載Net-SNMP的源代碼
選擇一個SNMP版本,好比5.7.1,下載地址以下:http://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.1/,以下圖所示:linux
下載完成以後獲得以下圖所示的一個壓縮包服務器
1.二、把壓縮包傳輸到遠程的Linux服務器
把壓縮包使用FTP傳輸工具傳輸到遠程的Linux服務器網絡
上傳成功後在linux的root目錄下就能夠看到壓縮包了,以下圖所示:編輯器
也能夠在linux命令行窗口使用ls命令羅列出Root目錄全部的文件進行查看,以下圖所示:工具
1.三、對源代碼包進行解壓縮
使用命令"tar xzvf net-snmp-5.7.1.tar.gz"對下載的源代碼包進行解壓縮,以下圖所示:post
解壓成功後獲得一個net-snmp-5.7.1文件夾,以下圖所示:學習
1.四、經過configure來生成編譯規則
使用命令"cd net-snmp-5.7.1"進入net-snmp-5.7.1目錄,以下圖所示:測試
net-snmp-5.7.1目錄下的configure是可執行文件,若是想指定程序包的安裝路徑,那麼首先創建相應的文件夾來存放安裝信息,能夠寫成./configure –-prefix=/指定的路徑名。參數--prefix用來告訴系統安裝信息存放的路徑,若是沒有指定路徑,直接執行./configure,那麼程序包都會安裝在系統默認的目錄下,一般爲:/usr/local下url
執行命令"./configure --prefix=/usr/local/snmp --with-mib-modules='ucd-snmp/diskio ip-mib/ipv4InterfaceTable'",注意,以上的--with-mib-modules=ucd-snmp/diskio選項,可讓服務器支持磁盤I/O監控。以下圖所示:
回車出現下面問題,能夠直接回車而不用回答,系統會採用默認信息,其中日誌文件默認安裝在/var/log/snmpd.log.數據存貯目錄默認存放在/var/net-snmp下
一、default version of-snmp-version(3):
二、System Contact Information (@@no.where)(配置該設備的聯繫信息):
三、System Location (Unknown)(該系統設備的地理位置):
四、Location to write logfile (日誌文件位置):
五、Location to Write persistent(數據存儲目錄):
一、default version of-snmp-version:
二、Systemcontact information(配置該設備的聯繫人):
三、System location (該設備的位置):
四、Location to write logfile (日誌文件位置): /var/log/snmpd.log
五、Location to Write persistent(數據存儲目錄): /var/net-snmp
1.五、編譯和安裝
執行編譯並安裝"make && make install"命令,以下圖所示:
1.六、配置snmpd.conf
使用"ls"命令查看/usr/local/snmp目錄下是否存在etc目錄,若是不存在etc目錄,就建立一個,以下圖所示:
查看結果顯示不存在etc目錄,在/usr/local/snmp目錄下建立一個etc目錄,建立etc目錄命令"mkdir /usr/local/snmp/etc",以下圖所示:
找到SNMP源碼目錄(net-snmp-5.7.1)下EXAMPLE.conf文件,以下圖所示:
複製EXAMPLE.conf文件到到/usr/local/snmp/etc目錄,並重命名爲snmpd.conf:"cp EXAMPLE.conf /usr/local/snmp/etc/snmpd.conf"
使用vi編輯器打開snmpd.conf文件:"vi /usr/local/snmp/etc/snmpd.conf",編輯snmpd.conf文件中的內容
按下鍵盤上的字母【I】或者【Insert】鍵進入vi編輯器的編輯模式
要配置snmpd.conf中內容以下:
一、配置容許網絡訪問
找到【AGENT BEHAVIOUR】,以下圖所示:
修改以下:添加"agentAddress udp:161"配置項,以下圖所示:
二、選擇v2c SNMP協議的版本
找到【ACTIVE MONITORING】,以下圖所示:
修改以下:
三、設置訪問權限
找到【ACCESS CONTROL】以下圖所示:
找到【rocommunity public default -V systemonly】,把 -V systemonly去掉,這是設置訪問權限的,去掉後能訪問所有,以下圖所示:
四、保存snmpd.conf後退出
按下鍵盤左上角上的【Esc】鍵退出vi編輯器的編輯模式,而後輸入命令":wq"保存文件並退出,以下圖所示:
通過以上的4個步驟,針對SNMP的snmpd.conf文件的配置工做算是所有完成了。
1.七、啓動snmp服務
因爲咱們剛纔修改SNMP的snmpd.conf文件,因此在啓動snmp服務以前,先使用命令"ps aux | grep snmp | grep -v grep |awk '{print $2}'| xargs kill"關閉snmp的相關服務,以下圖所示:
使用"netstat -an |grep 161"查看snmp的服務是否啓動,以下圖所示:
啓動snmp服務:"/usr/local/snmp/sbin/snmpd -c /usr/local/snmp/etc/snmpd.conf",以下圖所示:
1.八、測試SNMP
獲取本機的系統名字,使用命令:"snmpget -v 2c -c public localhost sysName.0"或者"snmpget -v 2c -c public 本機的ip地址 sysName.0"或者"snmpget -v 2c -c public 本機的ip地址 .1.3.6.1.2.1.1.5.0"進行測試,
執行如下的幾個命令均可以獲取到本機的系統名字:
snmpget -v 2c -c public localhost sysName.0
snmpget -v 2c -c public 127.0.0.1 sysName.0
snmpget -v 2c -c public 192.168.1.229 sysName.0
snmpget -v 2c -c public localhost .1.3.6.1.2.1.1.5.0
snmpget -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.1.5.0
snmpget -v 2c -c public 192.168.1.229 .1.3.6.1.2.1.1.5.0
以下圖所示:
可以正常返回系統的名字就說明SNMP安裝配置成功了。也可使用命令"snmpget --version"查看當前的安裝版本號來驗證是否安裝成功,若是安裝成功,則顯示當前的安裝版本號,以下圖所示:
1.九、開啓UDP 161端口的訪問權限
完成snmpd的配置而且SNMP測試經過以後,要確保Linux的iptables防火牆對外開放了udp 161端口的訪問權限,可使用"iptables –L –n"查看當前iptables規則,以下圖所示:
能夠看到,目前iptables防火牆並無對外開放udp 161端口的訪問權限,也就是說,此時外面的計算機是沒法訪問Linux下的SNMP服務的,可使用"iptables -I INPUT -p udp --dport 161 -j ACCEPT"命令添加UDP 161端口到iptables防火牆中,而後執行"iptables save"命令保存防火牆的更改,以下圖所示:
咱們能夠在window系統下使用Snmputil.exe工具測試對Linux下的SNMP訪問,測試Linux的UDP 161端口是否對外開放,以下圖所示:
"snmputil get 192.168.1.229 public .1.3.6.1.2.1.1.5.0"命令返回192.168.1.229這臺Linux服務器的名字,能夠看到,Linux服務器的名稱已經正常返回輸出到命令行窗口了。
2、卸載SNMP
若是安裝後想卸載SNMP,能夠執行"make uninstall"命令,卸載步驟以下:
一、使用"netstat -an |grep 161"查看snmp服務是否啓動
二、若是已經啓動就使用命令"ps aux | grep snmp | grep -v grep |awk '{print $2}'| xargs kill"關閉snmp的相關服務
三、進入SNMP源碼目錄(net-snmp-5.7.1)
四、執行"make uninstall"命令卸載SNMP
五、刪除/usr/local下的snmp目錄以及snmp目錄裏面的全部文件,usr/local/snmp是SNMP的安裝路徑
以下圖所示:
開始卸載SNMP,以下圖所示:
snmp卸載完成,以下圖所示:
刪除/usr/local下的snmp目錄以及snmp目錄裏面的全部文件,以下圖所示: