一篇文章教你搞定脚本监控

一,Python简介
二,监控基本原理
三,监控框架代码分析
四,监控源代码分析
五, 文章总结有福利
为什么要脚本监控呢,这是个非常严重需要注意的问题,为什么需要一个脚本监控,
因为脚本监控是服务器的进程,
如果写代码不够健壮,他运行十几天二十几天他突然蹦了,怎么办如果这时候有一个脚本去监控服务进程就可以节省自己很多时间,
一,Python简介
Python是近年来最火的一个热点,没有之一 。从性质上来讲它和我们熟知的C、JAVA、php等没有什么本质的区别,也是一种开发语言,而且已经进阶到主流的二十多种开发语言的top 5(数据源自最新的TIOBE排行榜) 。
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言,具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构 。
优点
1.“优雅”、“明确”、“简单”- 所以Python程序看上去总是简单易懂,
2. 开发效率高- Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,
3. 高级语言- 当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
4,如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们 。
5. 由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上) 。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
6. 如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们 。
缺点
7. 代码运行速度慢
8. 发布程序时必须公开源代码
二,监控基本原理
1. cactio
cacti不是监控工具,他是个依赖于SNMP的数据采集和数据呈现的工具 。
数据采集、 保存数据[SQL, txt].
数据展示(rrdtool 绘图) 。
数据分析和报警(很一般) 。
2. nagIOS 。
功能:数据报警(报警功能是Nagios的特色功能) [ 故障触发,故障恢复都可以 。
依赖分析报警(能自动的识别到关键设备的故障,关联设备不会报警) 。
数据采集(采集的数据是弱项,他只关心警戒位,只关心正常与否的状态,状态转换时可以实现报警,所以它采集的数据不需要保存),当然也有插件弥补这个不足,如PNP4Nagios 。
3. zabbix (php)(推荐)
Nagiostcacti整合互相弥补不足!I
nagios和 cacti不适合超大规模的监控、由于大规模的带宽和网络限制,会导致监控的延迟等问题,所以有很多是 nagios+ cacti整合,但是依然不适合在大规模的环境中,不适合分布式部署, Nagios在大规模中就会出现延迟,失
去 Nagios本事的特色 。
那么 zabbix同时整合了 cacti和 Nagios特点的工具,而且还具有了前两者不具有的工具,支持分布式等等 。
4. 补充工具:
netdata:托管在github上的一款类型zabbix的开源监控工具https:/
/github. com/firehol/netdata
open- falcon:小米公司开源的企业级监控工具(python)(推荐)
Ganglia类似于 zabbix,大型分布式监控系统
开源监控工具对比http://www.oschina.net/news/67525/monitoring-tools
5. 监控软件数据采集的方式
SNMP 协议 。
agent 代理的方式去采集数据 。
shell 脚本api 接口
6. 数据展示方式
php html App
7. 数据告警
mail,msm,微信,电话,钉钉机器人
三,框架源代码分析
常见shell

一篇文章教你搞定脚本监控

文章插图
 
基本结构
  • vim file.sh

一篇文章教你搞定脚本监控

文章插图
 
  • chmod +x file.sh #授权
  • sh +xv file.sh #调试
  • ./file.sh #绝对路径,执行脚本
基本脚本构成