在配置好SNMP后(配置方法参考:windows下安装和配置SNMP),就可以开始实现监控主机的程序了。用到的库是Net-SNMP,Net-SNMP是一个免费的、开放源码的SNMP实现.用到的语言是python,版本是python3.6.2,编写GUI主要用到tkinter,接下来主要实现的功能是:
1.编制控制台程序,接受用户输入的 OID 字符串,返回在Windows/Linux SNMP 代理中的对应值;
2.开发 GUI 界面程序,使用户可通过控制台程序观察主机 CPU、内存、硬盘空间、流量值;
GUI实现
首先安装tkinter,这里就不赘述了,安装好后就可以开始编写GUI了。考虑到我们这次的UI界面要求不高,一个个UI组件写太麻烦了,这里推荐一个python下可视化编程GUI界面的小软件参考博客tkinter的vb可视化工具,根据这篇博客即可生成一些简单GUI的python代码,效果如下:
主要就是用到三个组件:label,button和text,最下面的CPU内存曲线是用Figure,这个必须自己写,那个小软件并不能实现,这个的实现下篇博客再讲。
oid获得信息
现在来实现左上角的部分,在文本框中输入oid后,点击结果,将在下面的文本框里显示相应的结果。button的UI实现代码如下:
self.style.configure('Command1.TButton',font=('宋体',9))
self.Command1 = Button(self.top, text='结果',command=lambda:self.Command1_Cmd(host), style='Command1.TButton')
self.Command1.place(relx=0.01, rely=0.08, width=80, height=30)
button的功能实现代码如下:
def Command1_Cmd(self,host):
self.Text2.delete('0.0',END)
oid_result = snmpWalk(host,self.Tex