簡(jiǎn)單網(wǎng)絡(luò)管理語(yǔ)言(Simple Network Management Language)是一種類自然語(yǔ)言的腳本語(yǔ)言,它采用snmp两波、telnet瞳步、ping、dns腰奋、arp单起、ssh、tcp氛堕、udp馏臭、web等協(xié)議訪問網(wǎng)絡(luò)設(shè)備,內(nèi)置smtp協(xié)議用于告警等郵件的發(fā)送讼稚,支持excel括儒、mysql、sqlite等3種方式進(jìn)行網(wǎng)管數(shù)據(jù)的存取锐想。
手冊(cè)最新版:https://ladybirdsnml.github.io/snmlipv6utf8snmptelnetsshweb/snmldoc_utf8ipv6.html
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 第3章帮寻、snmp工具、snml語(yǔ)言執(zhí)行概述
??snmp( Simple Network Management Protocol )簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議是可以管理不同廠家網(wǎng)絡(luò)設(shè)備的簡(jiǎn)單通訊協(xié)議赠摇。
1固逗、網(wǎng)絡(luò)設(shè)備開啟snmp功能
Cisco設(shè)備配置snmp
舉例 :
Router>enable
Router# configure terminal
Router(config)# snmp-server community MyPassword RO
HUAWEI設(shè)備配置snmp
參考文檔:?https://support.huawei.com/enterprise/zh/doc/DOC1000088739?section=j005
H3C設(shè)備配置snmp
參考文檔:?http://www.h3c.com/cn/d_201108/723419_30005_0.htm
舉例 :
<Sysname>system-view
[Sysname] snmp-agent
[Sysname] snmp-agent sys-info version v1 v2c
[Sysname] snmp-agent community read MyPassword
2浅蚪、查看示例腳本[C:\snmlipv6\snmp\snmp_ipv4.txt]
C:\snmlipv6\snmp\snmp_ipv4.txt
001snmp.open version {2c} ip {192.168.186.132} port {161} password {cisco}
002snmp.get var {cisco7200} oid {1.3.6.1.2.1.1.5.0}
003screen.text at point {5} {20} string {snmp.get (oid:1.3.6.1.2.1.1.5.0) return value: [~cisco7200~]}
004snmp.getnext oid {1.3.6.1.2.1.1.3}
005screen.text at point {5} {40} string {snmp.getnext (oid:1.3.6.1.2.1.1.5.0) }
006screen.text at point {55} {60} string {return oid: [~snmp.oid~] return value: [~snmp.value~]}
007run.end
3、由解釋器 [C:\snmlipv6\snml.exe] 逐行解析執(zhí)行腳本
??批處理文件C:\snmlipv6\snmp_ipv4.bat烫罩,雙擊執(zhí)行惜傲,開始調(diào)用解釋器程序。
C:\snmlipv6\snml.exe nolog C:\snmlipv6\snmp\snmp_ipv4.txt
??批處理文件中執(zhí)行C:\snmlipv6\snml.exe贝攒,snml.exe是簡(jiǎn)單網(wǎng)絡(luò)管理語(yǔ)言的解釋器盗誊。后面兩個(gè)命令行參數(shù),第一個(gè)參數(shù)nolog參數(shù)的含義是不記錄日志隘弊,第二個(gè)參數(shù)C:\snmlipv6\snmp\snmp_ipv4.txt為網(wǎng)管腳本文件的文件名哈踱。
??點(diǎn)擊“Go”或“run”執(zhí)行腳本,腳本執(zhí)行結(jié)果如下:
4、示例腳本[C:\snmlipv6\snmp\snmp_ipv4.txt]語(yǔ)法解析
1)snmp.open version {2c} ip {192.168.186.132} port {161} password {MyPassword}
snmp.open語(yǔ)句用來(lái)打開snmp管理協(xié)議梨熙,有4個(gè)參數(shù)开镣,所有參數(shù)用左右大括弧{}括起來(lái)。
第一個(gè)參數(shù){2c}為snmp協(xié)議的版本號(hào)咽扇,支持1邪财、2、2c肌割;
第二個(gè)參數(shù){192.168.186.132}為網(wǎng)絡(luò)設(shè)備的IP地址卧蜓;
第三個(gè)參數(shù){161}為網(wǎng)絡(luò)設(shè)備snmp服務(wù)的端口號(hào),默認(rèn)值為UDP的161端口把敞;
第四個(gè)參數(shù){MyPassword}為網(wǎng)絡(luò)設(shè)備snmp服務(wù)的密碼
2)snmp.get var {cisco7200_SysName} oid {1.3.6.1.2.1.1.5.0}
snmp.get語(yǔ)句向snmp.open指定的網(wǎng)絡(luò)設(shè)備發(fā)送snmp.get請(qǐng)求報(bào)文,并接收應(yīng)答榨惠。
第二個(gè)參數(shù){1.3.6.1.2.1.1.5.0}為請(qǐng)求網(wǎng)絡(luò)設(shè)備參數(shù)的oid值奋早;
第一個(gè)參數(shù){cisco7200_SysName}為變量名字,該變量用來(lái)保存網(wǎng)絡(luò)設(shè)備返回值赠橙;
在本例子中網(wǎng)絡(luò)設(shè)備返回oid {1.3.6.1.2.1.1.5.0} 對(duì)應(yīng)的值“R2_7206.test.cisco”耽装,
變量區(qū)生成或更新變量:cisco7200_SysName=[R2_7206.test.cisco];
3)screen.text at point {20} {20} string {snmp.get 返回值: ~cisco7200_SysName~}
screen.text語(yǔ)句在解釋器的屏幕上顯示文本期揪。
第一掉奄、二個(gè)參數(shù){20}和 {20}為屏幕的坐標(biāo)點(diǎn)(20,20),在該位置開始顯示文本;
第三個(gè)參數(shù){snmp.get 返回值: ~cisco7200_SysName~}為要顯示的文本內(nèi)容凤薛,用兩個(gè)~線連接一個(gè)變量姓建,
在本語(yǔ)句中,顯示“snmp.get 返回值:”+ 變量cisco7200_SysName的值缤苫,變量cisco7200_SysName=[R2_7206.test.cisco]速兔,最后顯示內(nèi)容為:“snmp.get 返回值:R2_7206.test.cisco”
4)snmp.getnext oid {1.3.6.1.2.1.1.3}
snmp.getnext語(yǔ)句向snmp.open指定的網(wǎng)絡(luò)設(shè)備發(fā)送snmp.getnext請(qǐng)求報(bào)文,并接收應(yīng)答活玲。
第一個(gè)參數(shù){1.3.6.1.2.1.1.3}為請(qǐng)求網(wǎng)絡(luò)設(shè)備參數(shù)的oid值涣狗;
網(wǎng)絡(luò)設(shè)備接收到snmp.getnext指令后谍婉,返回與指定oid緊鄰的下一個(gè)oid值和及對(duì)應(yīng)參數(shù)值,在本例中網(wǎng)絡(luò)設(shè)備返回oid {1.3.6.1.2.1.1.3}的緊鄰的下一個(gè)oid值為”1.3.6.1.2.1.1.3.0”镀钓,參數(shù)值為” 0 Days 1 Hours 1 Minutes 34 Seconds”穗熬;
由于本語(yǔ)句執(zhí)行后產(chǎn)生的變量值有兩個(gè),語(yǔ)句用規(guī)定的兩個(gè)變量名來(lái)保存網(wǎng)絡(luò)設(shè)備返回的兩個(gè)值丁溅,變量名和值如下:
snmp.oid=[1.3.6.1.2.1.1.3.0]
snmp.value=[0 Days 1 Hours 1 Minutes 34 Seconds]
5)screen.text at point {20} {100} string {snmp.getnext 返回oid值:~snmp.oid~ 返回值:~snmp.value~}
screen.text語(yǔ)句在解釋器的屏幕上顯示文本死陆。
第一、二個(gè)參數(shù){20}和 {100}為屏幕的坐標(biāo)點(diǎn)(20,100),在該位置開始顯示文本唧瘾;
第三個(gè)參數(shù){snmp.getnext 返回oid值:~snmp.oid~ 返回值:~snmp.value~}為要顯示的文本內(nèi)容措译,用兩個(gè)~線連接一個(gè)變量,在本語(yǔ)句中饰序,顯示“snmp.getnext 返回oid值:”+ 變量snmp.oid的值+“返回值:”+變量snmp.value 的值领虹,最后顯示內(nèi)容為:“snmp.getnext 返回oid值:1.3.6.1.2.1.1.3.0返回值:0 Days 1 Hours 1 Minutes 34 Seconds”
6)run.end
run.end語(yǔ)句表示腳本執(zhí)行結(jié)束。
5求豫、查看示例腳本[C:\snmlipv6\snmp\snmp_ipv6.txt]
C:\snmlipv6\snmp\snmp_ipv6.txt
001screen.set color red {0} green {0} blue {0}
002screen.text at point {150} {30} string {10.snmp test (ipv6): snmp.open snmp.get snmp.getnext}
003run.set loglevel {debug}
004snmp.open version {2c} ip {fe80::2} port {161} password {cisco}
005snmp.get var {v_snmp} oid {1.3.6.1.2.1.1.1.0}
006screen.text at point {10} {60} string {Cisco3725 ipv6:[fe80::2], snmp.get(1.3.6.1.2.1.1.1.0)=[~v_snmp~]}
007
008var {v_y} value {140}
009screen.text at point {10} {~v_y~} string {No.}
010screen.text at point {50} {~v_y~} string {Test Method}
011screen.line from point {10} {155} to point {230} {155}
012screen.text at point {270} {~v_y~} string {snmp.oid}
013screen.line from point {250} {155} to point {350} {155}
014screen.text at point {390} {~v_y~} string {snmp.value}
015screen.line from point {370} {155} to point {630} {155}
016
017var {v_time} value datetime
018var {v_i} value {0}
019
020
021var {snmp.oid} value {1.3.6.1.2.1.1.1.0}
022loop.begin
023??
024??var {v_i} add number {1}
025??var {v_y} add number {18}
026??screen.text at point {10} {~v_y~} string {~v_i~}
027??
028??screen.text at point {50} {~v_y~} string {snmp.getnext(~snmp.oid~)}
029??snmp.getnext oid {~snmp.oid~}
030??screen.text at point {250} {~v_y~} string {~snmp.oid~}
031??screen.text at point {370} {~v_y~} string {~snmp.value~}
032??
033??var {v_y} add number {18}
034??snmp.get var {v_snmp} oid {~snmp.oid~}
035??screen.text at point {50} {~v_y~} string {snmp.get(~snmp.oid~)}
036??
037??screen.text at point {370} {~v_y~} string {~v_snmp~}
038??
039??if.var {v_y} > {400}
040????loop.exit
041??if.end
042loop.end
043run.end
腳本執(zhí)行結(jié)果如下:
目錄:?1塌衰、var?2、screen?3蝠嘉、snmp?4最疆、telnet?5、text?6蚤告、if?7努酸、loop?8、dns?9杜恰、ping?10获诈、arp?11、excel?12心褐、smtp?13舔涎、tcp?14、udp?15逗爹、ssh?16亡嫌、web?17、mysql?18掘而、sqlite?19挟冠、Run?20、sys?21镣屹、macro?附錄1圃郊、全部語(yǔ)句