網(wǎng)絡(luò)管理

網(wǎng)絡(luò)管理通常包含4個(gè)要素:

  • 被管理節(jié)點(diǎn):需要進(jìn)行管理的設(shè)備。
  • 代理(Agent):跟蹤被管理設(shè)備狀態(tài)的軟件或硬件。
  • 網(wǎng)絡(luò)管理工作站(Manager):與在不同的被管理節(jié)點(diǎn)中的代理通信,并且顯示這些代理狀態(tài)的設(shè)備。
  • 網(wǎng)絡(luò)管理協(xié)議:網(wǎng)絡(luò)管理工作站和代理用來交換信息的協(xié)議。

1. SNMP(Simple Network Management Protocol)

  • 網(wǎng)絡(luò)管理站NMS(Network Management Station)
  • SNMP代理器(Agent)
  • SNMP協(xié)議
  • 管理信息庫MIB(Management Information Base)
    MIB是一個(gè)被管理對(duì)象的集合,是NMS同Agent進(jìn)行溝通的橋梁,可以使網(wǎng)管軟件和設(shè)備進(jìn)行標(biāo)準(zhǔn)對(duì)接。每一個(gè)Agent都維護(hù)這樣一個(gè)MIB庫,NMS可以對(duì)MIB庫中對(duì)象的值進(jìn)行讀取或設(shè)置。
image
  • NMS通過SNMP協(xié)議與設(shè)備的Agent通信,完成對(duì)MIB的讀取和修改操作,從而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)設(shè)備的監(jiān)控與管理。

  • SNMP是NMS與Agent之間通信的載體,通過其協(xié)議數(shù)據(jù)單元PDU(Protocol Data Unit)完成信息交換。SNMP并不負(fù)責(zé)數(shù)據(jù)的實(shí)際傳輸,數(shù)據(jù)交換的任務(wù)是通過UDP等傳輸層協(xié)議來完成的。

  • Agent是設(shè)備上的代理進(jìn)程,主要工作包括與NMS通信,對(duì)設(shè)備中的MIB庫進(jìn)行維護(hù),以管理和監(jiān)控設(shè)備中的各個(gè)模塊。

  • MIB保存設(shè)備中各個(gè)模塊的信息。通過對(duì)MIB信息的讀寫操作來完成對(duì)設(shè)備的監(jiān)控和維護(hù)。

snmp協(xié)議數(shù)據(jù)單元
image

2. MIB(Management Information Base)

MIB是一個(gè)被管理對(duì)象的集合,它定義被管理對(duì)象的一系列屬性,包括

  • 對(duì)象的名字
  • 對(duì)象的訪問權(quán)限
  • 對(duì)象的數(shù)據(jù)類型


    image

3. 安裝和配置

3.1 安裝

我們需要安裝下面三個(gè)軟件包:

  • snmpd:snmp客戶端軟件(agent)
  • snmp:snmp服務(wù)器端軟件
  • snmp-mibs-downloader:用來下載更新本地mib庫的軟件
sudo apt-get install snmpd snmp snmp-mibs-downloader

注意:

在安裝snmp-mibs-downloader的過程中,程序會(huì)幫我們自動(dòng)下載mib庫,并保存在/usr/share/mibs目錄中:

root@miao-VirtualBox:/usr/share/mibs$ ls
iana  ietf

如果發(fā)現(xiàn)沒有些目錄或文件的話,在安裝完snmp-mibs-downloader后也可以手動(dòng)執(zhí)行下面的命令來下載mib庫:

root@miao-VirtualBox:~$ sudo download-mibs

簡(jiǎn)單測(cè)試一下,是否正常

root@miao-VirtualBox:~# service snmpd status
● snmpd.service - LSB: SNMP agents
   Loaded: loaded (/etc/init.d/snmpd; bad; vendor preset: enabled)
   Active: active (running) since 五 2018-03-30 16:59:25 CST; 8min ago

root@miao-VirtualBox:~# snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Linux miao-VirtualBox 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar 7 16:03:28 UTC 2018 x86_64
3.2 被監(jiān)控端配置
3.2.1配置節(jié)點(diǎn)監(jiān)控項(xiàng)
# 配置節(jié)點(diǎn)

# 修改/etc/snmp/snmpd.conf文件,大概在45行,將下面的兩行注釋掉:

view  systemonly  included  .1.3.6.1.2.1.1
view  systemonly  included  .1.3.6.1.2.1.25.1

# 增加下面一行:
view  systemonly  included  .1

修改之后,重啟snmp服務(wù),再使用命令觀察一下:

sudo service snmpd restart
root@miao-VirtualBox:/etc/snmp# snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.4.3.0
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 5240828 kB
3.2.2配置共同體

其實(shí)所謂同體,把它理解為一個(gè)密碼就行了,前面我們?cè)谑褂胹nmpwalk命令獲取主機(jī)的信息時(shí),有一個(gè)-c public的參數(shù),其實(shí)就是指定了這個(gè)共同體為public,這是默認(rèn)的配置,當(dāng)然在實(shí)際中,我們不可能使用默認(rèn)的值,因此需要把它修改一下。

# 修改配置文件/etc/snmp/snmpd.conf,大概在52行,將下面的兩行:

rocommunity public  default    -V systemonly
rocommunity6 public  default  -V systemonly

# 修改為:

rocommunity miao  default    -V systemonly
rocommunity6 miao  default  -V systemonly

# 重啟服務(wù)后測(cè)試一下
root@miao-VirtualBox:/etc/snmp# snmpwalk -v 2c -c miao localhost .1.3.6.1.4.1.2021.4.3.0
iso.3.6.1.4.1.2021.4.3.0 = INTEGER: 5240828
root@miao-VirtualBox:/etc/snmp# snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.4.3.0
Timeout: No Response from localhost

3.2.3 遠(yuǎn)程主機(jī)訪問
# 默認(rèn)情況下,snmp服務(wù)只是對(duì)本地開啟,是無法通過遠(yuǎn)程獲取該主機(jī)的snmp信息的:

root@miao-VirtualBox:/etc/snmp$ sudo netstat -antup | grep 161 
udp        0      0 127.0.0.1:161          0.0.0.0:*                          11615/snmpd

# 可以看到,161端口只對(duì)本機(jī)開放(161端口號(hào)是snmp服務(wù)的端口號(hào)),我們需要修改一下,讓snmp服務(wù)對(duì)外開放。

# 修改/etc/snmp/snmpd.conf配置文件,大概在15行,將下面一行注釋掉:

agentAddress  udp:127.0.0.1:161

# 同時(shí)去掉下面這一行的注釋:

# agentAddress udp:161,udp6:[::1]:161

# 重新啟動(dòng)snmp服務(wù),再通過命令觀察:

root@miao-VirtualBox:/etc/snmp$ sudo netstat -antup | grep 161

udp        0      0 0.0.0.0:161            0.0.0.0:*                          11656/snmpd   

udp6      0      0 ::1:161                :::*                                11656/snmpd


# 遠(yuǎn)程測(cè)試一下
root@miao-VirtualBox:~# snmpwalk -v 2c -c miao 192.168.185.208 memTotalSwap.0
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 5240828 kB
root@miao-VirtualBox:~# snmpwalk -v 2c -c miao 192.168.185.208 1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Linux miao-VirtualBox 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar 7 16:03:28 UTC 2018 x86_64


3.3 配置MIB庫(服務(wù)端/監(jiān)控端配置即可)

雖然上面已經(jīng)可以正常獲取我們想要的信息,但是輸出結(jié)果很不直觀,這時(shí)我們配置一下MIB庫就可以了。

# 修改/etc/snmp/snmp.conf配置文件,將下面這一行注釋掉:
mibs :
# 然后重啟snmp服務(wù)

$ snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.4.3.0
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1950716 kB

$ snmpwalk -v 2c -c public localhost memTotalSwap.0
UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1950716 kB

4 利用python封裝監(jiān)控api

待續(xù)……

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容