使用Python开发类Nagios监控软件
2016-03-18 12:30
330 查看
知识点:
1、 使用redis发布\订阅功能做服务器和客户端的通信通道
2、 利用面向对象思想开发监控模板
3、 时间监控项目插件化,允许用户自行开发监控插件
监控类型
基础监控
硬件、网络信息
系统监控
内存、硬盘、网络流量、IO、CPU
应用监控 Mysql
业务监控 模拟并监控业务逻辑、网站访问质量
监控模式
主动监控——服务器主动向客户端轮询状态
1、 适用于中小型网络、或者是不能装客户端的网络设备
2、 给服务器造成的开销压力比较大
3、 轮询延迟
被动监控——客户端主动向服务器定期汇报状态
1、 适用于大型网络系统,设备较多
2、 可扩展性强、可定制性强
3、 需要装客户端,客户端更新、升级问题
需求分析:
1、 每个客户端需要监控的服务不同
2、 每个服务的监控间隔不同
3、 允许模板的形式批量修改监控指标
4、 不同设备的监控阀值不同
5、 可自定最近N分钟内……指标超过阀值
6、 报警策略、报警等级、报警自动升级。报警的时候不能总报给管理员,如果很多台机器出了问题,那么就要先给报警中心,报警中心对报警信息进行分级,然后把重要的报给管理员,这一点非常重要。
7、 历史数据的存储和优化
8、 跨机房、区域代理服务器
分享:小米自主研发的监控系统,规定在一秒钟内取出来历史的数据(RD2)。
类似股票走势来做,那么就会造成数据失真。相对于历史的数据用户更希望拿到过去的整体信息,而不是精确的数据。这么做的话就可以减少数据存储的空间,那么在进行索引的时候就会很快。做到数据失真要用到如下代码实现:
data = {
'real':[(324,14132154548),(324,14132154548),(324,14132154548),(324,14132154548),(324,14132154548)]2880
'10':[(324,14132154548),(324,14132154548),(324,14132154548)]2880
'30':[(324,14132154548),(324,14132154548),(324,14132154548)]2880
}
就是每来一个数据,咱们就对字典进行优化,对其他的数据存储到硬盘里就行了。算下来每台机器五年的数据大概就是500兆,所以这样就大大解决了数据信息过大导致索引时间过长的问题。
1、 使用redis发布\订阅功能做服务器和客户端的通信通道
2、 利用面向对象思想开发监控模板
3、 时间监控项目插件化,允许用户自行开发监控插件
监控类型
基础监控
硬件、网络信息
系统监控
内存、硬盘、网络流量、IO、CPU
应用监控 Mysql
业务监控 模拟并监控业务逻辑、网站访问质量
监控模式
主动监控——服务器主动向客户端轮询状态
1、 适用于中小型网络、或者是不能装客户端的网络设备
2、 给服务器造成的开销压力比较大
3、 轮询延迟
被动监控——客户端主动向服务器定期汇报状态
1、 适用于大型网络系统,设备较多
2、 可扩展性强、可定制性强
3、 需要装客户端,客户端更新、升级问题
需求分析:
1、 每个客户端需要监控的服务不同
2、 每个服务的监控间隔不同
3、 允许模板的形式批量修改监控指标
4、 不同设备的监控阀值不同
5、 可自定最近N分钟内……指标超过阀值
6、 报警策略、报警等级、报警自动升级。报警的时候不能总报给管理员,如果很多台机器出了问题,那么就要先给报警中心,报警中心对报警信息进行分级,然后把重要的报给管理员,这一点非常重要。
7、 历史数据的存储和优化
8、 跨机房、区域代理服务器
分享:小米自主研发的监控系统,规定在一秒钟内取出来历史的数据(RD2)。
类似股票走势来做,那么就会造成数据失真。相对于历史的数据用户更希望拿到过去的整体信息,而不是精确的数据。这么做的话就可以减少数据存储的空间,那么在进行索引的时候就会很快。做到数据失真要用到如下代码实现:
data = {
'real':[(324,14132154548),(324,14132154548),(324,14132154548),(324,14132154548),(324,14132154548)]2880
'10':[(324,14132154548),(324,14132154548),(324,14132154548)]2880
'30':[(324,14132154548),(324,14132154548),(324,14132154548)]2880
}
就是每来一个数据,咱们就对字典进行优化,对其他的数据存储到硬盘里就行了。算下来每台机器五年的数据大概就是500兆,所以这样就大大解决了数据信息过大导致索引时间过长的问题。
相关文章推荐
- python 在不同层级目录import 模块的方法-andersonyan-ChinaUnix博客
- Python 中的进程、线程、协程、同步、异步、回调
- 浅析Python基础-流程控制
- 浅析Python编写函数装饰器
- 【待解决】关于python-mysqldb的安装
- python select
- python正则表达式之作业计算器
- python mysql
- python3 字符编码处理
- 基于python yield机制的异步操作同步化编程模型
- Python implement inverted index
- 理解Python中的With语句
- Python 类的创建
- python rabbitmq
- Python -- 获取文件所在目录和文件名
- 深入浅出Python(中文版) 下载地址
- Python生成器:yield的使用
- 卸载PythonToolKit的方法
- 1.python获取windows软件安装列表
- python入门到精通[二]:基本语法