Python完善APC netbotz 250报告功能实现主动式运维。

2024-01-31 23:44

本文主要是介绍Python完善APC netbotz 250报告功能实现主动式运维。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       首先介绍一下APC netbotz 250, 这是施耐德推出的一款机架式监控主机,能够对所有IT环境进行经济有效而且灵活的监控,号称APC史上性价比最高的环境监测方案,这可不是我吹的,是APC官网的介绍,可参考下面的官网截图。

我们机房有幸也有一套这样的系统,笔者大致用了一下,确实功能还是强悍,支持各种类型的检测,我们这边的使用范围比较小,一般就是使用温湿度监控,有几个亮点还是不错:

  1. 支持Telnet/SSH登录操作
  2. 短信/邮件报警
  3. SNMP支持
  4. Syslog收集
  5. Web UI图形化操作界面

真是麻雀虽小,五脏俱全。

回到我们的应用上面来,我们机房使用的温度报警,当温度达到阈值后,Netbotz 250能够推送报警,然后IT进行紧急操作。

这是一种常规而且也是大多数管理员的操作方式,但是,这是一种被动的管理方式。

随着IT技术的发展,能不能实现报警前置?就是说通过历史数据曲线,发现他有潜在的触发报警的可能,在这个问题发生之前,把问题处理掉,这样可以从被动式管理向主动式管理的转变。

以我们的这个netbotz 250为例,我挑选了一个时间点的温度曲线:

从这个图上可以看到,温度从16:00开始已经开始逐步上升,在到达26°的阈值之前,我们完全可以检查一下机房设备,这样可以避免触发报警。

那天晚上,通过这个报告,紧急联系值班人员干预,温度立马下降,后分析原因,室外温度过低,低于零下4摄氏度,空调制冷故障,简单操作就可以避免一次报警的发生。这是一个真实的案例。

回到本文的核心上来,这个跟Python有什么关系?

要实现主动检查,就需要netbotz 250定时推送报告,这一点APC需要完善,没有这样的报表功能,当然,如果有zabbix, 通过SNMP就可以解决。没有报告,管理员无法发现潜在的问题,也就无法实现主动式运维。该Python上场了。在这里Python主要作用是登录netbotz 250获取温度,绘制温度曲线,发送报告,看来Python还是挺忙的,大致涉及流程如下图:

核心获取温度代码:

host='10.202.0.*'

port=23

username="apc"

password="********"

command="nbsensor -t"

def gettmp()

    try:

        tn=telnetlib.Telnet(host,port)

        tn.read_until(b'User Name :')

        tn.write((username + "\r\n").encode('ascii'))

        time.sleep(5)

        tn.read_until(b"Password  :")

        tn.write((password + "\r\n").encode('ascii'))

        time.sleep(5)

        tn.write((command + "\r\n").encode('ascii'))

        output=tn.set_debuglevel(1000)

        output=tn.read_very_eager().decode('utf-8')

        print("Execution result:\n", output)

        print("Finished")

        return output

    except Exception as e:

        print("Error occurred: ", str(e))

    finally:

        # 断开与目标主机的连接

        if 'tn' in locals():

            tn.close()

说明,因python操作telnet速度较快,数据还没有进入缓存,任务就执行完成,导致数据获取不全,所以用了time.sleep(5)进行等待,另外用tn.read_very_eager()取代tn.read_all().

剩下的操作就是绘制温度曲线,然后通过邮件的形式将内容发送出去,可参考下面的模板。

       自动化、数字化、主动式运维任重而道远,主动式运维不单单IT运维人员的工具,同样也可以在厂务,维修,制程等部门推广,运维的理念随着技术的发展而不断更新,唯有不断学习,才能避免被时代淘汰。

这篇关于Python完善APC netbotz 250报告功能实现主动式运维。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/665433

相关文章

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核