DeepSeek AI助力网络设备巡检:自动生成巡检报告的技术实现
创作时间:
作者:
@小白创作中心
DeepSeek AI助力网络设备巡检:自动生成巡检报告的技术实现
引用
CSDN
1.
https://m.blog.csdn.net/spoto2021/article/details/145852086
随着人工智能技术的不断发展,AI在各行各业的应用越来越广泛。在网络安全领域,DeepSeek AI为网络工程师提供了一种全新的巡检方式,能够自动生成巡检报告,大大提高了工作效率。本文将详细介绍如何使用DeepSeek AI自动生成网络设备巡检报告,包括测试环境搭建、SSH配置、巡检脚本编写等技术细节。
测试环境搭建
本次测试环境基于ENSP(Enterprise Network Simulation Platform)构建,测试设备为CE12800。具体拓扑结构如下:
- CE1的G1/0/0接口配置IP地址为10.255.255.11。
- CE2的G1/0/0接口配置IP地址为10.255.255.12。
SSH功能配置
为确保CE1和CE2能够通过SSH进行远程管理,需在设备上执行以下配置脚本:
aaa
undo local-user policy security-enhance
local-user spoto password irreversible-cipher Huawei@123
local-user spoto service-type ssh
local-user spoto level 3
#
stelnet server enable
sftp server enable
ssh user spoto
ssh user spoto authentication-type password
ssh user spoto service-type stelnet sftp
ssh user spoto sftp-directory cfcard:
ssh server-source -i GE1/0/0
#
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
准备巡检IP文件
创建一个名为 ip.txt 的文件,用于存放待巡检设备的IP地址。该文件需与Python巡检脚本位于同一目录下。文件内容格式如下:
10.255.255.11
10.255.255.12
巡检脚本
使用提供的Python脚本进行设备巡检。脚本通过SSH连接到设备,执行预定义的巡检命令,并将结果生成分析报告。具体脚本如下:
import paramiko
import os
import time
from datetime import datetime
from openai import OpenAI # 使用 OpenAI 的客户端库
# ******************** 配置区域 ********************
SSH_PORT = 22 # SSH端口号
SSH_USER = "spoto" # 固定SSH用户名
SSH_PASS = "Huawei@123" # 固定SSH密码
DEEPSEEK_API_KEY = "************" # 替换为你的 DeepSeek API 密钥
DEEPSEEK_API_URL = "https://api.deepseek.com" # DeepSeek API 地址
COMMAND_DELAY = 2 # 命令间隔时间(秒)
TIMEOUT = 20 # SSH连接超时时间(秒)
# *************************************************
# 巡检命令列表(可根据需要修改)
INSPECTION_COMMANDS = [
'display logbuffer' # 查看日志缓冲区
]
def get_timestamp():
"""获取标准时间格式"""
return datetime.now().strftime("%Y-%m-%d %H:%M:%S")
def collect_device_info(ip):
"""
通过SSH收集设备信息
:param ip: 设备IP地址
:return: 采集结果字符串
"""
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 建立SSH连接
print(f"[{get_timestamp()}] 正在连接 {ip}...")
client.connect(ip, SSH_PORT, SSH_USER, SSH_PASS, timeout=TIMEOUT)
output = f"\n=== {ip} 巡检结果 ===\n"
# 执行巡检命令
for idx, cmd in enumerate(INSPECTION_COMMANDS):
try:
print(f"[{get_timestamp()}] 执行命令: {cmd}")
stdin, stdout, stderr = client.exec_command(cmd)
result = stdout.read().decode('utf-8', errors='ignore').strip()
output += f"[{cmd}]\n{result}\n\n"
# 非最后一个命令添加延时
if idx < len(INSPECTION_COMMANDS) - 1:
print(f"[{get_timestamp()}] 等待 {COMMAND_DELAY} 秒...")
time.sleep(COMMAND_DELAY)
except Exception as cmd_error:
output += f"命令执行失败: {str(cmd_error)}\n"
return output
except Exception as conn_error:
return f"\n=== {ip} 连接失败 ===\n错误信息: {str(conn_error)}\n"
finally:
client.close()
def generate_ai_report(content):
"""
使用 DeepSeek API 生成分析报告
:param content: 待分析内容
:return: 分析结果字符串
"""
client = OpenAI(api_key='sk-90786556fa8046b28042bf5b2c0276d7', base_url='https://api.deepseek.com')
try:
print(f"[{get_timestamp()}] 正在生成分析报告...")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个专业的网络设备分析专家,能够根据设备巡检日志生成分析报告"},
{"role": "user", "content": f"请根据以下设备巡检日志生成分析报告:\n{content}"}
],
stream=False
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"DeepSeek API 调用异常:{str(e)}"
def main():
# 生成带时间戳的报告文件名
report_file = f"Analysis_Report_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt"
try:
# 读取IP列表
with open('ip.txt', 'r') as f:
ips = [line.strip() for line in f if line.strip()]
if not ips:
print(f"[{get_timestamp()}] 错误:ip.txt中没有找到有效IP地址")
return
# 采集设备信息
full_report = ""
for ip in ips:
print(f"\n[{get_timestamp()}] 开始巡检 {ip}")
full_report += collect_device_info(ip)
# 写入临时文件
with open('temp.txt', 'w') as f:
f.write(full_report)
# 生成分析报告
with open('temp.txt', 'r') as f:
ai_report = generate_ai_report(f.read())
# 保存最终报告
with open(report_file, 'w') as f:
f.write(f"=== 设备巡检分析报告 ===\n")
f.write(f"生成时间: {get_timestamp()}\n")
f.write(f"巡检设备: {len(ips)}台\n\n")
f.write(ai_report)
print(f"\n[{get_timestamp()}] 报告生成成功: {report_file}")
except FileNotFoundError:
print(f"[{get_timestamp()}] 错误:未找到ip.txt文件")
except Exception as e:
print(f"[{get_timestamp()}] 发生未预期错误: {str(e)}")
finally:
# 清理临时文件
time.sleep(10)
if os.path.exists('temp.txt'):
os.remove('temp.txt')
print(f"[{get_timestamp()}] 已清理临时文件")
if __name__ == "__main__":
main()
查看报告
运行脚本后,系统将自动生成一份带时间戳的分析报告文件,文件名为 Analysis_Report_YYYYMMDD_HHMMSS.txt。报告中包含设备的巡检结果以及由AI生成的分析内容。报告文件将保存在脚本所在目录下。
注意事项
- 确保设备的SSH功能已正确配置,并且IP地址与 ip.txt 文件中的内容一致。
- 在运行脚本前,请检查Python环境是否已安装必要的依赖库(如 paramiko 和 openai)。
- 如果报告生成过程中遇到问题,请检查网络连接或API密钥的有效性。
热门推荐
春节档热映电影如何反映当代价值观?
春日丽人行——一起邂逅潜江春日烂漫
潜江市旅游必去十大景点有哪些?潜江市旅游景点排行榜前十名
皋陶故里:六安市的文化探秘
六安旅游新宠:天堂寨&万佛湖
焦香软糯的“青椒土豆块”
柳宗元简介:一位文学巨匠的生平与成就
选择专业,你真的了解自己吗? 寻找与兴趣和能力匹配的未来方向
紫阳古街:千年古城的新晋网红打卡地
紫阳街古建筑探秘:鉴真大师的足迹
揭秘《僵尸先生》:从拍摄趣闻到神秘巧合
恭迎灶神:用古诗词写正月初四祝福语
初四吉祥话:家庭幸福四季如意
粳米是糯米吗?解读二者的区别与联系
桂林全景点拍照打卡全攻略:阳朔田园风光与桂林山水的完美结合旅游体验分享
来广西,这10大国家“地理标志产品”别错过,物美价廉,送礼有面
世界十大著名草本植物:从薄荷到旅人蕉的自然奇观
温州新春文旅盛宴:提前解锁新年玩法!
温州秋冬三日游:雁荡山、海岛、古街全攻略
千年古村的新生:徐岙底的乡村振兴之路
五指毛桃:现代医学中的“南芪”新宠
五指毛桃种植技术指南:从选地到采收的全程管理要点
岭南人的养生秘籍:五指毛桃
十首五绝情诗 写尽人生的相思与痴情
唐代大诗人中孟浩然最擅长五言诗,五言绝句清新幽远,冠绝古今
冬季养生:高血压患者的菠菜食谱
探秘温州江心屿:千年文化名屿为何不如鼓浪屿有名?
温州海岛风光深度游:从半屏山到仙叠岩
雁荡山免费游!温州三日游最美景点指南
千年古镇田市镇:美食荟萃,文化传承