400-035-6699
当前位置: 首页 » 技术支持 » 博文资讯 »

华为ensp结合Python实现交换机自动化巡检技巧

为了实现网络设备自动化巡检,我们需要遵循以下几个步骤:
首先,确保你的计算机上安装了Python环境,并且已经下载了paramiko模块。paramiko是一个Python实现的SSH2协议,支持认证及运行远程命令。
接下来,将你的虚拟云接入到需要进行巡检的网络中,并将虚拟云的虚拟网卡与你的主机连接。这一步是为了确保虚拟云能够与网络内的设备进行通信。
网络配置方面,你需要设置一个VLAN,例如VLAN 10,并确保网络中的每个设备都配置了VLAN 10的地址。这样做可以解决设备之间的连通性问题。具体来说,你需要确保192.168.200.1这个地址与巡检设备处于同一个网络段。
解决了连通问题之后,还需要配置每个设备的远程登录权限。这通常包括生成密钥对、设置登录口令、启用SSH服务端功能等步骤。以下是一个示例配置过程:
```bash user-interface vty 0 4 # 进入虚拟终端 authentication-mode aaa # 配置口令模式 protocol inbound ssh # 允许SSH协议 quit
aaa local-user huawei password cipher hw@123 # 创建本地用户并设置密码 local-user huawei privilege level 15 # 设置用户权限 local-user huawei service-type ssh # 设置用户服务类型 quit
ssh user huawei authentication-type password # 创建SSH用户并指定登录验证方式 ssh user huawei service-type Telnet # 设置SSH用户服务类型 stelnet server enable # 启用设备SSH服务 ```
在确保所有设备都配置完成后,可以使用xshell或其他SSH客户端测试远程登录是否成功。
现在,我们来编写一个Python脚本来实现自动化巡检。脚本的核心是使用paramiko模块建立SSH连接,并执行一系列巡检命令。以下是一个简单的脚本示例:
```python import paramiko import time
log_time = time.strftime("%Y-%m-%d%H:%M:%S", time.localtime()) user = input("username: ") password = input("password: ") with open("ip.txt", "r") as f: for line in f.readlines(): ip = line.strip() ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=ip, username=user, password=password) print(log_time + "成功连接交换机,开始巡检" + ip) command = ssh.invoke_shell() command.send("system\n") command.send("display ip routing-table\n") command.send("display device\n") command.send("display environment\n") command.send("display alarm urgent\n") command.send("display memory-usage\n") command.send("display version\n") command.send("display fan\n") with open("check.txt", "a") as output_file: time.sleep(2) output = command.recv(65535) result = output.decode("ascii") output_file.write(result) print(result) ssh.close() ```
在这个脚本中,`ip.txt`文件包含了所有需要巡检的设备的ip地址,而`check.txt`文件则用于记录巡检结果。脚本会逐一连接到这些IP地址,执行预设的巡检命令,并将结果记录到`check.txt`文件中。
通过这样的步骤,我们就可以实现一个简单的网络设备自动化巡检系统,提高网络管理的效率和可靠性。

华为ensp结合Python实现交换机自动化巡检技巧

一,实现这个功能的前提:

  • 拥有python环境
  • 下载paramiko模块

二,将虚拟云接入到要实现巡检的网络内,将虚拟云连接自己主机的虚拟网卡。

df99d48e-9143-11ed-bfe3-dac502259ad0.png dfb9a70a-9143-11ed-bfe3-dac502259ad0.png dfcea59c-9143-11ed-bfe3-dac502259ad0.png

根据上面的三张图:

192.168.200.1 这个地址需要跟巡检的设备连通

那么在网络内设置vlan 10,并在每个设备内都设置一个vlan10的地址

解决了连通问题后,

我们还要配置设备的远程登录(每个设备都要):

dsa local-key-pair create//先根据加密算法生成秘钥对,用于传输数据时加密保护,保存在交换机中但不保存在配置文件

2048//#设置密钥位数

客户端登陆SSH server服务端后自动获得分配钥匙

user-interfacevty04//进入虚拟终端
authentication-modeaaa//配置口令模式
protocolinboundssh
quit
aaa
local-userhuaweipasswordcipherhw@123
local-userhuaweiprivilegelevel15
local-userhuaweiservice-typessh//当通过password、password-dsa、passowrd-rsa认证时,需要在AAA视图下创建同名本地用户,并设置其服务类型和级别
quit
sshuserhuaweiauthentication-typepassword//创建SSH用户并指定其登陆验证方式
sshuserhuaweiservice-typestelnet//设置SSH用户服务类型
stelnetserverenable//打开设备SSH(stelnet)服务端功能

之后最好用xshell或其他尝试下远程登录是否成功。

三,写python脚本

importparamiko
importtime

log\_time=time.strftime("\%Y-\%m-\%d\%H:\%M:\%S",time.localtime())
user=input("username:")
password=input("password:")
f=open("ip.txt","r")
forlineinf.readlines():
ip=line.strip()
ssh=paramiko.SSHClient()
ssh.set\_missing\_host\_key\_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=ip,username=user,password=password)//ssh远程登录
print(log\_time+"成功连接交换机,开始巡检"+ip)
command=ssh.invoke\_shell()//用于创建一个子shell进程
command.send("system\n")
command.send("displayiprouting-table\n")
command.send("displaydevice\n")
command.send("displayenvironment\n")
command.send("displayalarmurgen\n")
command.send("displaymemory-usage\n")

command.send("displayversion\n")
command.send("displayfan\n")
f=open("check.txt","a")//这a代表写入,不能用w,w是直接叠加会将之前写入的数据清理。
time.sleep(2)
output=command.recv(65535)//返回结果字符为65535
result=output.decode("ascii")
f.write(result)
print(result)
f.close()
ssh.close()

这里的ip.txt

中每一行写入要巡检设备的ip地址

check.txt是一个空白文件,给程序写入结果数据。

审核编辑 :李倩


【限时免费】一键获取网络规划系统模板+传输架构设计+连通性评估方案

相关文章

服务电话:
400-035-6699
企服商城