需求:
今年上半年疫情严重,很多公司同事应该都在家办公了一段时间。对于系统管理员而言,一般都是要每日机房巡检。如果是互联网公司,一般机房都会有视频监控来实时查看运行状态。对于长时间无人值守机房,一般机房管理的要点是电力,空调,消防等。对于制造业机房,可能没有专业的视频监控解决方案。方案意味着成本。那么,对于非互联网专业IT公司的机房,如果想通过视频定时了解机房设备运行状态怎么办?当然,方法是有的,而且接近零成本。
方法:
实现远程定时查看机房设备状态,主要通过摄像头,定时抓拍照片,然后将照片定时发送给系统管理员。当然,照片我们可以通过OpenCV进行分析,通过图片的变化,来判断机房的状态变化。在本例中,我们通过opencv来检测照片的亮度,通过亮度值的变化来判断机房的设备状态变化。
材料:1. 带有摄像头的笔记本电脑,没有摄像头可以淘宝一个,一般公司都有一些淘汰的电脑,基本上可以满足要求。
实现步骤:
- 在机房放置好笔记本电脑,调整好摄像头,接入公司内网。
- 下面就是python来先身手了,代码如下,通过python获取摄像头照片并分析亮度值。
首先调用opencv库
import cv2
from PIL import Image,ImageStat
获取照片函数如下:
def get_img_from_camera_local(folder_path):
file_name=c_date+'.jpg' #定义文件名
cap=cv2.VideoCapture(0) #启动摄像头
ret,frame=cap.read() #读取frame
cv2.imshow("capture",frame)
cv2.imwrite(folder_path+file_name,frame) #照片保存本地路径
cap.release() #释放摄像头
cv2.destroyAllWindows()
write_log("Picture "+ file_name + " saved to folder") #写日志
full_path=folder_path+file_name
im=Image.open(full_path).convert('L') #读取照片亮度值
start=ImageStat.Stat(im)
write_log(full_path+' Brightness is '+ str(start.mean[0])) #输入获取的照片亮度值。
- 通过亮度值,可以知道机房的电力有没有问题,可以检测市电是否正常工作(因机房而异)
- 通过邮件把机房状态定期发送给相关管理员,可以实现机房远程状态监控。
小结一下:
方法比较简单,使用的工具也不复杂,大致就是读取对应的照片并进行判断,希望可以给大家一些方法/思路上面的参考。