俗话说:工欲善其事,必先利其器。要作好系统管理,使本身的工做更轻松更有效的话,一个好的监控工具是必不可少的了。
在2002年早些时候,我有幸承包×××某研究所的整个网络维护。当时网络情况十分糟糕,断网状况比较频繁,形成这种状况的缘由大体有两种:
·内部网络联网混乱。
·上联到另一个研究所,那里时不时操做不慎把上连的线路给弄掉了。
为了了解网络是否处于一个可用的状态,我上班的第一件事情就是打开网络收音机,根据声音的有无进行判断。
再日后两年,有一些用于远程教育的服务器托管在亦庄某机房。这个机房的服务实在是很糟糕,曾有一段时间,网络服务基本处于没法访问的状态,打电话过去,那边敷衍说机房收到***,立刻就会正常。咱们不得不暂时相信他的托词,为了知道什么时候网络能恢复正常,我就在办公室的电脑执行ping服务器ip地址的操做。
2005年秋天,我在一个sp公司作系统管理。这里有数百个服务器对外提供服务,而且要求24小时运营保障。这种网络环境下,再用听在线收音机或者ping来判断网络是否正常,是没有什么效果的。幸亏,在我接手的时候,已经有了一个监控系统netsaint(nagios的早期版本名称),后来我把它升级成最新的nagios。经过逐步完善这个监控平台,取得比较理想的运营效果:只需带着手机,有故障会自动发短信报警。
12.1 nagios概述
Nagios官方网站的描述:
Nagios is an open source host, service and network monitoring program. Who uses it? Lots of people, including many big companies and organizations:Nagios是一个用来监控主机、服务和网络的开放源码软件,不少大的公司和组织都在使用它。
首先,咱们来看实际工做中须要监控的对象有哪些?在这里我总结出两种类型的监控对象:网络服务监控及主机资源监控。网络服务监控可包括主机存活检查、web服务监控、ftp服务监控、数据库服务监控、自定义服务监控等;主机资源监控可包括系统负载、当前ip连接数、磁盘空间使用状况、当前进程数以及自定义的资源监控等。
其次,咱们再来看nagios监控的表现形式。监控的主要目的是当监控的对象发生故障或资源紧张时及时通知相关人员,以便问题获得迅速的处理。追求的效果就是“在老板和客户发现问题以前获得及时、有效的通知”。假定故障通知来自老板,我想你们都不会很愉快的。Nagios为了方便咱们的管理工做,提供了至少3种表现形式:
1、web方式,即经过浏览器观看被监控的对象;如正常状态下,其状态(status)是以蓝色填充并显示一个OK。
2、邮件通知,发生故障时,到达设定重试次数和探测间隔时间后发送邮件给管理员或相关人员,报告问题的大体状况。
3、手机短信,这是很是有用和及时的功能了;晚上熟睡中,再也没可能看web页面或查阅邮件,能够一旦发生故障,手机短信却能把你随时唤醒。
通常状况下,这3者是同时进行的:上班时间开个浏览器看页面显示、打开邮件程序定时收取邮件、手机24小时在线。
最后,咱们以一个实际场景来展现nagios的强大功能,但愿对你们的系统管理工做有所帮助。
12.2 nagios监控场景描述
为了描述问题方便,咱们假定有5个服务器要监控(web服务器、数据库服务器、邮件服务器、nfs文件共享服务器),须要对几个服务器的服务进行监控,同时监控每一个服务器的资源使用状况,包括负载状况、磁盘分区使用状况、总进程数、当前ip链接数这个4个项目(固然你也能够本身写脚本监控更多的资源对象)。这些服务器除了系统管理员而外,还有其余用户(如程序员)对各自的服务器进行维护;当发生故障的时候,维护网站的程序员能收到报警邮件和报警短信,而管理数据库管理员则无需收到这些报警,同时维护程序的用户能够以本身的账号登录监控服务器,经过web方式察看本身所管服务器的状态(只能看本身的而看不到别人管辖服务器的状态)。
经过上面的描述,咱们能够整理出表12-1:
机器名称
|
角色
|
可查看状态及接受报警信息的用户
|
所需工具
|
Nagios服务器
|
监控端
|
系统管理员(SA)
|
Apache、nagios、nagios plugin、sendmail、perl等
|
邮件服务器
|
被监控端
|
系统管理员、邮件管理员
|
Nrpe、nagios plugin、自定义脚本等
|
数据库服务器
|
被监控端
|
系统管理员、dba
|
Nrpe、nagios plugin、自定义脚本等
|
Web服务器
|
被监控端
|
系统管理员、webmaster
|
Nrpe、nagios plugin、自定义脚本等
|
Nfs共享服务器
|
被监控端
|
系统管理员
|
Nrpe、nagios plugin、自定义脚本等
|
缓存服务器(squid)
|
被监控端
|
系统管理员、webmaster
|
Nrpe、nagios plugin、自定义脚本等
|
表12-1 监控场景汇总
配置好nagios和被监控机器后,其在浏览器里的基本输出与图12-1相似: