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

news2024/11/26 10:24:16

       首先介绍一下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运维人员的工具,同样也可以在厂务,维修,制程等部门推广,运维的理念随着技术的发展而不断更新,唯有不断学习,才能避免被时代淘汰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1426235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Visual Studio 2022编译错误 Error MSB8041-此项目需要MFC库解决方案

Visual Studio 2022编译错误 Error MSB8041-此项目需要MFC库 错误原因: Visual Studio 2022安装的MFC库不够。 解决方案: 安装Visual Studio 2022 需要的MFC 库就可以了。 安装方法: 第一步,打开vs2022 工具 ->获取工具和功…

数据可视化Tableau

目录 一.第一次实验课内容 1、熟悉Tableau Desktop的工作环境。 2、熟悉数据导入、维度和度量的区分以及不同数据字段类型的标识符。 3、熟悉工作表的基本操作,主要包括行列功能区,标记卡,筛选器,智能推荐的使用。 4、作业--…

两个链表的第一个重合节点

法一:蛮力法 即顺序遍历第一个链表的每个节点,每遍历到一个节点,就在第二个链表中顺序遍历每个节点,比较是否有节点相同。该方法的时间复杂度是O(mn),空间复杂度是O(1)。…

Java进击框架:Spring-综合(十)

Java进击框架:Spring-综合(十) 前言Rest ClientsWebClientRestTemplateHTTP接口 JMS (Java消息服务)使用Spring JMS发送消息接收消息注释驱动的侦听器端点 JMXEmail任务执行和调度Spring TaskExecutor 抽象Spring TaskScheduler 抽象支持调度…

cuda基础教程(一)

文章目录 0. CURA Runtime API1. CUDA人工智能编程1.1. CUDA介绍1.2. 课程内容 2. 异构计算和并行计算2.1. 什么是并行计算2.2. 什么是异构计算 3. CUDA介绍3.1. GPU的性能指标3.2. 什么是CUDA3.3. 如何学习CUDA 4. 系统GPU查询5. Linux系统6. CUDA安装7. 查询GPU信息8. CUDA编…

[C#][opencvsharp]winform实现自定义卷积核锐化和USM锐化

【锐化介绍】 图像锐化(image sharpening)是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,分为空间域处理和频域处理两类。图像锐化是为了突出图像上地物的边缘、轮廓,或某些线性目标要素的特征。这种滤波方法…

Python机器学习:一文讲透机器学习中的验证集法

验证集法又被称为“留出法”,基本思路是将样本数据集划分为两个互斥的集合:训练集和测试集。其中训练集占比一般为2/3~4/5,常用70%;测试集占比一般为1/5~1/3,常用30%。训练集用来构建机器学习模型;测试集也…

vit细粒度图像分类(八)SIM-Trans学习笔记

1.摘要 细粒度视觉分类(FGVC)旨在从相似的从属类别中识别物体,这对人类准确的自动识别需求具有挑战性和实用性。大多数FGVC方法侧重于判别区域挖掘的注意机制研究,而忽略了它们之间的相互依赖关系和组成的整体对象结构,而这些对模型的判别信…

11. UE5 RPG使用GameplayEffect修改角色属性(二)

上一篇写了一下GameplayEffect的基础操作,这一篇进阶一下,讲解一下GameplayEffect堆叠功能,以及能够基于这个堆叠能够实现一些怎样的效果。 经过几天的查看,发现新版的更新的真不错,而且最上面竟然直接显示编译的错误…

Django部署到服务器后无法获取到静态元素 The requested resource was not found on this server

问题描述 写了一个Django项目,部署到云主机后,访问发现图片无法访问,报错The requested resource was not found on this server 图片是一个词云图,根据爬虫爬取的信息生成的,根据爬取的信息会改变,所以没…

大数据信用报告应该去哪里查询比较好呢?

对于个人而言,大数据信用报告也变得越来越重要。那么,大数据信用报告应该去哪里查询呢?本文将为您详细介绍征信和大数据的区别,并推荐一个可靠的大数据平台。 首先,我们需要了解征信和大数据的区别 征信报告 依法采集、整理、保存…

Redis主从集群

一.资源分布 操作系统:Centos 7 Redis版本:6.2.14 IP端口角色192.168.157.1306379master192.168.157.1316379slave1192.168.157.1326379slave2 二.流程 1.创建三台虚拟机IP及端口如上且安装好Reids 2.修改三个redis.conf配置文件 其它说明&#xff1a…

Modbus协议学习第六篇之基于libmodbus库的示例程序(可以联合Modbus模拟仿真软件进行调试)

前置工作 学了这么多Modbus的知识,如果不进行实际的操作,总感觉懂的不透彻。基于此, 本篇博文就带各位读者来了解下如何通过编写程序来模拟与Modbus Slave仿真软件的通讯。当然了,这里有两个前提,如下: 1.请…

printf死翘翘

本来想把我的单片机玩一下,寄给在大学搞研究的一个朋友,但竟然挂在printf里面,大概知道是什么位置出问题,但是还想不清楚什么原因。 我先是在stc51单片机里面搞了串口,然后我想用串口重定向到printf做调试,…

element-ui icon 组件源码分享

今日简单分享 element-ui 源码中的 icon 组件,主要从以下两个方面来分享: 一、源码中 icon 设计思想是什么呢?主要从页面结构、数据、 icon 样式三个方面来分享。 1.1 源码中 icon 组件的页面结构,可以在 package 目录下找到 ico…

Android 高德地图切换图层

一、默认样式 Android 地图 SDK 提供了几种预置的地图图层&#xff0c;包括卫星图、白昼地图&#xff08;即最常见的黄白色地图&#xff09;、夜景地图、导航地图、路况图层。 findViewById<TextView>(R.id.normal).setOnClickListener {updateSelectedStatus(TYPE_NORMA…

LeetCode 每日一题Day 54 - 61

2859. 计算 K 置位下标对应元素的和 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 请你用整数形式返回 nums 中的特定元素之 和 &#xff0c;这些特定元素满足&#xff1a;其对应下标的二进制表示中恰存在 k 个置位。 整数的二进制表示中的 1 就是这个整数的 置位…

Java 正则匹配sql

文章目录 正则匹配sql表名称insert intoupdate 正则表达式什么时候要加^$ 在线正则校验 正则匹配sql表名称 insert into insert into PING_TABLE (CODE, NAME) VALUES(0, 待提交),(1, 审核中),(2, 审核通过),(3, 已驳回); regex -> insert\sinto\s(\w)\s*\(?update upda…

xmind思维导图 for mac v24.01中文版

mac电脑上思维导图软件哪个好呢&#xff1f; xmind for mac一个功能强大、易于使用的思维导图软件&#xff0c;够帮助你更好地组织思维、管理信息、规划项目和解决问题&#xff0c;提高个人和团队的工作效率。 软件下载&#xff1a;xmind思维导图 for mac v24.01中文版 XMind f…

【issue-YOLO】自定义数据集训练YOLO-v7 Segmentation

1. 拉取代码创建环境 执行nvidia-smi验证cuda环境是否可用&#xff1b;拉取官方代码&#xff1b; clone官方代码仓库 git clone https://github.com/WongKinYiu/yolov7&#xff1b;从main分支切换到u7分支 cd yolov7 && git checkout 44f30af0daccb1a3baecc5d80eae229…