什麼是SNMP?在Linux上安裝和配置SNMP

簡單網絡管理協議(SNMP)是一種Internet標準協議,可用於遠程獲取路由器和防火牆的操作統計信息。通常支持SNMP的設備包括路由器,交換機,服務器,工作站等。

諸如MRTG和cacti之類的監視工具使用SNMP從路由器獲取信息並繪製圖形。本教程描述了在Linux(CentOS 7,Ubuntu 16.04,Ubuntu 18.04)上SNMP的安裝和簡單配置。

基本概念

SNMP是在網絡堆棧的應用層實現的協議。管理和監視網絡元素的一種廣泛接受的協議。創建該協議是為了以一致的方式從非常不同的系統收集信息。

通常,由SNMP配置的網絡主要由包含SNMP代理的設備組成。代理是一個程序,可以收集有關硬件的信息,將其組織到預定義的條目中,並使用SNMP協議響應查詢。 SNMP需要幾個基本組件才能起作用。

  • 受管設備: 一台配置為輪詢SNMP代理以獲取信息的計算機。可以使用可以使用正確的憑據將查詢請求發送到SNMP代理的任何計算機。 SNMP管理器的主要功能:查詢代理,從代理獲取響應,設置代理變量,檢查來自代理的異步事件
  • 代理商: 這些是在受管設備上運行的軟件。您負責收集有關本地系統的信息,並將其以可查詢的格式存儲。數據庫更新稱為 “管理信息庫”(MIB)
  • 網絡管理站(NMS): 運行監視和控制受管設備的應用程序。

MIB 遵循標準的數據庫,經理和代理遵循。每個SNMP代理都有一個描述被管理設備參數的信息數據庫。 SNMP管理器使用此數據庫從代理請求特定信息,並進一步轉換網絡管理系統(NMS)所需的信息。該數據庫通常在代理和管理器之間共享,是一個MIB。

SNMP版本

當前,有SNMP的三個版本。

  • SNMP版本1答:這可以在不消耗大量系統資源的情況下提供設備統計信息和錯誤報告。安全僅限於社區字符串和基於查詢服務器的IP地址的訪問控制。數據通信未加密。
  • SNMP版本2答:這稱為v2c,它可以增加支持的錯誤代碼的數量,增加用於跟蹤數據的計數器的大小,並執行將數據更有效地加載到響應數據包中的批量查詢。
  • SNMP版本3答:此版本比以前的版本提供更好的安全性和遠程配置功能。由於引入了用戶名和密碼,因此訪問權限不僅限於只讀和讀/寫訪問權限的單個社區字符串。還提供了對加密的SNMP數據傳輸和傳輸錯誤檢測的支持。

目錄

  • 1)在Linux上安裝snmp
  • 2)SNMP配置
  • 3)SNMP服務測試
  • 結論

1)在Linux上安裝snmp

在ubuntu和centos上引入snmp安裝

  • 的Ubuntu
# apt-get install -y snmpd snmp
  • 美分
# yum install -y net-snmp net-snmp-utils

2)SNMP配置

SNMP服務的配置文件位於: /etc/snmp/snmpd.conf。修改文件之前,請使用命令製作文件副本

# cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak

以下是可用於配置SNMP的基本配置參數。

  • 設置 社區字符串 對於SNMP:類似於允許訪問設備統計信息的用戶ID或密碼。客戶端計算機使用此字符串來檢索數據(生成監視圖)。這是必需的配置參數。您可以確定它出現的位置 共同體 。默認值 該值是“ public”並且是不安全的,因為默認情況下每個人都知道它。
  • 聽音地址: 您可以將SNMP代理配置為僅偵聽特定IP地址,如下所示: agentAddress udp:ip_address:161。 SNMP偵聽的默認端口是 161。代理的默認行為是在所有接口上偵聽標準UDP端口。
  • 系統信息: 監控個人信息,進程/磁盤,
    • syslocation:這是 [typically physical] 系統位置。
    • syscontact:這是管理員聯繫信息。

更改的信息如下。請注意,該文件還有其他默認值,因此不會在此處顯示

  • 的Ubuntu
#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161

#  ACCESS CONTROL
#
view   all  included   .1.3.6.1.2.1.1
view   all  included   .1.3.6.1.2.1.25.1

#rocommunity public  localhost
                                  #  Default access to basic system info
 rocommunity my_password  default    -V all
                                  #  rocommunity6 is for IPv6
 rocommunity6 my_password  default   -V all

sysLocation    linoxide
sysContact     Me 

#  ACTIVE MONITORING
#
                                  #   send SNMPv1  traps
 trapsink     localhost public
                                  #   send SNMPv2c traps
 trap2sink    localhost public
  • çentos
#       sec.name  source          community
com2sec notConfigUser  default       my_comm

# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1.3.6.1.2.1
view    systemview    included   .1.3.6.1.2.1.25.1

##        incl/excl subtree mask
view all    included   .1    80

# variables through the snmpd.conf file:
syslocation centos linoxide
syscontact admin 

要更改配置,您需要重新啟動SNMP服務(/etc/snmp/snmpd.conf)舉行。可以按照以下步驟進行:

# service snmpd restart

用systemd做

# systemctl restart snmpd.service

3)SNMP服務測試

您可以使用snmpwalk命令測試SNMP是否可以讀取系統和接口MIB。

  • 的Ubuntu
# snmpwalk -c my_password -v2c -O e 127.0.0.1
iso.3.6.1.2.1.1.1.0 = STRING: "Linux ubuntu-01 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (1544) 0:00:15.44
iso.3.6.1.2.1.1.4.0 = STRING: "me "
iso.3.6.1.2.1.1.5.0 = STRING: "ubuntu-01"
iso.3.6.1.2.1.1.6.0 = STRING: "linoxide"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.15.2.1.1
iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The MIB for Message Processing and Dispatching."
iso.3.6.1.2.1.1.9.1.3.3 = STRING: "The SNMP Management Architecture MIB."
iso.3.6.1.2.1.25.1.1.0 = Timeticks: (9971483) 1 day, 3:41:54.83
iso.3.6.1.2.1.25.1.2.0 = Hex-STRING: 07 E1 04 08 01 30 16 00 2B 00 00 
iso.3.6.1.2.1.25.1.3.0 = INTEGER: 393216
iso.3.6.1.2.1.25.1.4.0 = STRING: "BOOT_IMAGE=/boot/vmlinuz-4.4.0-66-generic root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyS0
"
iso.3.6.1.2.1.25.1.5.0 = Gauge32: 1
iso.3.6.1.2.1.25.1.6.0 = Gauge32: 121
iso.3.6.1.2.1.25.1.7.0 = INTEGER: 0
  • Centos
# snmpwalk -c my_comm -v1 -O e 127.0.0.1
SNMPv2-MIB::sysDescr.0 = STRING: Linux centos-01 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (304) 0:00:03.04
SNMPv2-MIB::sysContact.0 = STRING: admin  (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: centos-01
SNMPv2-MIB::sysLocation.0 = STRING: centos linoxide
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (8) 0:00:00.08
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB

一旦確認SNMP正常運行,就可以配置SNMP統計信息以收集MRTG等軟件來創建流量的在線圖。

結論

在本教程中,您將學習如何在Linux上安裝和配置snmp來監視網絡設備。希望您喜歡閱讀,並在下面的評論部分中留下您的建議。

另請閱讀:

  • 如何在Ubuntu 16.04上安裝和設置Cacti
  • 如何在Ubuntu 18.04上安裝和配置MRTG
Sidebar