|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger、mail、nslookup
<divclass="start">1、Nagios简介
Nagios是一款开源的电脑体系和收集监督工具,能无效监控Windows、Linux和Unix的主机形态,互换机路由器等收集设置,打印机等。在体系或服务形态非常时收回邮件或短信报警第一工夫关照网站运维职员,在形态恢复后收回一般的邮件或短信关照。
Nagios原名为NetSaint,由EthanGalstad开辟并保护至今。NAGIOS是一个缩写情势:"NagiosAintGonnaInsistOnSainthood"Sainthood翻译为圣徒,而"Agios"是"saint"的希腊暗示办法。Nagios被开辟在Linux下利用,但在Unix下也事情得十分好。
次要功效
收集服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)主机资本监控(CPUload、diskusage、systemlogs),也包含Windows主机(利用NSClient++plugin)能够指定本人编写的Plugin经由过程收集搜集数据来监控任何情形(温度、告诫……)能够经由过程设置Nagios远程实行插件远程实行剧本远程监控撑持SSH或SSL加通道体例举行监控复杂的plugin计划同意用户很简单的开辟本人必要的反省服务,撑持良多开辟言语(shellscripts、C++、Perl、ruby、Python、PHP、C#等)包括良多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)可并行服务反省可以界说收集主机的条理,同意逐级反省,就是从父主机入手下手向下反省当服务或主机呈现成绩时收回公告,可经由过程email,pager,sms或恣意用户自界说的plugin举行关照可以自界说事务处置机制从头激活出成绩的服务或主机主动日记轮回撑持冗余监控包含Web界面能够检察以后收集形态,关照,成绩汗青,日记文件等2、Nagios事情道理
Nagios的功效是监控服务和主机,可是他本身其实不包含这部分功效,一切的监控、检测功效都是经由过程各类插件来完成的。
启动Nagios后,它会周期性的主动挪用插件往检测服务器形态,同时Nagios会保持一个行列,一切插件前往来的形态信息都进进行列,Nagios每次都从队首入手下手读失信息,并举行处置后,把形态了局经由过程web显现出来。
Nagios供应了很多插件,使用这些插件能够便利的监控良多服务形态。安装完成后,在nagios主目次下的/libexec里放有nagios自带的可使用的一切插件,如,check_disk是反省磁盘空间的插件,check_load是反省CPU负载的,等等。每个插件能够经由过程运转./check_xxxCh来检察其利用办法和功效。
Nagios能够辨认4种形态前往信息,即0(OK)暗示形态一般/绿色、1(WARNING)暗示呈现告诫/黄色、2(CRITICAL)暗示呈现十分严峻的毛病/白色、3(UNKNOWN)暗示未知毛病/深黄色。Nagios依据插件前往来的值,来判别监控工具的形态,并经由过程web显现出来,以供办理员实时发明妨碍。
四种监控形态
再说报警功效,假如监控体系发明成绩不克不及报警那就没成心义了,以是报警也是nagios很主要的功效之一。可是,一样的,Nagios本身也没有报警部分的代码,乃至没有插件,而是交给用户大概其他相干开源项目组往完成的。
Nagios安装,是指基础平台,也就是Nagios软件包的安装。它是监控系统的框架,也是一切监控的基本。
翻开Nagios官方的文档,会发明Nagios基础上没有甚么依附包,只需求体系是Linux大概其他Nagios撑持的体系。不外假如你没有安装apache(http服务),那末你就没有那末直不雅的界面来检察监控信息了,以是apache临时算是一个条件前提。关于apache的安装,网上有良多,照着安装就是了。安装以后要反省一下是不是能够一般事情。
晓得Nagios是怎样经由过程插件来办理服务器工具后,如今入手下手研讨它是怎样办理远端服务器工具的。Nagios体系供应了一个插件NRPE。Nagios经由过程周期性的运转它来取得远端服务器的各类形态信息。它们之间的干系以下图所示:
Nagios经由过程NRPE来远端办理服务
1.Nagios实行安装在它内里的check_nrpe插件,并告知check_nrpe往检测哪些服务。
2.经由过程SSL,check_nrpe毗连远端机子上的NRPEdaemon
3.NRPE运转当地的各类插件往检测当地的服务和形态(check_disk,..etc)
4.最初,NRPE把检测的了局传给主机真个check_nrpe,check_nrpe再把了局送到Nagios形态行列中。
5.Nagios顺次读取行列中的信息,再把了局显现出来。
3、实行情况
HostNameOSIPSoftwareNagios-ServerCentOSrelease6.3(Final)192.168.1.108Apache、Php、Nagios、nagios-pluginsNagios-LinuxCentOSrelease5.8(Final)192.168.1.111nagios-plugins、nrpeNagios-WindowsWindowsXP192.168.1.113NSClient++Server安装了nagios软件,对监控的数据做处置,而且供应web界面检察和办理。固然也能够对本机本身的信息举行监控。
Client安装了NRPE等客户端,依据监控机的哀求实行监控,然后将了局回传给监控机。
防火墙已封闭/iptables:Firewallisnotrunning.
SELINUX=disabled
4、实行方针
5、Nagios服务端安装
5.1基本撑持套件:gccglibcglibc-commongdgd-develxinetdopenssl-devel
#rpm-qgccglibcglibc-commongdgd-develxinetdopenssl-devel
假如体系中没有这些套件,利用yum安装
#yuminstall-ygccglibcglibc-commongdgd-develxinetdopenssl-devel
5.2创立nagios用户和用户组- [color=#000000]#useradd-s/sbin/nologinnagios#mkdir/usr/local/nagios#chown-Rnagios.nagios/usr/local/nagios[/color]
复制代码
检察nagios目次的权限
#ll-d/usr/local/nagios/
5.3编译安装Nagios
#wgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz
#tarzxvfnagios-3.4.3.tar.gz
#cdnagios
#./configure--prefix=/usr/local/nagios
#makeall
#makeinstall
#makeinstall-init
#makeinstall-commandmode
#makeinstall-config
#chkconfig--addnagios
#chkconfig--level35nagioson
#chkconfig--listnagios
5.4考证程序是不是被准确安装
切换目次到安装路径(这里是/usr/local/nagios),看是不是存在etc、bin、sbin、share、var这五个目次,假如存在则能够标明程序被准确的安装到体系了。Nagios各个目次用处申明以下:
binNagios可实行程序地点目次etcNagios设置文件地点目次sbinNagiosCGI文件地点目次,也就是实行内部命令所需文件地点的目次shareNagios网页文件地点的目次libexecNagios内部插件地点目次varNagios日记文件、lock等文件地点的目次var/archivesNagios日记主动回档目次var/rw用来寄存内部命令文件的目次5.5安装Nagios插件
#wgethttp://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz
#tarzxvfnagios-plugins-1.4.16.tar.gz
#cdnagios-plugins-1.4.16
#./configure--prefix=/usr/local/nagios
#make&&makeinstall
5.6安装与设置Apache和Php
Apache和Php不是安装nagios所必需的,可是nagios供应了web监控界面,经由过程web监控界面能够明晰的看到被监控主机、资本的运转形态,因而,安装一个web服务是很需要的。
必要注重的是,nagios在nagios3.1.x版本今后,设置web监控界面时必要php的撑持。这里我们下载的nagios版本为nagios-3.4.3,因而在编译安装完成apache后,还必要编译php模块,这里拔取的php版本为php5.4.10。
a.安装Apache
#wgethttp://labs.mop.com/apache-mirror//httpd/httpd-2.2.23.tar.gz
#tarzxvfhttpd-2.2.23.tar.gz
#cdhttpd-2.2.23
#./configure--prefix=/usr/local/apache2
#make&&makeinstall
若呈现毛病:
则在编译时进加--with-included-apr便可办理。
b.安装Php
#wgethttp://cn2.php.net/distributions/php-5.4.10.tar.gz
#tarzxvfphp-5.4.10.tar.gz
#cdphp-5.4.10
#./configure--prefix=/usr/local/php--with-apxs2=/usr/local/apache2/bin/apxs
#make&&makeinstall
c.设置apache
找到apache的设置文件/usr/local/apache2/conf/httpd.conf
找到:- [color=#000000]UserdaemonGroupdaemon[/color]
复制代码 修正为- [color=#000000]UsernagiosGroupnagios[/color]
复制代码 然后找到- [color=#0000ff]<[/color][color=#800000]IfModule[/color][color=#ff0000]dir_module[/color][color=#0000ff]>[/color][color=#000000] DirectoryIndexindex.html[/color][color=#0000ff]</[/color][color=#800000]IfModule[/color][color=#0000ff]>[/color]
复制代码 修正为- [color=#0000ff]<[/color][color=#800000]IfModule[/color][color=#ff0000]dir_module[/color][color=#0000ff]>[/color][color=#000000] DirectoryIndexindex.htmlindex.php[/color][color=#0000ff]</[/color][color=#800000]IfModule[/color][color=#0000ff]>[/color]
复制代码 接着增添以下内容:- AddTypeapplication/x-httpd-php.php
复制代码 为了平安起见,一样平常情形下要让nagios的web监控页面必需经由受权才干会见,这必要增添考证设置,即在httpd.conf文件最初增加以下信息:
代码代码以下:
#settingfornagios
ScriptAlias/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>
d.创立apache目次考证文件
在下面的设置中,指定了目次考证文件htpasswd,上面要创立这个文件:
#/usr/local/apache2/bin/htpasswd-c/usr/local/nagios/etc/htpasswddavid
如许就在/usr/local/nagios/etc目次下创立了一个htpasswd考证文件,当经由过程http://192.168.1.108/nagios/会见时就必要输出用户名和暗码了。
e.检察认证文件的内容
#cat/usr/local/nagios/etc/htpasswd
f.启动apache服务
#/usr/local/apache2/bin/apachectlstart
到这里nagios的安装也就基础完成了,你能够经由过程web来会见了。
6、设置Nagios
Nagios次要用于监控一台大概多台当地主机及远程的各类信息,包含本机资本及对外的服务等。默许的Nagios设置没有任何监控内容,仅是一些模板文件。若要让Nagios供应服务,就必需修正设置文件,增添要监控的主机和服务,上面将具体先容。
6.1默许设置文件先容
Nagios安装终了后,默许的设置文件在/usr/local/nagios/etc目次下。
每一个文件或目次寄义以下表所示:
文件名或目次名用处cgi.cfg把持CGI会见的设置文件nagios.cfgNagios主设置文件resource.cfg变量界说文件,又称为资本文件,在些文件中界说变量,以便由其他设置文件援用,如$USER1$objectsobjects是一个目次,在此目次下有良多设置文件模板,用于界说Nagios工具objects/commands.cfg命令界说设置文件,个中界说的命令能够被其他设置文件援用objects/contacts.cfg界说接洽人和接洽人组的设置文件objects/localhost.cfg界说监控当地主机的设置文件objects/printer.cfg界说监控打印机的一个设置文件模板,默许没有启用此文件objects/switch.cfg界说监控路由器的一个设置文件模板,默许没有启用此文件objects/templates.cfg界说主机和服务的一个模板设置文件,能够在其他设置文件中援用objects/timeperiods.cfg界说Nagios监控工夫段的设置文件objects/windows.cfg监控Windows主机的一个设置文件模板,默许没有启用此文件6.2设置文件之间的干系
在nagios的设置过程当中触及到的几个界说有:主机、主机组,服务、服务组,接洽人、接洽人组,监控工夫,监控命令等,从这些界说能够看出,nagios各个设置文件之间是互为联系关系,相互援用的。
乐成设置出一台nagios监控体系,必需要弄分明每一个设置文件之间依附与被依附的干系,最主要的有四点:
第一:界说监控哪些主机、主机组、服务和服务组;
第二:界说这个监控要用甚么命令完成;
第三:界说监控的工夫段;
第四:界说主机或服务呈现成绩时要关照的接洽人和接洽人组。
6.3设置Nagios
为了能更分明的申明成绩,同时也为了保护便利,倡议将nagios各个界说工具创立自力的设置文件:
创立hosts.cfg文件来界说主机和主机组创立services.cfg文件来界说服务用默许的contacts.cfg文件来界说接洽人和接洽人组用默许的commands.cfg文件来界说命令用默许的timeperiods.cfg来界说监控工夫段用默许的templates.cfg文件作为资本援用文件a.templates.cfg文件
nagios次要用于监控主机资本和服务,在nagios设置中称为工具,为了不用反复界说一些监控工具,Nagios引进了一个模板设置文件,将一些个性的属性界说成模板,以便于屡次援用。这就是templates.cfg的感化。
上面具体先容下templates.cfg文件中每一个参数的寄义:
代码代码以下:
definecontact{
namegeneric-contact;接洽人称号
service_notification_period24x7;当服务呈现非常时,发送关照的工夫段,这个工夫段"24x7"在timeperiods.cfg文件中界说
host_notification_period24x7;当主机呈现非常时,发送关照的工夫段,这个工夫段"24x7"在timeperiods.cfg文件中界说
service_notification_optionsw,u,c,r;这个界说的是“关照能够被收回的情形”。w即warn,暗示告诫形态,u即unknown,暗示不明形态;
;c即criticle,暗示告急形态,r即recover,暗示恢复形态;
;也就是在服务呈现告诫形态、未知形态、告急形态和从头恢复形态时都发送关照给利用者。
host_notification_optionsd,u,r;界说主机在甚么形态下必要发送关照给利用者,d即down,暗示宕机形态;
;u即unreachable,暗示不成抵达形态,r即recovery,暗示从头恢复形态。
service_notification_commandsnotify-service-by-email;服务妨碍时,发送关照的体例,能够是邮件和短信,这里发送的体例是邮件;
;个中“notify-service-by-email”在commands.cfg文件中界说。
host_notification_commandsnotify-host-by-email;主机妨碍时,发送关照的体例,能够是邮件和短信,这里发送的体例是邮件;
;个中“notify-host-by-email”在commands.cfg文件中界说。
register0;DONTREGISTERTHISDEFINITION-ITSNOTAREALCONTACT,JUSTATEMPLATE!
}
definehost{
namegeneric-host;主机称号,这里的主机名,并非间接对应到真正呆板的主机名;
;乃是对应到在主机设置文件里所设定的主机名。
notifications_enabled1;Hostnotificationsareenabled
event_handler_enabled1;Hosteventhandlerisenabled
flap_detection_enabled1;Flapdetectionisenabled
failure_prediction_enabled1;Failurepredictionisenabled
process_perf_data1;其值能够为0或1,其感化为是不是启用Nagios的数据输入功效;
;假如将此项赋值为1,那末Nagios就会将搜集的数据写进某个文件中,以备提取。
retain_status_information1;Retainstatusinformationacrossprogramrestarts
retain_nonstatus_information1;Retainnon-statusinformationacrossprogramrestarts
notification_period24x7;指定“发送关照”的工夫段,也就是能够在甚么时分发送关照给利用者。
register0;DONTREGISTERTHISDEFINITION-ITSNOTAREALHOST,JUSTATEMPLATE!
}
definehost{
namelinux-server;主机称号
usegeneric-host;use暗示援用,也就是将主机generic-host的一切属性援用到linux-server中来;
;在nagios设置中,良多情形下会用到援用。
check_period24x7;这里的check_period告知nagios反省主机的工夫段
check_interval5;nagios对主机的反省工夫距离,这里是5分钟。
retry_interval1;重试反省工夫距离,单元是分钟。
max_check_attempts10;nagios对主机的最年夜反省次数,也就是nagios在反省发明某主机非常时,其实不即刻判别为非常情况;
;而是多试几回,由于有大概只是一时收集太拥堵,或是一些其他缘故原由,让主机遭到了一点影响;
;这里的10就是最多试10次的意义。
check_commandcheck-host-alive;指定反省主机形态的命令,个中“check-host-alive”在commands.cfg文件中界说。
notification_period24x7;主机妨碍时,发送关照的工夫局限,个中“workhours”在timeperiods.cfg中举行了界说;
;上面会连续讲到。
notification_interval10;在主机呈现非常后,妨碍一向没有办理,nagios再次对利用者收回关照的工夫。单元是分钟;
;假如你以为,一切的事务只必要一次关照就够了,能够把这里的选项设为0
notification_optionsd,u,r;界说主机在甚么形态下能够发送关照给利用者,d即down,暗示宕机形态;
;u即unreachable,暗示不成抵达形态;
;r即recovery,暗示从头恢复形态。
contact_groupsts;指定接洽人组,这个“admins”在contacts.cfg文件中界说。
register0;DONTREGISTERTHISDEFINITION-ITSNOTAREALHOST,JUSTATEMPLATE!
}
definehost{
namewindows-server;Thenameofthishosttemplate
usegeneric-host;Inheritdefaultvaluesfromthegeneric-hosttemplate
check_period24x7;Bydefault,Windowsserversaremonitoredroundtheclock
check_interval5;Activelychecktheserverevery5minutes
retry_interval1;Schedulehostcheckretriesat1minuteintervals
max_check_attempts10;Checkeachserver10times(max)
check_commandcheck-host-alive;Defaultcommandtocheckifserversare"alive"
notification_period24x7;Sendnotificationoutatanytime-dayornight
notification_interval10;Resendnotificationsevery30minutes
notification_optionsd,r;Onlysendnotificationsforspecifichoststates
contact_groupsts;Notificationsgetsenttotheadminsbydefault
hostgroupswindows-servers;HostgroupsthatWindowsserversshouldbeamemberof
register0;DONTREGISTERTHIS-ITSJUSTATEMPLATE
}
defineservice{
namegeneric-service;界说一个服务称号
active_checks_enabled1;Activeservicechecksareenabled
passive_checks_enabled1;Passiveservicechecksareenabled/accepted
parallelize_check1;Activeservicechecksshouldbeparallelized;
;(disablingthiscanleadtomajorperformanceproblems)
obsess_over_service1;Weshouldobsessoverthisservice(ifnecessary)
check_freshness0;DefaultistoNOTcheckservicefreshness
notifications_enabled1;Servicenotificationsareenabled
event_handler_enabled1;Serviceeventhandlerisenabled
flap_detection_enabled1;Flapdetectionisenabled
failure_prediction_enabled1;Failurepredictionisenabled
process_perf_data1;Processperformancedata
retain_status_information1;Retainstatusinformationacrossprogramrestarts
retain_nonstatus_information1;Retainnon-statusinformationacrossprogramrestarts
is_volatile0;Theserviceisnotvolatile
check_period24x7;这里的check_period告知nagios反省服务的工夫段。
max_check_attempts3;nagios对服务的最年夜反省次数。
normal_check_interval5;此选项是用来设置服务反省工夫距离,也就是说,nagios这一次反省和下一次反省之间所隔的工夫;
;这里是5分钟。
retry_check_interval2;重试反省工夫距离,单元是分钟。
contact_groupsts;指定接洽人组
notification_optionsw,u,c,r;这个界说的是“关照能够被收回的情形”。w即warn,暗示告诫形态;
;u即unknown,暗示不明形态;
;c即criticle,暗示告急形态,r即recover,暗示恢复形态;
;也就是在服务呈现告诫形态、未知形态、告急形态和从头恢复后都发送关照给利用者。
notification_interval10;Re-notifyaboutserviceproblemseveryhour
notification_period24x7;指定“发送关照”的工夫段,也就是能够在甚么时分发送关照给利用者。
register0;DONTREGISTERTHISDEFINITION-ITSNOTAREALSERVICE,JUSTATEMPLATE!
}
defineservice{
namelocal-service;Thenameofthisservicetemplate
usegeneric-service;Inheritdefaultvaluesfromthegeneric-servicedefinition
max_check_attempts4;Re-checktheserviceupto4timesinordertodetermineitsfinal(hard)state
normal_check_interval5;Checktheserviceevery5minutesundernormalconditions
retry_check_interval1;Re-checktheserviceeveryminuteuntilahardstatecanbedetermined
register0;DONTREGISTERTHISDEFINITION-ITSNOTAREALSERVICE,JUSTATEMPLATE!
}
resource.cfg是nagios的变量界说文件,文件内容只要一行:- $USER1$=/usr/local/nagios/libexec
复制代码 个中,变量$USER1$指定了安装nagios插件的路径,假如把插件安装在了别的路径,只需在这里举行修正便可。必要注重的是,变量必需先界说,然后才干在别的设置文件中举行援用。
c.commands.cfg文件
此文件默许是存在的,无需修正便可利用,固然假如有新的命令必要到场时,在此文件举行增加便可。
代码代码以下:
#notify-host-by-email命令的界说
definecommand{
command_namenotify-host-by-email#命令称号,即界说了一个主机非常时发送邮件的命令。
command_line/usr/bin/printf"%b""*****Nagios*****
NotificationType:$NOTIFICATIONTYPE$
Host:$HOSTNAME$
State:$HOSTSTATE$
Address:$HOSTADDRESS$
Info:$HOSTOUTPUT$
Date/Time:$LONGDATETIME$
"|/bin/mail-s"**$NOTIFICATIONTYPE$HostAlert:$HOSTNAME$is$HOSTSTATE$**"$CONTACTEMAIL$#命令详细的实行体例。
}
#notify-service-by-email命令的界说
definecommand{
command_namenotify-service-by-email#命令称号,即界说了一个服务非常时发送邮件的命令
command_line/usr/bin/printf"%b""*****Nagios*****
NotificationType:$NOTIFICATIONTYPE$
Service:$SERVICEDESC$
Host:$HOSTALIAS$
Address:$HOSTADDRESS$
State:$SERVICESTATE$
Date/Time:$LONGDATETIME$
AdditionalInfo:
$SERVICEOUTPUT$
"|/bin/mail-s"**$NOTIFICATIONTYPE$ServiceAlert:$HOSTALIAS$/$SERVICEDESC$is$SERVICESTATE$**"$CONTACTEMAIL$
}
#check-host-alive命令的界说
definecommand{
command_namecheck-host-alive#命令称号,用来检测主机形态。
command_line$USER1$/check_ping-H$HOSTADDRESS$-w3000.0,80%-c5000.0,100%-p5
#这里的变量$USER1$在resource.cfg文件中举行界说,即$USER1$=/usr/local/nagios/libexec;
#那末check_ping的完全路径为/usr/local/nagios/libexec/check_ping;
#“-w3000.0,80%”中“-w”申明前面的一对值对应的是“WARNING”形态,“80%”是其临界值。
#“-c5000.0,100%”中“-c”申明前面的一对值对应的是“CRITICAL”,“100%”是其临界值。
#“-p1”申明每次探测发送一个包。
}
definecommand{
command_namecheck_local_disk
command_line$USER1$/check_disk-w$ARG1$-c$ARG2$-p$ARG3$#$ARG1$是指在挪用这个命令的时分,命令前面的第一个参数。
}
definecommand{
command_namecheck_local_load
command_line$USER1$/check_load-w$ARG1$-c$ARG2$
}
definecommand{
command_namecheck_local_procs
command_line$USER1$/check_procs-w$ARG1$-c$ARG2$-s$ARG3$
}
definecommand{
command_namecheck_local_users
command_line$USER1$/check_users-w$ARG1$-c$ARG2$
}
definecommand{
command_namecheck_local_swap
command_line$USER1$/check_swap-w$ARG1$-c$ARG2$
}
definecommand{
command_namecheck_ftp
command_line$USER1$/check_ftp-H$HOSTADDRESS$$ARG1$
}
definecommand{
command_namecheck_http
command_line$USER1$/check_http-I$HOSTADDRESS$$ARG1$
}
definecommand{
command_namecheck_ssh
command_line$USER1$/check_ssh$ARG1$$HOSTADDRESS$
}
definecommand{
command_namecheck_ping
command_line$USER1$/check_ping-H$HOSTADDRESS$-w$ARG1$-c$ARG2$-p5
}
definecommand{
command_namecheck_nt
command_line$USER1$/check_nt-H$HOSTADDRESS$-p12489-v$ARG1$$ARG2$
}
d.hosts.cfg文件
此文件默许不存在,必要手动创立,hosts.cfg次要用来指定被监控的主机地点和相干属性信息,依据实行方针设置以下:
代码代码以下:
definehost{
uselinux-server#援用主机linux-server的属性信息,linux-server主机在templates.cfg文件中举行了界说。
host_nameNagios-Linux#主机名
aliasNagios-Linux#主机别号
address192.168.1.111#被监控的主机地点,这个地点能够是ip,也能够是域名。
}
#界说一个主机组
definehostgroup{
hostgroup_namebsmart-servers#主机组称号,能够随便指定。
aliasbsmartservers#主机组别号
membersNagios-Linux#主机构成员,个中“Nagios-Linux”就是下面界说的主机。
}
注重:在/usr/local/nagios/etc/objects下默许有localhost.cfg和windows.cfg这两个设置文件,localhost.cfg文件是界说监控主机自己的,windows.cfg文件是界说windows主机的,个中包含了对host和相干services的界说。以是在本次实行中,将间接在localhost.cfg中界说监控主机(Nagios-Server),在windows.cfg中界说windows主机(Nagios-Windows)。依据本人的必要修正个中的相干设置,具体以下:
localhost.cfg
代码代码以下:
definehost{
uselinux-server;Nameofhosttemplatetouse
;Thishostdefinitionwillinheritallvariablesthataredefined
;in(orinheritedby)thelinux-serverhosttemplatedefinition.
host_nameNagios-Server
aliasNagios-Server
address127.0.0.1
}
definehostgroup{
hostgroup_namelinux-servers;Thenameofthehostgroup
aliasLinuxServers;Longnameofthegroup
membersNagios-Server;Commaseparatedlistofhoststhatbelongtothisgroup
}
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_nameNagios-Server
service_descriptionPING
check_commandcheck_ping!100.0,20%!500.0,60%
}
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_nameNagios-Server
service_descriptionRootPartition
check_commandcheck_local_disk!20%!10%!/
}
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_nameNagios-Server
service_descriptionCurrentUsers
check_commandcheck_local_users!20!50
}
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_nameNagios-Server
service_descriptionTotalProcesses
check_commandcheck_local_procs!250!400!RSZDT
}
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_nameNagios-Server
service_descriptionCurrentLoad
check_commandcheck_local_load!5.0,4.0,3.0!10.0,6.0,4.0
}
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_nameNagios-Server
service_descriptionSwapUsage
check_commandcheck_local_swap!20!10
}
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_nameNagios-Server
service_descriptionSSH
check_commandcheck_ssh
notifications_enabled0
}
defineservice{
uselocal-service;Nameofservicetemplatetouse
host_nameNagios-Server
service_descriptionHTTP
check_commandcheck_http
notifications_enabled0
}
windows.cfg
代码代码以下:
definehost{
usewindows-server;Inheritdefaultvaluesfromatemplate
host_nameNagios-Windows;Thenameweregivingtothishost
aliasMyWindowsServer;Alongernameassociatedwiththehost
address192.168.1.113;IPaddressofthehost
}
definehostgroup{
hostgroup_namewindows-servers;Thenameofthehostgroup
aliasWindowsServers;Longnameofthegroup
}
defineservice{
usegeneric-service
host_nameNagios-Windows
service_descriptionNSClient++Version
check_commandcheck_nt!CLIENTVERSION
}
defineservice{
usegeneric-service
host_nameNagios-Windows
service_descriptionUptime
check_commandcheck_nt!UPTIME
}
defineservice{
usegeneric-service
host_nameNagios-Windows
service_descriptionCPULoad
check_commandcheck_nt!CPULOAD!-l5,80,90
}
defineservice{
usegeneric-service
host_nameNagios-Windows
service_descriptionMemoryUsage
check_commandcheck_nt!MEMUSE!-w80-c90
}
defineservice{
usegeneric-service
host_nameNagios-Windows
service_descriptionC:DriveSpace
check_commandcheck_nt!USEDDISKSPACE!-lc-w80-c90
}
defineservice{
usegeneric-service
host_nameNagios-Windows
service_descriptionW3SVC
check_commandcheck_nt!SERVICESTATE!-dSHOWALL-lW3SVC
}
defineservice{
usegeneric-service
host_nameNagios-Windows
service_descriptionExplorer
check_commandcheck_nt!PROCSTATE!-dSHOWALL-lExplorer.exe
}
e.services.cfg文件
此文件默许也不存在,必要手动创立,services.cfg文件次要用于界说监控的服务和主机资本,比方监控http服务、ftp服务、主机磁盘空间、主机体系负载等等。Nagios-Server和Nagios-Windows相干服务已在响应的设置文件中界说,以是这里只必要界说Nagios-Linux相干服务便可,这里只界说一个检测是不是存活的服务来考证设置文件的准确性,其他服务的界说将在前面讲到。
代码代码以下:
defineservice{
uselocal-service#援用local-service服务的属性值,local-service在templates.cfg文件中举行了界说。
host_nameNagios-Linux#指定要监控哪一个主机上的服务,“Nagios-Server”在hosts.cfg文件中举行了界说。
service_descriptioncheck-host-alive#对监控服务内容的形貌,以供保护职员参考。
check_commandcheck-host-alive#指定反省的命令。
}
f.contacts.cfg文件
contacts.cfg是一个界说接洽人和接洽人组的设置文件,当监控的主机大概服务呈现妨碍,nagios会经由过程指定的关照体例(邮件大概短信)将信息发给这里指定的接洽人大概利用者。
代码代码以下:
definecontact{
contact_nameDavid#接洽人的称号,这个中央不要有空格
usegeneric-contact#援用generic-contact的属性信息,个中“generic-contact”在templates.cfg文件中举行界说
aliasNagiosAdmin
emaildavid.tang@bsmart.cn
}
definecontactgroup{
contactgroup_namets#接洽人组的称号,一样不克不及空格
aliasTechnicalSupport#接洽人组形貌
membersDavid#接洽人构成员,个中“david”就是下面界说的接洽人,假如有多个接洽人则以逗号相隔
}
此文件只需用于界说监控的工夫段,上面是一个设置好的实例:
代码代码以下:
#上面是界说一个名为24x7的工夫段,即监控一切工夫段
definetimeperiod{
timeperiod_name24x7#工夫段的称号,这个中央不要有空格
alias24HoursADay,7DaysAWeek
sunday00:00-24:00
monday00:00-24:00
tuesday00:00-24:00
wednesday00:00-24:00
thursday00:00-24:00
friday00:00-24:00
saturday00:00-24:00
}
#上面是界说一个名为workhours的工夫段,即事情工夫段。
definetimeperiod{
timeperiod_nameworkhours
aliasNormalWorkHours
monday09:00-17:00
tuesday09:00-17:00
wednesday09:00-17:00
thursday09:00-17:00
friday09:00-17:00
}
h.cgi.cfg文件
此文件用来把持相干cgi剧本,假如想在nagios的web监控界面实行cgi剧本,比方重启nagios历程、封闭nagios关照、中断nagios主机检测等,这时候就必要设置cgi.cfg文件了。
因为nagios的web监控界面考证用户为david,以是只需在cgi.cfg文件中增加此用户的实行权限就能够了,必要修正的设置信息以下:
代码代码以下:
default_user_name=david
authorized_for_system_information=nagiosadmin,david
authorized_for_configuration_information=nagiosadmin,david
authorized_for_system_commands=david
authorized_for_all_services=nagiosadmin,david
authorized_for_all_hosts=nagiosadmin,david
authorized_for_all_service_commands=nagiosadmin,david
authorized_for_all_host_commands=nagiosadmin,david
i.nagios.cfg文件
nagios.cfg默许的路径为/usr/local/nagios/etc/nagios.cfg,是nagios的中心设置文件,一切的工具设置文件都必需在这个文件中举行界说才干发扬其感化,这里只需将工具设置文件在Nagios.cfg文件中举行援用便可。
代码代码以下:
log_pold=/usr/local/nagios/var/nagios.log#界说nagios日记文件的路径
cfg_file=/usr/local/nagios/etc/objects/commands.cfg#“cfg_file”变量用来援用工具设置文件,假如有更多的工具设置文件,在这里顺次增加便可。
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg#本机设置文件
cfg_file=/usr/local/nagios/etc/objects/windows.cfg#windows主机设置文件
object_cache_file=/usr/local/nagios/var/objects.cache#该变量用于指定一个“一切工具设置文件”的正本文件,大概叫工具缓冲文件
precached_object_file=/usr/local/nagios/var/objects.precache
resource_file=/usr/local/nagios/etc/resource.cfg#该变量用于指定nagios资本文件的路径,能够在nagios.cfg中界说多个资本文件。
status_file=/usr/local/nagios/var/status.dat#该变量用于界说一个形态文件,此文件用于保留nagios确当前形态、正文和宕机信息等。
status_update_interval=10#该变量用于界说形态文件(即status.dat)的更新工夫距离,单元是秒,最小更新距离是1秒。
nagios_user=nagios#该变量指定了Nagios历程利用哪一个用户运转。
nagios_group=nagios#该变量用于指定Nagios利用哪一个用户组运转。
check_external_commands=1#该变量用于设置是不是同意nagios在web监控界面运转cgi命令;
#也就是是不是同意nagios在web界面下实行重启nagios、中断主机/服务反省等操纵;
#“1”为运转,“0”为不同意。
command_check_interval=10s#该变量用于设置nagios对内部命令检测的工夫距离,假如指定了一个数字加一个"s"(如10s);
#那末内部检测命令的距离是这个数值以秒为单元的工夫距离;
#假如没有效"s",那末内部检测命令的距离是以这个数值的“工夫单元”的工夫距离。
interval_length=60#该变量指定了nagios的工夫单元,默许值是60秒,也就是1分钟;
#即在nagios设置中一切的工夫单元都是分钟。
6.4考证Nagios设置文件的准确性
Nagios在考证设置文件方面做的十分到位,只需经由过程一个命令便可完成:- #/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg
复制代码
Nagios供应的这个考证功效十分有效,在毛病信息中一般会打印堕落误的设置文件和文件中的哪一行,这使得nagios的设置变得十分简单,报警信息一般是能够疏忽的,由于一样平常那些只是倡议性的。
看到下面这些信息就申明没成绩了,然后启动Nagios服务。
7、Nagios的启动与中断
7.1启动Nagios
a.经由过程初始化剧本启动nagios- #/etc/init.d/nagiosstart
- or
- #servicenagiosstart
复制代码 b.手工体例启动nagios
经由过程nagios命令的“-d”参数来启动nagios保卫历程:- #/usr/local/nagios/bin/nagios-d/usr/local/nagios/etc/nagios.cfg
复制代码 7.2重启Nagios
当修正了设置文件让其失效时,必要重启/重载Nagios服务。
a.经由过程初始化剧本来重启nagios- #/etc/init.d/nagiosreload
- or
- #/etc/init.d/nagiosrestart
- or
- #servicenagiosrestart
复制代码 b.经由过程web监控页重启nagios
能够经由过程web监控页的"ProcessInfo"->"RestarttheNagiosprocess"来重启nagios
c.手工体例光滑重启- #kill-HUP[color=#0000ff]<[/color][color=#800000]nagios_pid[/color][color=#0000ff]>[/color]
复制代码 7.3中断Nagios
a.经由过程初始化剧本封闭nagios服务- #/etc/init.d/nagiosstop
- or
- #servicenagiosstop
复制代码 b.经由过程web监控页中断nagios
能够经由过程web监控页的"ProcessInfo"->"ShutdowntheNagiosprocess"来中断nagios
c.手工体例中断Nagios- #kill[color=#0000ff]<[/color][color=#800000]nagios_pid[/color][color=#0000ff]>[/color]
复制代码 8、检察开端设置情形
8.1启动完成以后,登录NagiosWeb监控页http://192.168.1.108/nagios/检察相干信息。
8.2点击左面的CurrentStatus->Hosts能够看到所界说的三台主机已全体UP了。
8.3点击CurrentStatus->Services检察服务监控情形。
看到Nagios-Linux和Nagios-Server的服务形态已OK了,可是Nagios-Windows的服务形态为CRITICAL,StatusInformation提醒Connectionrefused。由于Nagios-Windows上还未安装插件,外部服务还没法检察,以是呈现这类情形。将鄙人面详细解说。
9、使用NRPE监控远程Linux上的“当地信息”
下面已对远程Linux主机是不是存活做了监控,而判别远程呆板是不是存活,我们可使用ping工具对其监测。另有一些远程主机服务,比方ftp、ssh、http,都是对外开放的服务,即便不必Nagios,我们也能够试的出来,任意找一台呆板看能不克不及会见这些服务就好了。可是关于像磁盘容量,cpu负载如许的“当地信息”,Nagios只能监测本人地点的主机,而对其他的呆板则显得有点力所不及。究竟没失掉被控主机的得当权限是不成能失掉这些信息的。为懂得决这个成绩,nagios有如许一个附加组件--“NRPE”,用它就能够完成对Linux范例主机"当地信息”的监控。
9.1NRPE事情道理
NRPE统共由两部分构成:
check_nrpe插件,位于监控主机上NRPEdaemon,运转在远程的Linux主机上(一般就是被监控机)依照上图,全部的监控历程以下:
当Nagios必要监控某个远程Linux主机的服务大概资本情形时:
Nagios会运转check_nrpe这个插件,告知它要反省甚么;check_nrpe插件会毗连到远程的NRPEdaemon,所用的体例是SSL;NRPEdaemon会运转响应的Nagios插件来实行反省;NRPEdaemon将反省的了局前往给check_nrpe插件,插件将其递交给nagios做处置。
注重:NRPEdaemon必要Nagios插件安装在远程的Linux主机上,不然,daemon不克不及做任何的监控。
9.2在被监控机(Nagios-Linux)上
a.增添用户&设定暗码
#useraddnagios
#passwdnagios
b.安装Nagios插件 - [color=#000000]#tarzxvfnagios-plugins-1.4.16.tar.gz#cdnagios-plugins-1.4.16#./configure--prefix=/usr/local/nagios#make&&makeinstall[/color]
复制代码这一步完成后会在/usr/local/nagios/下天生三个目次include、libexec和share。
修正目次权限- [color=#000000]#chownnagios.nagios/usr/local/nagios#chown-Rnagios.nagios/usr/local/nagios/libexec[/color]
复制代码
c.安装NRPE- [color=#000000]#wgethttp://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz#tarzxvfnrpe-2.13.tar.gz#cdnrpe-2.13#./configure[/color]
复制代码
接上去安装NPRE插件,daemon和示例设置文件。
c.1安装check_nrpe这个插件
#makeinstall-plugin
监控机必要安装check_nrpe这个插件,被监控机其实不必要,我们在这里安装它只是为了测试目标。
c.2安装deamon
#makeinstall-daemon
c.3安拆卸置文件
#makeinstall-daemon-config
如今再检察nagios目次就会发明有5个目次了
依照安装文档的申明,是将NRPEdeamon作为xinetd下的一个服务运转的。在如许的情形下xinetd就必需要先安装好,不外一样平常体系已默许安装了。
d.安装xinted剧本
#makeinstall-xinetd
能够看到创立了这个文件/etc/xinetd.d/nrpe。
编纂这个剧本:
在only_from后增添监控主机的IP地点。
编纂/etc/services文件,增添NRPE服务
重启xinted服务
#servicexinetdrestart
检察NRPE是不是已启动
能够看到5666端口已在监听了。
e.测试NRPE是不是则一般事情
利用下面在被监控机上安装的check_nrpe这个插件测试NRPE是不是事情一般。
#/usr/local/nagios/libexec/check_nrpe-Hlocalhost
会前往以后NRPE的版本
也就是在当地用check_nrpe毗连nrpedaemon是一般的。
注:为了前面事情的顺遂举行,注重当地防火墙要翻开5666能让内部的监控机会见。
f.check_nrpe命令用法
检察check_nrpe命令用法
#/usr/local/nagios/libexec/check_nrpeCh
能够看到用法是:
check_nrpeCH被监控的主机-c要实行的监控命令
注重:-c前面接的监控命令必需是nrpe.cfg文件中界说的。也就是NRPEdaemon只运转nrpe.cfg中所界说的命令。
g.检察NRPE的监控命令
代码代码以下:
[root@Nagiso-Linuxetc]#catnrpe.cfg|grep-v"^#"|grep-v"^$"
log_facility=daemon
pid_pold=/var/run/nrpe.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1
dont_blame_nrpe=0
debug=0
command_timeout=60
connection_timeout=300
command[check_users]=/usr/local/nagios/libexec/check_users-w5-c10
command[check_load]=/usr/local/nagios/libexec/check_load-w15,10,5-c30,25,20
command[check_sda1]=/usr/local/nagios/libexec/check_disk-w20%-c10%-p/dev/sda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs-w5-c10-sZ
command[check_total_procs]=/usr/local/nagios/libexec/check_procs-w150-c200
[root@Nagiso-Linuxetc]#
白色部分是命令名,也就是check_nrpe的-c参数能够接的内容,等号“=”前面是实践实行的插件程序(这与commands.cfg中界说命令的情势非常类似,只不外是写在了一行)。也就是说check_users就是等号前面/usr/local/nagios/libexec/check_users-w5-c10的简称。
我们能够很简单晓得下面这5行界说的命令分离是检测上岸用户数,cpu负载,sda1的容量,僵尸历程,总历程数。各条命令详细的寄义见插件用法(实行“插件程序名Ch”)。
因为-c前面只能接nrpe.cfg中界说的命令,也就是说如今我们只能用下面界说的这五条命令。我们能够在本机实行一下。
9.3在监控主机(Nagios-Server)上
之前已将Nagios运转起来了,如今要做的事变是:
安装check_nrpe插件;在commands.cfg中创立check_nrpe的命令界说,由于只要在commands.cfg中界说过的命令才干在services.cfg中利用;创立对被监控主机的监控项目;9.3.1安装check_nrpe插件- [color=#000000]#tarzxvfnrpe-2.13.tar.gz#cdnrpe-2.13#./configure#makeall#makeinstall-plugin[/color]
复制代码 只运转这一步就好了,由于只必要check_nrpe插件。
在Nagios-Linux上我们已装好了nrpe,如今我们测试一下监控机利用check_nrpe与被监控机运转的nrpedaemon之间的通讯。
看到已准确前往了NRPE的版本信息,申明统统一般。
9.3.2在commands.cfg中增添对check_nrpe的界说
#vi/usr/local/nagios/etc/objects/commands.cfg
在最初面增添以下内容:
意义以下:- [color=#000000]#check_nrpecommanddefinitiondefinecommand{command_namecheck_nrpe#界说命令称号为check_nrpe,在services.cfg中要利用这个称号.command_line$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$#这是界说实践运转的插件程序.
- #这个命令行的誊写要完整依照check_nrpe这个命令的用法,不晓得用法的就用check_nrpeCh检察.}[/color]
复制代码 <DIValign=left>-c前面带的$ARG1$参数是传给nrpedaemon实行的检测命令,之前说过了它必需是nrpe.cfg中所界说的那5条命令中的个中一条。在services.cfg中利用check_nrpe的时分要用“!”带上这个参数。
9.3.3界说对Nagios-Linux主机的监控
上面就能够在services.cfg中界说对Nagios-Linux主机的监控了。
代码代码以下:
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCurrentLoad
check_commandcheck_nrpe!check_load
}
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCheckDisksda1
check_commandcheck_nrpe!check_load
}
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionTotalProcesses
check_commandcheck_nrpe!check_total_procs
}
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCurrentUsers
check_commandcheck_nrpe!check_users
}
defineservice{
uselocal-service
host_nameNagios-Linux
service_descriptionCheckZombieProcs
check_commandcheck_nrpe!check_zombie_procs
}
另有一个义务是要监控Nagios-Linux的swap利用情形。可是在nrpe.cfg中默许没有界说这个监控功效的命令。怎样办?手动在nrpe.cfg中增加,也就是自界说NRPE命令。
如今我们要监控swap分区,假如余暇空间小于20%则为告诫形态->warning;假如小于10%则为严峻形态->critical。我们能够查得必要利用check_swap插件,完全的命令行应当是上面如许。
<P>#/usr/local/nagios/libexec/check_swap-w20%-写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。以上是我学习Linux的心得体会,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。 |
|