nagios是一款开源电脑系统和网络监视工具,能够有效监控windows, linux, unix的主机状态,交换机路器等网格设置,打印机等,在系统或服务状态异常时发出邮件或短信报警第一时间通知运维人员,在状态恢复合发出正常的邮件或短信报警通知。
主要功能
*网络服务监控(STMP简单电子邮件服务;POP3邮件服务器;HTTP;NNTP;ICMP;SNMP;FTP;SSH)
*主机 资源监控(CPU locd,disk usage,system logs),也包括windows主机(使用NSCLIENT++ Plugin)
*可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度,警告。。。)
*可以监控支持SSH或SSK加通道方式进行监
可以通过配置Nagio远程 执行插件远程执行脚本
*简单的plugin设计允许用户很容易的开发自己 需要的检查服务,支持很多开发语言(shel scripts,c++,perl,ruby,python,php,c)
*包含很多图形化数据plugins(Nagiosgraph,Nagiosgrapher,PNP4Nagios等)
*可并行服务检查
*能够定义网络主机的层,允许逐级调查,就是从父主机开始向下检查,
*当服务或主机 出现 问题是发出通告 ,可通过emall,pager,sms或任意用户自定义的plugin进行通知
*自动日志 循环
*支持冗余监控
*包web界面可以查看当前网络状态,通知,问题历史,日志文件等
工作原理
Nagios的功能是监控服务和主机,但也是它自身并不包括这部分功能,所有的监控,检测功能都是通过各种插件来完成的。
启动Nagios后他会周期性的自动调用插件去检查服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理,把状态结果通过web显示出来。
Ngios提供了许多插件,利用这些插件可以方便的监控很多服务状态,安装完成后,在Nagios主目录下的/libexec里放有nagios可以使用的所有插件,如check_disk是检查磁盘空间的插件,check_load是检查CPU负载的等等。每一个插件可以通过运行./check_xxx -h来查看使用的方法和功能。
Nagios可以识别4种状态返回信息,即0(OK),1(Warining),2(Critical), 3(Unknown)
再说报警功能,nagios自身没有报警部分的代码,需要交给用户或者其他相关开源项目去完成。