介绍monit是一个用于监控Unix/linux系统的跨平台工具。主要针对类Unix系统,如Linux、BSD、OSX、Solaris等可以监控的主要内容:服务器进程状态HTTP/TCP状态码服务器资源变化文件系统变化同时可以设置相应的操作根据监控对象的条件。比如设置邮件报警,重启服务等。Monit 易于安装,重量轻,但功能强大。是一个充分体现Unix思想的理想监控+自动恢复工具。“做好一件事,把它做好”注:Monit是一款开源工具(单机),M/Monit(集中管理)是基于其付费企业版。Linux安装源现在已经包含Monit包,直接使用包管理器安装即可。yuminstallmonitor sudoapt-getinstallmonit源码安装:https://bitbucket.org/tildesl..../configuremakemakeinstall很简单,这里不再介绍更多基本命令monit-t#配置文件检测monit#启动monit守护进程monit-c/var/monit/monitrc#指定monit守护进程启动时的配置文件monitreload#配置文件更新时,monitstatus#查看所有服务状态monitstatusnginx#查看nginx服务状态monitstopall#停止所有服务monitstopnginx#停止nginx服务monitstartall#启动所有服务monitstartnginx#启动nginxservicemonit-V#查看版本配置文件示例监控系统监控进程远程服务端口拨号测试pagemonitoringobjectobject告警策略代码结构代码中各模块的详细信息和主要数据结构。所有监控对象都是按服务组织的。command表示对服务的操作, event表示对象上发生的事件(如告警事件),info是不同监控对象类型的校验结果。Service(监控对象)有以下几种类型,同时列出了各个对象监控的内容:文件系统:容量、uid/gid、权限、inode、读写速率目录: 权限、uid/gidprocess:Time,cpu,mem,childprocess,diskreadandwrite等Host: PortDialingSystem: 系统基本指标Fifo:待添加 Program: ScriptreturnstatusNetwork: linkup/down,linkcapacitychanges,bindwidth等。runtime是运行时相关的配置参数,环境变量,控制参数等,包括以下内容:state),control(配置文件),log运行状态:running,stopped,daemonprocess等Checkcycle:检查周期,首次启动延迟时间Systembasics:基本系统信息HTTP API:HTTP设置还有诸如“环境变量”、“邮箱列表”等很多运行时信息service info是每个巡检对象当前巡检周期的状态根据不同类型的服务,有不同的结构;以进程(process)监控为例,包括以下:进程的各种id,内存,cpuuptime I/O等,其短小精干的指标集合可以满足单机的需求。另外,最重要的亮点是在监控的时候可以根据情况配置相应的操作(Aciton),比如:监控某个服务在5个巡检周期(cycle)挂掉,执行重启操作。下图是另一个例子。当检测到日志文件大于100M时,执行清理脚本。同时大家也发现了为什么配置文件会有if判断。这也是它的神奇之处。整个配置文件进行了词法分析和句法分析,属于黑科技,所以实现了自定义语法。对应的文件有:l.l词法分析 使用Flex处理p.y 语法分析使用Yacc处理比如下面的代码中包含了检测进程(process)的配置项分析待补充
