Centos7下的snmp搭建及實例


一、測試環境:

在VMware上安裝兩台Centos7系統,分別在其系統上安裝snmp服務,如下圖:

二、更新centos7的yum源和安裝snmp軟件包

1.更新yum源

yum clean all

yum makecache

yum repolist

2.yum源安裝snmp服務

yum -y install net-snmp net-snmp-utils

3.查看snmp版本號

snmp -v

4.查看net-snmp相關的軟件包(可看可不看)

注意:net-snmp.x86_64、net-snmp-utils.x86_64一個是net-snmp軟件包,另一個是snmp的工具包。

5.查看安裝的軟件包

rpm -qa |grep net-snmp*

三、修改snmpd.confi配置文件

vi /etc/snmp/snmpd.conf,這個是Centos7_1的配置

Centos7_2的配置

四、重啟服務

systemctl start snmpd.service   #啟動SNMP服務

systemctl enable snmpd.service  #開機啟動SNMP服務

五、添加防火牆端口

firewall-cmd --state   # 查看防火牆狀態

如果沒有啟動則輸入:systemctl start firewall

firewall-cmd --list-all

如果上圖所示的端口,則需要額外添加這一行:<port protocol="udp" port="161"/>,注意用空格隔開

vi /etc/firewall/zones/public.xml

systemctl restart firewalld.service  #重啟防火牆服務

firewall-cmd --list-all,可以查看到已經添加了的161端口

 

systemctl restart snmpd.service   #重啟snmp服務,注意的是當修改了配置文件snmpd.service時,需要重啟才能生效

六、net-snmp測試

在配置net-snmp時候,配置了三種情況:本地通過localhost訪問、本地通過IP訪問、遠程通過IP測試

1.本地通過localhost訪問,在各自的Centos7下測試

2.通過IP測試

3.通過遠程IP測試

在Centos7_1獲取Centos7_2(SNMP Agent)的設備的描述信息,snmpget -v 2c -c public 192.168.150.158 sysDescr.0,證明已經通過了測試

七、SNMP的部分原理

  SNMP協議主要由兩大部分構成:SNMP管理站和SNMP代理。SNMP管理站是一個中心節點,負責收集各個SNMP元素的信息,並對這些信息進行處理,最后反饋給網絡管理員;而SNMP代理是運行在各個被管理的網絡節點上,負責統計該節點的各項信息,並且負責與SNMP管理站交互,接收並執行管理站的命令,上傳各種本地的網絡信息。SNMP管理站和SNMP代理是通過UDP協議完成的。

  SNMP的工作方式是:管理員需要向設備獲取數據,所以SNMP提供了"讀"操作;管理員需要向設備執行設置操作,所以SNMP提供了“寫”操作。設備需要在重要狀況改變的時候,向管理員通報時間的發生,所以SNMP提供了“Trap”操作

  SNMP采用UDP協議在管理端和agent之間傳輸信息。 SNMP采用UDP 161端口接收和發送請求,162端口接收trap,執行SNMP的設備缺省都必須采用這些端口。SNMP消息全部通過UDP端口161接收,只有Trap信息采用UDP端口162。

SNMP的實現結構:

  管理站與代理端通過MIB進行接口統一,MIB定義了設備中的被管理對象。管理站和代理都實現了相應的MIB對象,使得雙方可以識別對方的數據,實現通信。管理站向代理申請MIB中定義的數據,代理識別后,將管理設備提供的相關狀態或參數等數據轉換為MIB定義的格式,應答給管理站,完成一次管理操作。

  管理信息(MIB)庫可以理解成為agent維護的管理對象數據庫,MIB中定義的大部分管理對象的狀態和統計信息都可以被NMS訪問。MIB是一個按照層次結構組織的樹狀結構,每個被管對象對應樹形結構的一個葉子節點,稱為一個object,擁有唯一的數字標識符。每一個節點都有一個對象標識符(OID)來唯一的標識,每個節點用數字和字符兩種方式顯示,其中對象標識符OID是由句點隔開的一組整數,也就是從根節點 通向它的路徑。一個帶標號節點可以擁有包含其它帶標號節點作為它的子樹,如果沒有子樹,它就是葉子節點,它包含一個值並被稱為對象。比如網絡設備名的oid 是.1.3.6.1.2.1.1.5.0,其值為設備名稱的字符串。

八、常用的SNMP工具

1.snmpget模擬snmp的GetRequest操作的工具,用來獲取一個或幾個管理信息,比如:snmpget -v 2c -c public localhost system.sysDescr.0 #獲取設備的描述信息。注,snmpget 不同於 snmpwalk ,必須在命令行給出 <object>.<instance> 的格式,不能只給出 object。

 

snmpget命令
snmpget [OPTIONS] AGENT OID [OID]...
選項:
-v 1|2c|3  指定SNMP版本
-c COMMUNITY  指定community string
-m MIB[:...]  指定MIB文件

2.snmpwalk/snmpbulkwalk,利用GetNextRequest/對給定的管理樹進行遍歷的工具。一般用來對表格類型管理信息進行遍歷。注,snmpbulkwalk命令: 獲取snmp服務器的mib-2各種資訊,snmpbulkwalk用於通過SNMPv2 的SNMP GET BULK請求命令與其它網絡實體通信,只能用於snmpv2,速度快於snmpwalk。比如:snmpbulkwalk -v 2c -c public 127.0.0.1 .1.3.6.1.2.1.1 #獲取mib-2的system的數據。

3.snmpwalk,獲取snmp服務器的HOST-RESOURCES的各種資訊。例如:snmpwalk -v 2c -c public localhost system #這條指令用於查看本機系統信息。

4.snmpnetstat命令,查看snmp服務器的端口連接信息, 協議為snmp 2c,例如:snmpnetstat -v 2c -c public -Can -Cp tcp 127.0.0.1  #獲取127.0.0.1的TCP協議的開放端口狀態

5.snmpset 模擬snmp的SetRequest操作的工具。用來設置可以寫的管理信息。一般用來配置設備或對設備執行操作。

九、本地測試

  驗證CPE本地SNMP代理功能是否正常,具體的結構測試圖如下:

在windos10上安裝snmptester作為一個有界面的NMS,在Centos7上安裝一個snmp服務器,CPE上啟動snmp代理,具體如下。

驗證windows10與CPE的snmp功能:

                CPE的配置

                snmptester的配置及效果

驗證centos7與CPE的SNMP功能:

 

                CPE配置

                    centos7的測試代碼及效果

十、卸載centos7的snmp協議

查看安裝了那幾個snmp包:rpm -qa|grep snmp 

依次刪除:rpm -e net-snmp-utils-5.7.2-33.el7_5.2.x86_64 --nodeps

十、參考連接

https://blog.csdn.net/lqy461929569/article/details/79881269

https://www.cnblogs.com/xdp-gacl/p/3978825.html

https://wenku.baidu.com/view/cf0efc335a8102d276a22f6d.html?sxts=1541989059623


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM