|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
小知识:Linux是一套免费使用和自由传播的类Unix操作系统。
俗语说:工欲善其事,必先利其器.要做好体系治理,使本身的任务更轻松更有用的话,一个好的监控对象是必弗成少的了.在这里我向人人推举一款我应用了4年多的、功效壮大、可灵巧定制的开源监控利器---nagios。
起首,我们来看现实任务中须要监控的对象有哪些?在这里我总结出2品种型的监控对象:收集办事监控及主机资本监控。收集办事监控可包含主机存活检讨、web办事监控、ftp办事监控、数据库办事监控、自界说办事监控等;主机资本监控可包含体系负载、以后ip链接数、磁盘空间应用情形、以后过程数和自界说的资本监控等。
其次,我们再来看nagios监控的表示情势。监控的重要目标是当监控的对象产生毛病或资本重要时实时告诉相干人员,以便成绩获得敏捷的处置。寻求的后果就是“在老板和客户发明成绩之前获得实时、有用的告诉”,假定毛病告诉来自老板,我想人人都不会很高兴的。Nagios为了便利我们的治理任务,供给了至多3种表示手腕:
1、web方法,即经由过程阅读器旁观被监控的对象;如正常状况下,其状况(status)是以蓝色填充并显示一个OK。
2、邮件告诉,产生毛病时,达到设定重试次数和探测距离时光后发送邮件给治理员或相干人员,申报成绩的年夜致情形。
3、手机短信,这长短常有效和实时的功效了;早晨熟睡中,再也没能够看web页面或查阅邮件,可以一旦产生毛病,手机短信却能把你随时叫醒。
普通情形下,这3者是同时停止的:下班时光开个阅读器看页面显示、翻开邮件法式准时收取邮件、手机24小时在线。
最初,我们以一个现实场景来展现nagios的壮大功效,愿望对人人的体系治理任务有所赞助。
场景描写
为了描写成绩便利,我们假定有5个办事器要监控(web办事器、数据库办事器、邮件办事器、nfs文件同享办事器),须要对几个办事器的办事停止监控,同时监控每一个办事器的资本应用情形,包含负载情形、磁盘分区应用情形、总过程数、以后ip衔接数这个4个项目(固然你也能够本身写剧本监控更多的资本对象)。这些办事器除体系治理员而外,还有其他用户(如法式员)对各自的办事器停止保护;当产生毛病的时刻,保护网站的法式员能收到报警邮件和报警短信,而治理数据库治理员则无需收到这些报警,同时保护法式的用户可以以本身的帐号上岸监控办事器,经由过程web方法观察本身所管办事器的状况(只能看本身的而看不到他人管辖办事器的状况)。
经由过程下面的描写,我们可以整顿出上面的表格:
设置装备摆设好nagios和被监控机械后,其在阅读器里的根本输入与下图相似:
Nagios办事器的自我监控完成
要完成资本和办事两个方面的监控,须要设置装备摆设办事器端(nagiosserver)及被监控端(NRPE-nagiosremotepluginexecutor).为了能顺遂地、有层次的安排nagios监控平台,一个好的任务作风是在nagiosserver本身完成办事和资本的监控,然后再在其他监控端安排nrpe,从nagiosserver端用check_nrpe测试经由过程后,再在nagiosserver设置装备摆设文件中一一增长监控项目。固然假如只是监控办事而不监控主机资本,则被监控端不做任何nrpe的装置。为了便利初学者更轻易上手和胜利,我们就从简略的步调开端。
1、设置装备摆设邮件发送功效
由于报警邮件发送给用户邮箱后,监控体系自己没有需要接收其余邮件办事器发送的邮件,是以只须要应用办事器自己自带的sendmail来发送报警信息便可。用sendmail的别的一个目标就是轻便。
假如体系是redhat或centos,只需履行servicesendmailstart启动守护过程,然后再用dns办事器给它一个正当的域名(即A记载),立时就能够用mail敕令来发送测试邮件到你的某个电子邮箱里了。收到测试邮件,就解释邮件体系设置装备摆设停止,是否是很轻易呢?这里给一个发送邮件的例子:
mail-s“Thisissery’snagiostestmail”sery@163.com<install.log
2、测试短信发送
正常情形下,没有任何办事器能向手机发送短新闻的,要达到这个目标,得花钱购置短佩服务(也有些人应用飞信一类的方法来到达这个目标,小我认为关于运营网站不是太靠谱)。如果在几年前,本身请求短信通道照样有能够的,2005年今后仿佛门坎进步了许多。当你付费胜利后,短佩服务商会给你供给进口及加密症结字;然后我们本身写个剧本就能够发送短信。以下是我的办事器用perl写的剧本:
#!/usr/bin/perl-w
usestrict;
useLWP::Simple;
useURI::Escape;
useDigest::MD5;
my($mobile,$content)=@ARGV;
my$log_control=1;
my$key=Ysdbyhd6T;
my$souce_content=substr($mobile,0,8).substr($mobile,-10,10).$key;
my$md5=Digest::MD5->new;
$md5->add($souce_content);
my$result_conent=uc($md5->hexdigest);
my$url="http://http.asp.sh.cn/MT.do?Username=sery&Password=([-BVG0&Mobile=$mobile&Content=$content&Keyword=$result_conent";
my$result=get$url;
if($log_control){
my$fh;
open($fh,>>/var/log/sms.log)ordie"cantopenlog:$!";
print$fhjoin(,time,$result,"
");
close$fh;
}
(以上剧本由宇捷供给)
解释:
1、my$key=Ysdbyhd6T’短佩服务商给的验证症结字。
2、my$url=”…..”短佩服务商给的用户名、暗码和短佩服务商的拜访接口(url)全包含在这里了。
我们把这个文件放在目次/usr/local/bin/上面,把它定名为sms_send.pl,用敕令chomod+x/usr/local/bin/sms.pl授与它履行权限。这个剧本在各类各样的unix、linux下都可以正常任务,nagios报警短信发送就是靠它了。假如读者也盘算拿这个剧本发送短信的话,只需改一下key值和url值就能够直接应用。
接上去就是验证能否可以发送短信,履行敕令行/usr/local/bin/sms.pl13300108888"Itisatest",回车后数秒钟,你的手机应当能收到带有内容“Itisatest”的短信息。为了包管短佩服务的靠得住性,我做了一个战略:天天下昼6点准时给我发一个告诉短信;告知我短信发送是正常的,也是该上班回家了。做法:履行crontabCe然后输出行0018***/usr/local/bin/sms.pl13300108888"ItisOk”。
3、安排apache
Apache应当是我们最经常使用的安排了,它可以被弄得很庞杂,但在nagios这个平台上,我们只须要简略的功效便可,为了验证用户,我们略微加一点修正就好了。如许做也是为了表现“越简略越轻易的思惟”。做得简略,今后从新安排或恢复就越敏捷、越没压力[1]。
(一)装置apache
tarzxvfhttpd-2.2.8.tar.gz
cdhttpd-2.2.8
./configure--prefix=/usr/local/apache#仅仅须要这么一个选项
make
makeinstall
(二)检讨apache能否被准确的装置
1、履行/usr/local/apache/bin/apachectlCt检讨apache的设置装备摆设文件语法能否准确。未经更改的apache设置装备摆设文件语法明显是准确无误的,当我们对设置装备摆设文件httpd.conf或其包括的文件作了更改的时刻,最好先运转一下这个敕令,它的毛病输入能敏捷定位设置装备摆设文件哪里涌现了毛病。
2、履行敕令行/usr/local/apache/bin/apachectlstart启动apache守护过程,在其余机械的阅读器里输出这个办事器的ip地址,看能否可以正常阅读apache的默许页面―平日是一个“ITworks!”。为了便利今后保护apache更便利些,我们可以修正情况变量文件/etc/profile,在文件的末尾追加行“exportPATH=$PATH:/usr/local/apache/bin“,保留后履行source/etc/profile使其修正立刻失效,如许我们今后履行apache启动之类的敕令就不用输很长一串路径,直接输出apachectlstart就能够了。
(三)修正apache设置装备摆设文件httpd.conf
1、修正apache运转用户和组。默许是daemon,须要把它改成nagios。如许它能力有权限拜访我们装置的nagios目次,履行相干的cgi敕令,如经由过程阅读器界面封闭nagios、停滞某个毛病对象发送报警信息等。
2、添加nagios拜访目次(nagios的装置路径/usr/local/nagios),同时应用http用户验证。把上面的内容追加到httpd.conf文件的末尾:
.Alias/nagios/cgi-bin/usr/local/nagios/sbin
<Directory"/usr/local/nagios/sbin">
AuthTypeBasic
OptionsExecCGI
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"NagiosAccess"
AuthUserFile/usr/local/nagios/etc/htpasswd
Requirevalid-user
</Directory>
Alias/nagios/usr/local/nagios/share
<Directory"/usr/local/nagios/share">
AuthTypeBasic
OptionsNone
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"nagiosAccess"
AuthUserFile/usr/local/nagios/etc/htpasswd
Requirevalid-user
</Directory>
照如许一种方法修正设置装备摆设文件,包管不会把设置装备摆设文件改得乌烟瘴气,我信任年夜部门初学者都有把文件修正后而不晓得文件自己的原貌。到这步设置装备摆设文件固然修正好了,但还不克不及经由过程语法检讨,由于有2个与之相干联的器械还不存在,他们是用户和组nagios及apache的验证用户文件/usr/local/nagios/etc/htpasswd.在后续操作中完成这义务后,再验证不迟。
4、安排nagios办事
(一)添加帐户,以用来运转Nagios。固然也能够用root运转,但出于平安斟酌而应用通俗帐号来运转,而且不给这个账号分派shell登录权限.
1、linux增长帐号的操作为useraddnagiosCs/sbin/nologin添加帐号就主动生成同名组nagios。
2、freebsd增长帐号的操作为pwgroupaddnagios;pwuseraddnagiosCgnagiosCs/sbin/nologin.
留意:不要给nagios用户设置暗码。
(二)装置nagios软件
tarzxvfnagios-2.9.tar.gz
cdnagios-2.9
./configureCprefix=/usr/local/nagios----with-nagios-user=nagios--with-nagios-group=nagios
makeall
makeinstall履行完这个步调后,法式会提醒顺次运转makeinstall-init,makeinstall-commandmode,makeinstall-config这几个敕令。我们拔取个中的两个来履行:
makeinstall-commandmode
makeinstall-config
跟普通的gnu源码软件装置比拟,nagios的装置多了几个步调(普通的软件运转到makeinstall就算装置完了)。固然也能够连这两步都不履行,用手工付与目次或文件权限,再手动创立设置装备摆设文件,其后果完整雷同。装置完nagios后,我们可以在装置目次/usr/local/nagios下生成上面的目次:
没有插件,nagios将甚么感化也没有,插件也是nagios扩大功效的壮大兵器,除下载经常使用的插件外,我们还可以依据现实请求编写本身的插件。Nagios的插件nagios-plugins-1.4.9在www.nagios.org上可以找到,接着我们用wget下载它。留意:插件与nagios之间的版本联系关系不年夜,纷歧定非得用nagios-plugins-1.4.9这个版本。下载完成后,装置它是很简略的:先履行设置装备摆设./configureCprefix=/usr/local/nagios,接着编译装置make;makeinstall便可。这里须要解释一下的是在设置装备摆设进程指定的装置路径是/usr/local/nagios,而不是/usr/local/nagios-plus,装置完成后,将在目次/usr/local/nagios生成目次libexec(外面有许多文件),这恰是nagios所须要的。
(四)设置装备摆设nagios
设置装备摆设是nagios最庞杂的部门,让我们耐烦一些,逐一处置,设置装备摆设胜利也不是甚么难事。刚装置完成的nagios,其设置装备摆设文件的目次是/usr/local/nagios/etc,下图是其etc目次的文件:
先把这些文件更名,如cgi.cfg-sample改成cgi.cfg,用敕令cpcgi.cfg-samplecgi.cfg…依样把余下的几个*.cfg-sample都复制成*.cfg文件。从nagios2.6版开端,不消修正设置装备摆设文件localhost.cfg就能够直接运转../bin/nagiosCvnagios.cfg验证法式能否能正常运转(nagios2.5及之前版本的最小运转的设置装备摆设文件是minimal.cfg,但须要修正这个文件多处能力验证胜利)。固然,我们不克不及期望这个最小的设置装备摆设文件可以或许知足现实的需求,是以,须要对现有的设置装备摆设文件停止修正,其次增长自界说的一些设置装备摆设文件。经由过程复制这些自带的模板文件,我们可以得出几个重要的设置装备摆设文件,我们可以把它归类为:
按照这个表格,我们一一设置装备摆设之。
1、修正主设置装备摆设文件nagios.cfg.基于便利保护的准绳,把各个设置装备摆设目的零丁放在文件中,如接洽人信息在contacts.cfg中界说。Nagios.cfg文件比拟长,我只把修正过的内容贴出来:
#正文或删失落这行
#cfg_file=/usr/local/nagios/etc/localhost.cfg
#主机设置装备摆设文件路径
cfg_file=/usr/local/nagios/etc/hosts.cfg
#//主机组设置装备摆设文件路径
cfg_file=/usr/local/nagios/etc/hostgroups.cfg
#接洽人设置装备摆设文件路径
cfg_file=/usr/local/nagios/etc/contacts.cfg
#接洽组设置装备摆设文件路径
cfg_file=/usr/local/nagios/etc/contactgroups.cfg
#办事设置装备摆设文件路径
cfg_file=/usr/local/nagios/etc/services.cfg
#监督时段设置装备摆设文件路径
cfg_file=/usr/local/nagios/etc/timeperiods.cfg
#在web界面下重启nagios、停滞主机/办事检讨等操作,.默许值是0.
check_external_commands=1
#依据本身的情形定这个敕令检讨时光距离.默许值是1秒.
command_check_interval=10s
2、修正cgi设置装备摆设文件cgi.cfg.跟修正nagios.cfg一样,只贴出被修正的地方:
#若有多个用户,中央用逗号离隔
authorized_for_system_information=sery
authorized_for_configuration_information=sery
authorized_for_system_commands=sery
authorized_for_all_services=sery
authorized_for_all_hosts=nagiosadmin,sery
authorized_for_all_service_commands=sery
authorized_for_all_host_commands=sery
在这里指定的用户”sery”可以经由过程阅读器把持nagios办事的封闭、重启等各类操作。
3、修正commands.cfg设置装备摆设文件
这个文件曾经包括了发送邮件报警的部门,是以只须要再把短信报警的部门加上就能够了
######host-notify-by-smscommanddefinition
definecommand{
command_namehost-notify-by-sms
command_line/usr/local/bin/sms.pl$CONTACTPAGER$"$NOTIFICATIONTYPE$alert-Host$HOSTNAME$is$HOSTSTATE$"
}
######service-notify-by-smscommanddefinition
definecommand{
command_nameservice-notify-by-sms
command_line/usr/local/bin/sms.pl$CONTACTPAGER$"$NOTIFICATIONTYPE$:$HOSTALIAS$/$SERVICEDESC$is$SERVICESTATE$"
}
第一个块界说主机报警的内容,即主机产生逝世机、恢复等情形发送手机短信报警,其接收者和发送内容由“$..$”界说的宏来决议。第二个块界说办事报警内容,即监控的办事或监控的主机资本产生毛病时发送手机报警短信。Nagios划定,假如探测到被监控的主机停机或弗成达,它就不再探测这个停机主机上的办事。浅显地一点懂得:主机都停了,固然办事也随着停了!别的一个须要留意的处所是敕令行(command_line)路径必定要用全路径,这里挪用的敕令就是我们在周全编写的谁人剧本sms.pl。
4、新增其他设置装备摆设文件
在主设置装备摆设文件nagios.cfg中,我们正文了行cfg_file=/usr/local/nagios/etc/localhost.cfg,而应用若干零丁的设置装备摆设文件来界说各类对象,如许可以取得保护便利、书写标准等诸多方面的利益。这些零丁的设置装备摆设文件不是天然存在的,我们须要手工创立并添加内容。固然,一开端我们并非很清晰怎样往这些文件里添加内容,只好回过火去看官方文档,天啦,太疏散了,尽然不晓得怎样着手了!怎样办?翻开文件localhost.cfg-sample,心里根本上就稀有了:不过是把这个文件拆离开来,构成多个文件嘛!上面我按新添一个主机进入监控的较优方法添加这些设置装备摆设文件(固然也能够有其它的次序,这其实不影响监控的后果)。好了,我们先把nagios办事器自己给监控上,这些监控包含:主机存活、web办事监控、磁盘空间监控、负载监控、过程数监控、ip衔接数监控。
(1)、界说主机设置装备摆设文件hosts.cfg
definehost{
host_namenagios-server
aliasnagiosserver
address59.26.240.63
contact_groupssagroup
check_commandcheck-host-alive
max_check_attempts5
notification_interval10
notification_period24x7
notification_optionsd,u,r
}
解释:
●接洽组contact_group没有树立,需在前面的步调完成。
●主机检讨敕令行普通选择检讨主机存活check-host-alive。
●最年夜测验考试次数最好不要设置为“1”,普通3-4次比拟公道。
●告诉时光距离notification_interval依据本身现实情形设定,它的单元是分钟。
●告诉选项notification_options几个值的意思是d-down,u-unreacheable,r-recovery.
(2)、界说主机组设置装备摆设文件hostgroups.cfg
definehostgroup{
hostgroup_namesa-servers
aliassaservers
membersnagios-server
}
解释:
●这个设置装备摆设文件不是必需的,为了在阅读器里便利归类及观察状况,可以添加这个文件。
●主机组的成员必需是在hosts.cfg里曾经界说了的,多个主机成员间用逗号分隔。
(3)、界说接洽人设置装备摆设文件contacts.cfg
definecontact{
contact_namesery
aliassystemadministrator
service_notification_period24x7
host_notification_period24x7
service_notification_optionsw,u,c,r
host_notification_optionsd,u,r
service_notification_commandsservice-notify-by-email,service-notify-by-sms
host_notification_commandshost-notify-by-email,host-notify-by-sms
emailsery@163.com
pager13301000018
}
解释:
●办事告诉选项w-warning,u-unknown,c-critical,r-recovery.
●主机告诉选项d-down,u-unreacheable,r-recovery。
●办事告诉敕令行及办事告诉敕令行在设置装备摆设文件commands.cfg中获得界说,假如有报警产生,则邮件和手机短信一路发送给相干人,即下两行界说的email,pager.
●收报警信息的邮件和手机,一小我若有2个手机,手机号之间有逗号分隔,邮件也如斯。
●假如这里界说的用户须要经由过程阅读器观察他所担任的办事器监控状况的话,还须要用apache的对象htpasswd增长同名帐号。
(4)、界说接洽组设置装备摆设文件contactgroups.cfg
definecontactgroup{
contactgroup_namesagroup
aliassystemadministratorgroup
memberssery
}
解释:
●当有多小我行使异样的职责时,界说成组长短常有效的。
●多个成员之间用逗号分隔。
●成员必需在接洽人设置装备摆设文件(contacts.cfg)曾经界说。
(5)、界说办事设置装备摆设文件services.cfg
defineservice{
host_namenagios-server
service_descriptioncheck-host-alive
check_period24x7
max_check_attempts4
normal_check_interval3
retry_check_interval2
contact_groupssagroup
notification_interval10
notification_period24x7
notification_optionsw,u,c,r
check_commandcheck-host-alive
}
defineservice{
host_namenagios-server
service_descriptioncheck_tcp80
check_period24x7
max_check_attempts4
normal_check_interval3
retry_check_interval2
contact_groupssagroup
notification_interval10
notification_period24x7
notification_optionsw,u,c,r
check_commandcheck_tcp!80
}
defineservice{
host_namenagios-server
service_descriptioncheck-disk
check_commandcheck_nrpe!check_df
max_check_attempts4
normal_check_interval3
retry_check_interval2
check_period24x7
notification_interval10
notification_period24x7
notification_optionsw,u,c,r
contact_groupssagroup
}
defineservice{
host_namenagios-server
service_descriptioncheck-load
check_commandcheck_nrpe!check_load
max_check_attempts4
normal_check_interval3
retry_check_interval2
check_period24x7
notification_interval10
notification_period24x7
notification_optionsw,u,c,r
contact_groupssagroup
}
defineservice{
host_namenagios-server
service_descriptiontotal_procs
check_commandcheck_nrpe!check_total_procs
max_check_attempts4
normal_check_interval3
retry_check_interval2
check_period24x7
notification_interval10
notification_period24x7
notification_optionsw,u,c,r
contact_groupssagroup
}
解释:
●主机名host_name,必需是主机设置装备摆设文件hosts.cfg中界说的主机。
●检讨用的敕令check_command,在敕令设置装备摆设文件中界说或在nrpe设置装备摆设文件中有界说。
●最年夜重试次数max_check_attempts普通设置为3-4次比拟好,如许不会由于收集闪断少焉而产生误报。
●检讨距离和重试检讨距离的单元是分钟。
●告诉距离指探测到毛病今后,每隔若干时光发送一次报警信息。它的单元是分钟。
●告诉选项跟办事界说设置装备摆设文件雷同。
●接洽组contact_groups由设置装备摆设文件contactgroup.cfg界说。
●检讨主机资本须要装置和设置装备摆设nrpe,这个进程在前面完成。
5、安排nrpe
(一)装置nrpe
tarzxvfnrpe-2.8.1.tar.gz
cdnrpe-2.8.1
./configureCprefix=/usr/local/nrpe
make
makeinstall
注:假如在其他被监控机装置nrpe,须要添加体系用户nagios.
(二)复制文件
装置完nrpe后,在装置目次/usr/local/nrpe/libexec只要一个文件check_nrpe,而在nagios插件目次,却缺乏这个文件,是以须要把这个文件复制到nagios插件目次;异样,由于nrpe须要挪用的诸如check_disk等插件在本身的目次没有,可是这些文件确是nagios插件所存在的,所以也须要从nagios目次复制一份过去。我们把复制进程罗列出来:
cp/usr/local/nrpe/libexec/check_nrpe/usr/local/nagios/libexec
cp/usr/local/nagios/libexec/check_disk/usr/local/nrpe/libexec
cp/usr/local/nagios/libexec/check_load/usr/local/nrpe/libexec
cp/usr/local/nagios/libexec/check_ping/usr/local/nrpe/libexec
cp/usr/local/nagios/libexec/check_procs/usr/local/nrpe/libexec
(三)设置装备摆设nrpe
装置完nrpe今后,在装置目次并没有可用的设置装备摆设文件,但我们只需把解压目次的样例文件复制到装置目次,然后修正这个文件.
1、mkdir/usr/local/nrpe/etc
2、cpsample-config/nrpe.cfg/usr/local/nrpe/etc
3、修正设置装备摆设文件/usr/local/nrpe/etc/nrpe.cfg.改过的处所用粗体显示:
pid_file=/var/run/nrpe.pid
server_port=5666
#以零丁的守护过程运转
server_address=59.26.240.63
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1,59.26.240.63
dont_blame_nrpe=0
debug=0 |
|