1. 程式人生 > 實用技巧 >Centos7 下的snmp搭建

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採用UDP161埠接收和傳送請求,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 -v2c -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|grepsnmp

依次刪除: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