这么6?DeepSeek自动生成巡检报告?这才是网工玩AI的正确姿势

下午好,我是思博张总。

新年过后,抽空给大家来一篇。

2025年,你要问最火的关键词,Deepseek绝对有一席之地。也有不少朋友在网上聊,网工的工作要如何和AI结合,如何运用。

今天蹭个迟来的热度,给你们来个案例,来一波测试环境搭建与巡检脚本使用说明,看看网工×Deepseek,有多好用。

对了,明晚我刚好在咱俱乐部有场直播,感兴趣的朋友可以先预约一波,一起聊聊,关于AI如何运用在网工工作中,感兴趣的话也可以到时候问我。

今日文章阅读福利:《 本期巡检报告python脚本》

里面ENSP怎么桥接就不说了,分享个今天这篇巡检的python脚本。

我已经把我这边的API去掉了,直接执行会失败,需要替换自己的API,发送暗号“脚本”,即可限时获取。

01 测试环境搭建

本次测试环境基于ENSP(Enterprise Network Simulation Platform)构建,测试设备为CE12800。

具体拓扑结构如下:

●CE1G1/0/0接口配置IP地址为10.255.255.11

●CE2G1/0/0接口配置IP地址为10.255.255.12

02 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

03 准备巡检IP文件

创建一个名为 ip.txt 的文件,用于存放待巡检设备的IP地址。

该文件需与Python巡检脚本位于同一目录下。

文件内容格式如下:

10.255.255.11


10.255.255.12

04 巡检脚本

使用提供的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()

脚本执行过程如下:

05 查看报告

运行脚本后,系统将自动生成一份带时间戳的分析报告文件,文件名为
Analysis_Report_YYYYMMDD_HHMMSS.txt。

报告中包含设备的巡检结果以及由AI生成的分析内容。报告文件将保存在脚本所在目录下。

报告如下:

06 注意事项

确保设备的SSH功能已正确配置,并且IP地址与 ip.txt 文件中的内容一致。

在运行脚本前,请检查Python环境是否已安装必要的依赖库(如 paramiko 和 openai)。

如果报告生成过程中遇到问题,请检查网络连接或API密钥的有效性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值