监控系统nag

上传人:日度 文档编号:154442043 上传时间:2020-12-06 格式:DOC 页数:32 大小:421KB
返回 下载 相关 举报
监控系统nag_第1页
第1页 / 共32页
监控系统nag_第2页
第2页 / 共32页
监控系统nag_第3页
第3页 / 共32页
监控系统nag_第4页
第4页 / 共32页
监控系统nag_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《监控系统nag》由会员分享,可在线阅读,更多相关《监控系统nag(32页珍藏版)》请在金锄头文库上搜索。

1、第十二章 监控系统nagios俗话说:工欲善其事,必先利其器。要做好系统管理,使自己的工作更轻松更有效的话,一个好的监控工具是必不可少的了。在2002年早些时候,我有幸承包中国科学院某研究所的整个网络维护。当时网络状况十分糟糕,断网情况比较频繁,造成这种情况的原因大致有两种:内部网络联网混乱。上联到另外一个研究所,那里时不时操作不慎把上连的线路给弄掉了。为了了解网络是否处于一个可用的状态,我上班的第一件事情就是打开网络收音机,根据声音的有无进行判断。再往后两年,有一些用于远程教育的服务器托管在亦庄某机房。这个机房的服务实在是很糟糕,曾有一段时间,网络服务基本处于无法访问的状态,打电话过去,那边

2、敷衍说机房收到攻击,马上就会正常。我们不得不暂时相信他的托词,为了知道何时网络能恢复正常,我就在办公室的电脑执行ping服务器ip地址的操作。2005年秋天,我在一个sp公司做系统管理。这里有数百个服务器对外提供服务,并且要求24小时运营保障。这种网络环境下,再用听在线收音机或者ping来判断网络是否正常,是没有什么效果的。幸好,在我接手的时候,已经有了一个监控系统netsaint(nagios的早期版本名称),后来我把它升级成最新的nagios。通过逐步完善这个监控平台,取得比较理想的运营效果:只需带着手机,有故障会自动发短信报警。12.1 nagios概述Nagios官方网站的描述:Nag

3、ios 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服务监控、数据库服务监控、自定义服务监控等;主机资源监控可包括

4、系统负载、当前ip链接数、磁盘空间使用情况、当前进程数以及自定义的资源监控等。其次,我们再来看nagios监控的表现形式。监控的主要目的是当监控的对象发生故障或资源紧张时及时通知相关人员,以便问题得到迅速的处理。追求的效果就是“在老板和客户发现问题之前得到及时、有效的通知”。假定故障通知来自老板,我想大家都不会很愉快的。Nagios为了方便我们的管理工作,提供了至少3种表现形式:1、web方式,即通过浏览器观看被监控的对象;如正常状态下,其状态(status)是以蓝色填充并显示一个OK。2、邮件通知,发生故障时,到达设定重试次数和探测间隔时间后发送邮件给管理员或相关人员,报告问题的大致情况。3

5、、手机短信,这是非常有用和及时的功能了;晚上熟睡中,再也没可能看web页面或查阅邮件,可以一旦发生故障,手机短信却能把你随时唤醒。一般情况下,这3者是同时进行的:上班时间开个浏览器看页面显示、打开邮件程序定时收取邮件、手机24小时在线。最后,我们以一个实际场景来展示nagios的强大功能,希望对大家的系统管理工作有所帮助。12.2 nagios监控场景描述为了描述问题方便,我们假定有5个服务器要监控(web服务器、数据库服务器、邮件服务器、nfs文件共享服务器),需要对几个服务器的服务进行监控,同时监控每个服务器的资源使用情况,包括负载情况、磁盘分区使用情况、总进程数、当前ip连接数这个4个项

6、目(当然你也可以自己写脚本监控更多的资源对象)。这些服务器除了系统管理员而外,还有其他用户(如程序员)对各自的服务器进行维护;当发生故障的时候,维护网站的程序员能收到报警邮件和报警短信,而管理数据库管理员则无需收到这些报警,同时维护程序的用户可以以自己的帐号登陆监控服务器,通过web方式察看自己所管服务器的状态(只能看自己的而看不到别人管辖服务器的状态)。通过上面的描述,我们可以整理出表12-1:机器名称角色可查看状态及接受报警信息的用户所需工具Nagios服务器监控端系统管理员(SA)Apache、nagios、nagios plugin、sendmail、perl等邮件服务器被监控端系统管

7、理员、邮件管理员Nrpe、nagios plugin、自定义脚本等数据库服务器被监控端系统管理员、dbaNrpe、nagios plugin、自定义脚本等Web服务器被监控端系统管理员、webmasterNrpe、nagios plugin、自定义脚本等Nfs共享服务器被监控端系统管理员Nrpe、nagios plugin、自定义脚本等缓存服务器(squid)被监控端系统管理员、webmasterNrpe、nagios plugin、自定义脚本等表12-1 监控场景汇总配置好nagios和被监控机器后,其在浏览器里的基本输出与图12-1类似:图12-1 web方式查看nagios监控状态12.

8、3 Nagios服务器的自我监控实现要实现资源和服务两个方面的监控,需要配置服务器端(nagios server)及被监控端(NRPE-nagios remote plugin executor)。为了能顺利地、有条理的部署nagios监控平台,一个好的工作风格是在nagios server自身实现服务和资源的监控,然后再在其他监控端部署nrpe,从nagios server端用check_nrpe测试通过后,再在nagios server配置文件中逐一增加监控项目。当然如果只是监控服务而不监控主机资源,则被监控端不做任何nrpe的安装。为了方便初学者更容易上手和成功,我们就从简单的步骤开始。

9、12.3.1 配置邮件发送功能因为报警邮件发送给用户邮箱后,监控系统本身没有必要接受别的邮件服务器发送的邮件,因此只需要使用服务器本身自带的sendmail来发送报警信息即可。用sendmail的另外一个目的就是简便。如果系统是redhat 或 centos ,只需执行 service sendmail start 启动守护进程,然后再用dns服务器给它一个合法的域名(即A记录),马上就可以用mail命令来发送测试邮件到你的某个电子邮箱里了。收到测试邮件,就说明邮件系统配置结束,是不是很容易呢?这里给一个发送邮件的例子: mail -s “This is serys nagios test m

10、ail” new;$md5-add($souce_content);my $result_conent = uc($md5-hexdigest); my $url = http:/ $result = get $url;if($log_control) my $fh; open($fh, /var/log/sms.log) or die cant open log: $!; print $fh join( , time, $result, n); close $fh;(以上脚本由宇捷提供)说明:1、my $key = Ysdbyhd6T 短信服务商给的验证关键字。2、my $url=”.” 短

11、信服务商给的用户名、密码以及短信服务商的访问接口(url)全包括在这里了。我们把这个文件放在目录 /usr/local/bin/ 下面,把它命名为 sms_send.pl ,用命令 chomod +x /usr/local/bin/sms.pl 给与它执行权限。这个脚本在各种各样的unix、linux下都可以正常工作,nagios报警短信发送就是靠它了。如果读者也打算拿这个脚本发送短信的话,只要改一下key值和url值就可以直接使用。接下来就是验证是否可以发送短信,执行命令行 /usr/local/bin/sms.pl 13300108888 It is a test ,回车后数秒钟,你的手机

12、应该能收到带有内容“It is a test”的短信息。为了保证短信服务的可靠性,我做了一个策略:每天下午6点定时给我发一个通知短信;告诉我短信发送是正常的,也是该下班回家了。具体做法:执行 crontab e 然后输入行 00 18 * * * /usr/local/bin/sms.pl 13300108888 It is Ok” 。12.3.3 安装apacheApache应该是我们最常用的部署了,它可以被弄得很复杂,但在nagios 这个平台上,我们只需要简单的功能即可,为了验证用户,我们稍微加一点修改就行了。这样做也是为了体现“越简单越容易的思想”。做得简单,以后重新部署或恢复就越迅速

13、、越没压力。(一) 安装apachetar zxvf httpd-2.2.8.tar.gzcd httpd-2.2.8./configure -prefix=/usr/local/apache #仅仅需要这么一个选项makemake install(二) 检查apache是否被正确的安装1、执行 /usr/local/apache/bin/apachectl t 检查apache的配置文件语法是否正确。未经更改的apache配置文件语法显然是正确无误的,当我们对配置文件httpd.conf 或其包含的文件作了更改的时候,最好先运行一下这个命令,它的错误输出能迅速定位配置文件哪里出现了错误。2、执行命令行 /usr/local/apache/bin/apachectl start 启动apache守护进程,在别的机器的浏览器里输入这个服务器的ip地址,看是否可以正常浏览apache的默认页面通常是一个“IT works!”。为了方便以后维护apache 更方便些,我们可以修改环境变量文件/etc/profile,在文件的末尾追加行 “export PATH=$PATH:/usr/local/apache/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号