linux下搭建snmp執行環境
1.因為我是全新的系統,所以安裝之前需要安裝gcc
2.ubuntu桌面系統需要安裝依賴
libperl-dev
3.下載,解壓tar -xzvf net-snmp
4.cd進入文件夾
5.進行下面的操作,--prefix表示選擇安裝的文件夾,lmsensorsMib表示使用lm-sensors模塊監控硬件的工作情況,diskio表示服務器支持監視磁盤的io情況。注意此時我設置的安裝位置為/usr/local/snmp,而默認的安裝地址為/usr/local
./configure --prefix=/usr/local/snmp --with-mib-modules="ucd-snmp/lmsensorsMib ucd-snmp/diskio ip-mib/ipv4InterfaceTable" --with-ldflags="-lsensors"
--with-default-snmp-version="2" 表示設置net-snmp使用哪個版本
--with-sys-contact="mason" 表示設備聯系信息
--with-sys-location="shenzhen" 表示設備地理位置
--with-logfile="/var/log/snmpd.log" 表示日志文件存放位置
--with-persistent-directory="/var/net-snmp"表示數據存放地址
這些可以選擇加或者不加,不加都是默認的
6.make
7.sudo make install //以root身份install
8./usr/local/snmp下是否存在etc目錄,不存在那么創建一個,然后將源代碼/snmp-5.9下的EXAMPLE.conf文件拷貝到此處並將其改名為snmpd.conf,然后用vim打開並編輯它
網上有很多介紹,這里不再贅述
https://www.cnblogs.com/xdp-gacl/p/4016524.html
9.使用netstat -an | grep 161查看監聽端口是否啟動
若沒有啟動,不會出現
udp 0 0 127.0.0.1:161 0.0.0.0:* //從snmpd默認配置文件啟動,表示監聽本地主機
udp 0 0 0.0.0.0:161 0.0.0.0:* //從更改之后的配置文件啟動,表示監聽所有的端口
若啟動,則會出現這行輸出
10.啟動snmpd服務
sudo /usr/local/snmp/sbin/snmpd -c /usr/local/snmp/etc/snmpd.conf //表示從更改的配置文件啟動
sudo service snmpd start //表示從snmpd的默認配置文件啟動服務
通過第九點的命令查看是否啟動了snmp服務
11.之后若出現錯誤,可能需要安裝snmp,snmpd,snmp-mibs-downloader
此時可能會出現這種錯誤:Sub-id not found: (top) sysDescr
http://www.openskill.cn/article/149
12.測試snmp服務
snmpget --version
snmpget -v 2c -c public localhost sysName.0
snmpwalk -v 2c -c public localhost
可以正常返回就說明正常啟動了
13.關閉服務
sudo service snmpd stop
14.確保linux系統161端口的對外開放訪問權限
sudo iptables -L -n //查看防火牆對外開放了哪些端口
sudo iptables -I INPUT -p udp --dport 161 -j ACCEPT //將161端口加入到防火牆對外開放的端口名單中
sudo iptables-save //保存修改
windows下開啟snmp服務
打開計算機管理->服務,找到snmp服務。如果找不到,說明沒有開啟,下面進行snmp服務的安裝
如今的win10默認不安裝snmp服務,所以需要手動安裝
以管理員身份打開power shell
Get-WindowsCapability -Online -Name "SNMP*" //獲取snmp服務的全名,此時輸出的state會顯示notpresent
Add-WindowsCapability -Online -Name "SNMP.Client~~~~0.0.1.0" //安裝snmp服務
此時再次運行第一條指令,state會顯示installed,說明已經安裝成功
此時snmp服務默認開啟
