1、用nagios来监控网络服务器和网络服务Nagios nagios可以对服务器进行全面的监控,包括服务(apache、mysql、ntp、dns、disk、qmail和sshd等等)的状态,服务器的状态(up、down等等)。它是一个完全GPL协议的开源软件包,包含有nagios主程序和它的各个插件,配置非常灵活,可以监视的项目很多,可以自定义shell脚本进行监控服务,非常适合大型网络。 nagios的包含主动监控和被动监控。 主动检查是通过监控中心的主机发出请求,让运行在远程主机上的nrpe守护进程收集信息,然后报告它,它通过web接口把数据显示在页面上。 它的工作原理如下: 被动监控是当
2、远程被监控主机处于防火墙之内的时候,只有远程主机可以访问到监控中心,防火墙之内可以设置另外一个监控中心,远程监控中心的nagios收集服务器信息以后,和nsca报告,由naca客户端报告naca的服务器端,然后报告监控中心的nagios,通过web接口显示监控结果。 nagios的功能非常强大,http:/www.nagios.org/是它的窝,只有e文、法文和日文,没有中文,可惜啊。 我现在引用它的一段文字进行总结一下到底什么是nagios: WhatIsThis? 什么是nagios? Nagios®isasystemandnetworkmonitoringapplication.
3、Itwatcheshostsandservicesthatyouspecify,alertingyouwhenthingsgobadandwhentheygetbetter. NagioswasoriginallydesignedtorununderLinux,althoughitshouldworkundermostotherunicesaswell. SomeofthemanyfeaturesofNagios®include: Monitoringofnetworkservices(SMTP,POP3,HTTP,NNTP,PING,etc.) Monitoringofhostres
4、ources(processorload,diskusage,etc.) Simpleplugindesignthatallowsuserstoeasilydeveloptheirownservicechecks Parallelizedservicechecks Abilitytodefinenetworkhosthierarchyusingparenthosts,allowingdetectionofanddistinctionbetweenhoststhataredownandthosethatareunreachable Contactnotificationswhenserviceo
5、rhostproblemsoccurandgetresolved(viaemail,pager,oruser-definedmethod) Abilitytodefineeventhandlerstoberunduringserviceorhosteventsforproactiveproblemresolution Automaticlogfilerotation Supportforimplementingredundantmonitoringhosts Optionalwebinterfaceforviewingcurrentnetworkstatus,notificationandpr
6、oblemhistory,logfile,etc. Nagios是一个监视系统和网络的应用程序。它监视你所指定主机和服务,当监视的内容变好或者变坏时发出警告。Nagios最初是被设计在Linux平台上运行的,然而现在在其他平台上也运行良好。 Nagios的特性包括: 监视网络服务(SMTP,POP3,HTTP,NNTP,PING,等等) 监视主机资源(处理器负载、磁盘空间等) 容许用户开发自己的插件去检查自定义的项目; 通过使用“父主机”,定义网络主机的分层,容许探测主机down掉或者不可到达。 可以定义在主机或服务运行期间,事件发生以后如何处理和解决方式; 自动记录错误日志; 支持冗余监视;
7、 可选web接口,通过web页面查看当前网络状态,提示和报告故障历史,日志文件等; Nagios的系统要求: Linux、Unix等 apache GD库(1.63以上) zlib pnglib jpeglib basicicons 等,其中apache的安装在blog中已经有相关的文章,搜索一下就行;gd、zlib、pnglib和jpeglib安装比较简单,步骤: 下载tarball tarzxvfxxx.tar.gz cdxxx ./configure make&makeinstall - Nagios的安装过程(FreeBSD) - nagios的安装比较简单,复杂的是设置和配置参数的设
8、定。不过你要放松一点,毕竟我们要搞定它,不是吗?那就开始吧: 1:获得最新的安装包,http:/www.nagios.org/download 2:以root身份登录服务器,目前最新的版本是2.5: 1)nagios,版本2.5: fetchhttp:/superb- or wgethttp:/superb- 2)获得nagios插件,版本1.4.3: 3)获得图库文件: 4)NRPE,版本2.5.2 5)NSCA,版本2.6 3:切换到root用户: sudosu 4:解压缩 tarzxvfnagios-2.5.tar.gz 5:建立运行nagios的用户: addusernagios 6:
9、建立安装nagios的文件夹,并使这个文件夹的所有者为nagios:nagios mkdir/usr/local/nagios chownnagios.nagios/usr/local/nagios 7:确认web服务器的用户 可能会通过web接口执行一些命令,必须确定web服务器以哪个用户运行的,通常为:apache: grepUser/usr/local/apache2/conf/httpd.conf 8:建立命令文件组 这个新的组会包括apache的用户和nagios的用户 pwgroupaddnagcmd pwusermodapache-Gnagcmd pwusermodnagios-
10、Gnagcmd - cat/etc/group nagcmd:*:9007:apache,nagios - 8:运行配置脚本并安装nagios cdnagios-2.5 ./configure-prefix=/usr/local/nagios-with-gd-lib=/usr/local/lib-with-gd-inc=/usr/local/include - *Configurationsummaryfornagios2.507-13-2006*: GeneralOptions: - Nagiosexecutable:nagios Nagiosuser/group:nagios,nagios
11、 Commanduser/group:nagios,nagios EmbeddedPerl:no EventBroker:yes Install$prefix:/usr/local/nagios Lockfile:$prefix/var/nagios.lock Initdirectory:/usr/local/etc/rc.d HostOS:freebsd6.0 WebInterfaceOptions: - HTMLURL:http:/localhost/nagios/ CGIURL:http:/localhost/nagios/cgi-bin/ Traceroute(usedbyWAP):/
12、usr/sbin/traceroute Reviewtheoptionsaboveforaccuracy.Iftheylookokay, typemakealltocompilethemainprogramandCGIs. - makeall makeinstall makeinstall-init makeinstall-commandmode makeinstall-config 9:安装nagios-plugins tarzxvfnagios-plugins-1.4.3.tar.gz cdnagios-plugins-1.4.3 ./configure-prefix=/usr/local
13、/nagios-plugins makeall makeinstall 安装完成以后在/usr/local/nagios-plugins-plugins会产生一个libexec的目录,将该目录全部移动到/usr/local/nagios目录下即可。 mv/usr/local/nagios-plugins-plugins/libexec/usr/local/nagios/ 10:imagepak-base.tar.gz的安装 tarxvzfimagepak-base.tar.gz 解压以后是base目录 mvbase/usr/local/nagios/share/images/logos/ -
14、现在开始配置: - 1:配置web接口 假设你已经运行了apache,如果没有,请参考: http:/localhost/upload/blog.php?do-showone-tid-18.html vi/usr/local/apache2/conf/httpd.conf 添加如下内容: ScriptAlias/nagios/cgi-bin/usr/local/nagios/sbin OptionsExecCGI AllowOverrideNone Orderallow,deny Allowfromall AuthNameNagiosAccess AuthTypeBasic AuthUserF
15、ile/usr/local/nagios/etc/htpasswd.users Requirevalid-user Alias/nagios/usr/local/nagios/share OptionsNone AllowOverrideNone Orderallow,deny Allowfromall AuthNameNagiosAccess AuthTypeBasic AuthUserFile/usr/local/nagios/etc/htpasswd.users Requirevalid-user 修改完毕,保存文件,并重启apache: /usr/local/apahce2/bin/a
16、pachectlrestart 2:配置apache的BASIC认证: 生成认证密码: /usr/local/apache2/bin/htpasswdc/usr/local/nagios/etc/htpasswd.usersnagiosnagios apache接口配置完成。 开始配置nagios: cd/usr/local/nagios/etc/ 在/usr/local/nagios/etc下是nagios的配置模板文件-sample,把.cfg-sample文件全部拷贝成.cfg 例如:cpnagios.cfg-samplenagios.cfg 全部拷贝完成即可. viminimal.cf
17、g 注释所有command: 注释的方法是在每一个定义语句前面添加”#“ 修改cgi.cfg 修改use_authentication=1为use_authentication=0,即不用验证.不然有一些页面不会显示。 现在检查配置文件是否有语法错误: /usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg 如果正确,会显示以下结果: TotalWarnings:0 TotalErrors:0 否则,需要根据提示进行修改配置文件。 配置文件等会再弄。现在启动nagios /usr/local/nagios/bin/nagio
18、s-d/usr/local/nagios/etc/nagios.cfg 为了使nagios异常中断,我们使用daemontools启动: 安装daemontool: mkdir-p/package chmod1755/package cd/package fetchhttp:/cr.yp.to/daemontools/daemontools-0.76.tar.gz cdadmin/daemontools-0.76/ package/install 检查svscan进程是否启动: psaux|grepsvscan root3760.00.016360con-IW-0:00.00/bin/sh/c
19、ommand/svscanboot root4110.00.01224208con-S8Jul060:42.50svscan/service ok,启动正常了。 cd/service mkdirnagios chmod1755nagios touch./run chmod755./run virun PATH=/usr/local/bin:/usr/bin:/bin exportPATH execenv-PATH=$PATH /usr/local/nagios/bin/nagios/usr/local/nagios/etc/nagios.cfg mkdirlog cdlog touch./ru
20、n chmod755./run vi./run #!/bin/sh execsetuidgidlogadminmultilogts1000000n100./main mkdirmain chmod777main chownnagios.nagiosmain touchstatus chownnagios.nagiosstatus svc-u/service/nagios/ svstat/service/nagios/ root#psauxww|grepnagios root232760.00.11176488?I5:00PM0:01.71supervisenagios nagios342510
21、.00.323161552?S6:06PM0:00.10/usr/local/nagios/bin/nagios/usr/local/nagios/etc/nagios.cfg root# ok,现在把nagios服务做成自动启动的服务了。 通过svc命令可以启动或者停止服务。 - svcoptsservices optsisaseriesofgetopt-styleoptions.servicesconsistsofanynumberofarguments,eachargumentnamingadirectoryusedbysupervise. -u:Up.Iftheserviceisnot
22、running,startit.Iftheservicestops,restartit. -d:Down.Iftheserviceisrunning,senditaTERMsignalandthenaCONTsignal.Afteritstops,donotrestartit. -o:Once.Iftheserviceisnotrunning,startit.Donotrestartitifitstops. -p:Pause.SendtheserviceaSTOPsignal. -c:Continue.SendtheserviceaCONTsignal. -h:Hangup.Sendthese
23、rviceaHUPsignal. -a:Alarm.SendtheserviceanALRMsignal. -i:Interrupt.SendtheserviceanINTsignal. -t:Terminate.SendtheserviceaTERMsignal. -k:Kill.SendtheserviceaKILLsignal. -x:Exit.supervisewillexitassoonastheserviceisdown.Ifyouusethisoptiononastablesystem,youredoingsomethingwrong;superviseisdesignedtor
24、unforever. - 比如: 停止nagiossvc-d/service/nagios/ 重启nagiossvc-t/service/nagios/ 启动nagiossvc-u/service/nagios/ 当然,你也可以使用inited的方式进行: /usr/local/etc/rc.d/nagiosstart/stop 好了,反正daemontools很强大,以后慢慢熟悉,转入正题。 现在打开网页:http:/localhost/nagios/ 一定会让你大吃一惊,呵呵,我的服务器和服务状态都清楚的看到了。 现在我们的nagios中只有一个,那就是它自己,localhost,呵呵,等会我们添加别的主机和主机服务,ok,我们认识一下nagios的庐山真面目: 配置nagios: 1)为主机添加服务 2)添加主机并添加服务 3)停止一个服务 4)删除一台主机和服务 5)查看所有主机的故障 6)查看一台特定的主机状态 7)改变报警的时间间隔 8)改变发现故障的重试次数 9)如何在nagios中使用外部命令 1)为主机添加一个服务 为localhost主机添加qmail服务的监控,方法如下: viminimal.cfg defineservice usegeneric-service;Nameofservicetemplatetouse host_namel
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1