編譯安裝net-snmp 5.4.4
一、安裝環境
本例安裝環境爲 SUSE Linux Enterprise Server 11 SP3 (x86_64),內核版本3.0.101-0.47.99-default。
# 系統發行版本
# cat /etc/issue
Welcome to SUSE Linux Enterprise Server 11 SP3 (x86_64) - Kernel \r (\l).
#系統內核版本
# uname -r
3.0.101-0.47.99-default
二、下載安裝包及編譯安裝及配置snmp
2.1、下載安裝
本例安裝版本爲net-snmp-5.4.4。
下載地址:https://sourceforge.net/projects/net-snmp/files/net-snmp/5.4.4/net-snmp-5.4.4.tar.gz
將下載的tar包上傳到服務,進入上傳的文件夾,本例爲/opt/snmpsetup目錄。執行下面的命令安裝:
# cd /opt/snmpsetup/ --進入文件安裝包所在目錄;
# tar zvxf net-snmp-5.4.4.tar.gz --解壓安裝包;
# cd net-snmp-5.4.4/ --進入解壓得到的安裝包;
# ./configure --prefix=/usr/local/net-snmp --執行編譯配置;
# 編譯配置配置過程中會有如下提示配置相關參數,有如下幾項,直接在提示下回車即可:
Default version of SNMP to use (3):
System Contact Information (root@):
System Location (Unknown):
Location to write persistent information (/var/net-snmp):
# make && make install --編譯源文件及安裝;
# 編譯及安裝完成後檢查安裝的版本是否正確,如NET-SNMP version爲5.4.4版本則爲安裝版本:
# /usr/local/net-snmp/sbin/snmpd -v
NET-SNMP version: 5.4.4
Web: http://www.net-snmp.org/
Email: [email protected]
2.2、配置snmp服務配置文件
在上述/opt/snmpsetup/net-snmp-5.4.4解壓的編譯目錄中python/netsnmp/tests下有給出的snmpd.conf配置文件,在系統的/etc目錄下新建snmp目錄,並將python/netsnmp/tests目錄下的snmpd.conf拷貝到/etc/snmp目錄下,操作如下:
# cd python/netsnmp/tests --進入配置文件源文件目錄
# ll --查看文件是否存在如下snmpd.conf即是
total 28
-rw------- 1 1232 123 0 Sep 22 2006 __init__.py
-rw------- 1 1232 123 16100 Sep 22 2006 snmpd.conf
-rw------- 1 1232 123 11905 Oct 17 2006 test.py
# cp snmpd.conf /etc/snmp --將配置文件拷貝到/etc/snmp目錄
# ls /etc/snmp/ --查看拷貝的文件已存在
snmpd.conf
# vim /etc/snmp/snmpd.conf --打開配置文件修改
在打開的配置文件中找到這如下段落,約61行處,sec.name列爲snmp共同體訪問的用戶名配置;source列爲允許訪問的ip
或地址段如配置爲地址段則地址段後跟子網掩碼,如x一行如只允許一個ip訪問則填寫IP即可;community列則爲共同體名稱被調
用使用可以自定義,本例默認public。
# sec.name source community
com2sec local localhost public
com2sec mynetwork x.x.x.x/8 public
完成如上修改後,保存文件退出。
三、啓動snmp及啓動基本配置
在完成snmp的配置文件修改後就可以臨時啓動snmpd服務測試是否可用了,由於爲編譯安裝,啓動snmpd需要在安裝的目錄中找到命令啓動,在編譯時本例指定的安裝目錄爲/usr/local/net-snmp,所以使用/usr/local/net-snmp目錄下sbin/目錄中snmpd命令指定配置文件啓動即可。
3.1、啓動snmpd服務
啓動snmpd服務需要用snmpd命令並指定配置文件啓動,本例相關命令和配置文件爲:
啓動命令:/usr/local/net-snmp/sbin/snmpd
配置文件:/etc/snmp/snmpd.conf
# /usr/local/net-snmp/sbin/snmpd -c /etc/snmp/snmpd.conf --啓動snmpd
# netstat -an | grep 161 --snmpd端口爲udp的161啓動後檢查端口是否存在
udp 0 0 0.0.0.0:161 0.0.0.0:*
# snmpwalk -v 1 localhost -c public sysName --測試獲取主機名稱正常則返回STRING後面的名稱
SNMPv2-MIB::sysName.0 = STRING: RongshuServer
至此snmpd的編譯、配置、啓動已經完成,即已爲可用狀態。
3.2、配置snmpd服務啓動腳本
由於編譯安裝並不是其他運維人員在不熟悉的情況下找不到啓動路徑,所以編寫snmpd啓動腳本,方便以後維護使用,操作如下:
1、在/etc/init.d/目錄下創建snmpd文件:
# vim /etc/init.d/snmpd
2、將如下代碼複製到文件中:
#!/bin/bash
#description:snmpd
#This scripts is to Manager snmpd service.
#by authors xxxx
#Time:2020-12-2
#chkconfig: 2345 80 90
proc_count=`ps -ef | grep net-snmp | grep -v grep | wc -l`
snmp_pid=`ps -ef | grep net-snmp|grep -v grep | awk '{print $2}'`
#echo $proc_count
#echo $snmp_pid
case $1 in
start )
if [[ $proc_count == 1 ]];
then
echo "Snmpd service is runing......"
elif [[ $proc_count == 0 ]];
then
/usr/local/net-snmp/sbin/snmpd -c /etc/snmp/snmpd.conf
fi
exit
;;
stop )
kill -9 $snmp_pid
;;
status )
if [[ $proc_count == 1 ]];
then
echo "Snmpd service is runing......"
elif [[ $proc_count == 0 ]];
then
echo "Snmpd service is not runing......"
fi
;;
* )
echo "Usage:{$1 start|stop|status}"
;;
esac
3、在vim命令模式,:wq! 保存文件退出!
4、賦予文件執行權限:
chmod +x /etc/init.d/snmpd
5、snmpd啓動管理
# service snmpd stop
# service snmpd start
# service snmpd status
6、加入開機啓動
# chkconfig --add snmpd
# chkconfig snmpd on