早期这个项目本身是因为公司不存在最简易监控摄像头在线情况的业务,使用ZABBIX又太过于麻烦所以就想顺便学习一下python,json,opentsdb的知识,并没有把它写成一个真正的监控系统,不过随着版本的更新与学习的进一步,我对于这个项目的最终目标是可以做到MVC架构的时间序列监控程序(可能还会加上心跳?)
- visual studio code
- python3
- opentsdb
- hbase1.4.3
- opentsdb2.3.0
需要注意
如果想直接不修改脚本并支持中文需要对opentsdb进行源码修改编译安装,修改源码编码为UTF-8 opentsdb的官方说至少要到3.0才会想办法支持UTF-8 - grafana5.0.4
- bcgrid
- highstock
- msvcrt,time,socket,json,flask python模块
- Easy_monitor1
利用OPENTSDB存储数据,grafana展示,python处理数据的方式,oepntsdb部署起来过于麻烦,已经抛弃
- opentsdb.py 主文件
- ip.csv 需要监控的IP列表文件
- err.log 错误信息日志
- config.ini 配置文件,主要脚本的说明信息都在里面了
- Easy_monitor2
引入了bcgrid利用专用HTTP服务器托管静态HTML页面载入表格插件显示数据(不过因为不会js jq之类的技术无法动态载入所以数据无法排序分页)
- monitor.py 主文件
- ip.csv 需要监控的IP列表文件
- config.ini 配置文件,主要脚本的说明信息都在里面了
- html/ 静态页面
- Easy_monitor3
使用flask框架把JSON数据打入页面,利用本身表格插件的功能去除了之前无法排序分页的BUG,且使用FLASK本身自带的HTTP服务可以直接使用pyinstaller编译部署到服务器上运行,简单方便好处多多(无法适应大批量)
- monitor_server.py 监控程序主文件
- ip.csv 需要监控的IP列表文件
- config.ini 配置文件,主要脚本的说明信息都在里面了
- monitor/monitor_web.py 前端动态页面
- monitor/templates monitor/templates 前端动态页面资源页
- monitor/templates/static/data.json 生成的JSON文件由动态载入
-
Easy_monitor4
整体重构了结构与代码以便下个版本引入数据库和真正的MVC框架
添加了简单的登陆验证GET POST,引入了bootstrap框架,FLASK模板继承等新知识
现在算是一个比较简单易懂的版本了,拿到手修改cfg就能跑 -
Easy_monitor5
在原有基础上增加了点位监控的历史信息记录,不再只是单纯的看到当前状态
使用了 influxdb作为点位历史记录的数据库载体,使用的WINDOWS版本所有默认设置
还添加了动态图表 highstock动态显示历史记录
默认数据库名 mydb
因为只是个人测试用,所以并没有添加任何鉴权设置,直接操作HTTPAPI的SQL语句如果是在线环境话是极度危险的!
我
暂时没有
- Easy_monitor1
- Easy_monitor2
- Easy_monitor3
- Easy_monitor4
- Easy_monitor5
无可奉告