使用Nagios搭建监控服务器_第1页
使用Nagios搭建监控服务器_第2页
使用Nagios搭建监控服务器_第3页
使用Nagios搭建监控服务器_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二十四章使用Nagios搭建监控服务器【关于Nagios】Nagios是一款用于监控系统和网络的开源应用软件,它的模式是服务器一客户端,也就是说首先要在在一台服务器上(server)部署相应的主要套件,然后在要监控的服务器上部署客户端程序,这样server会和client通信,从而监控client端的各项资源。Nagios功能十分强大几乎所有的项目都可以监控,大到服务器的存活状态,小到服务器上的某一个服务(web)。这些功能都是通过自定义插件(或者叫做脚本)来实现。当Nagios监控到某项资源发生异常会通知到用户,你可以接入手机短信接口也可以接入邮件接口。我们可以通过web页面来查看Nagios所监控的各项资源,默认搭建的Nagios服务器只能监控简单的几个项目,而其他服务之类的监控项目都是由我们自己开发的插件来实现的。【需要下载的软件】nagios-3.0.5nagios-plugins-1.4.13nrpe-2.12.tar.gzapache-2.2.11//以上软件版本可以不一样【监控中心Server端的配置】安装apache(略,请参考第16章中相关内容,只需安装,到后边再配置)建立nagios账户useraddnagios下载软件cd/usr/local/src/wgetsenz.eom/downloads/linux/nagios-3.0.5.tar.gzwget/downloads/linux/nagios-plugins-1413.tar.gzwget/downloads/linux/nrpe-2.12.tar.gz编译安装nagioscd/usr/local/src/tarzxvfnagios-3.0.5.tar.gzcdnagios-3.0.5./configure--prefix=/usr/local/nagiosmakeallmakeinstallmakeinstall-init#把nagios做成一个运行脚本,使nagios随系统开机启动makeinstall-config#把配置文件样例复制到nagios的安装目录makeinstall-commandmode#给外部命令访问nagios配置文件的权限chown-Rnagios:nagios/usr/local/nagios编译安装nagios-pluginscd/usr/local/src/tarzxvfnagios-plugins-1.4.13.tar.gzcdnagios-plugins-1.4.13./configure--prefix=/usr/local/nagios--with-nagios-user=nagios--with-nagios-group=nagiosmake&&makeinstall查看是否安装成功的方法是:ls/usr/local/nagios/libexec/看这个目录下是否有插件文件安装nrpecd/usr/local/src/tarzxvfnrpe-2.12.tar.gzcdnrpe-2.12./configure--enable-ssl--enable-command-argsmakeallmakeinstall-pluginmakeinstall-daemonmakeinstall-daemon-config配置web接口vim/usr/local/apache2/conf/httpd.conf在最后加入以下内容:ScriptAlias/nagios/cgi-bin/usr/local/nagios/sbin<Directory"/usr/local/nagios/sbin/">AllowOverrideAuthConfigOptionsExecCGIOrderallow,denyAllowfromall</Directory>Alias/nagios//usr/local/nagios/share/<Directory"/usr/local/nagios/share">OptionsNoneAllowOverrideAuthConfigOrderallow,denyAllowfromall</Directory>配置nagioscd/usr/local/nagios/etc/vimcgi.cfg把use_authentication=1改成use_authentication=0意思是不用用户验证启动nagios在启动前先检测一下:/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg如果最后显示如下,则说明配置没有问题了。TotalWarnings:0TotalErrors:0启动命令:/etc/init.d/nagiosstart或者:/usr/local/nagios/bin/nagios-d/usr/local/nagios/etc/nagios.cfg此时,就可以访问web页面的nagios了,在浏览器中输入:http://IP/nagios/看看吧。【在要监控的机器上client部署nagios】如果你打开了web页面,点击左栏的HostDetail会在右栏看到一行数据,其中Host名为“localhost”,Status显示为"up”,并且显示为绿色,如果是其他颜色就说明你的localhost出了问题。目前只有一行数据,也就是说只监控了监控中心(localhost)一台主机,那么如何添加其他机器被它监控呢?这就需要在要被监控的机器上也部署nagios软件。添加账户useraddnagios安装nrpecd/usr/local/src/wget/downloads/linux/nrpe-2.12.tar.gztarzxvfnrpe-2.12.tar.gzcdnrpe-2.12./configure--enable-ssl--enable-command-argsmakeallmakeinstall-pluginmakeinstall-daemonmakeinstall-daemon-config安装nagios-plugincd/usr/local/src/wget/downloads/linux/nagios-plugins-1-4.13.tar.gztarzxvfnagios-plugins-1.4.13.tar.gzcdnagios-plugins-1.4.13./configure--prefix=/usr/local/nagios--with-nagios-user=nagios--with-nagios-group=nagiosmake&&makeinstall到此就算安装完成了,请查看/usr/local/nagios/目录下是否有四个目录分别为:binetclibexecshare另外在libexec目录下会有很多check_开头的文件。如果你的机器上没有,就请重新安装吧。配置vim/usr/local/nagios/etc/nrpe.cfg找到"allowed_hosts=”改成“allowed_hosts=,7”//后边的IP是server的IP找到U"dont_blame_nrpe=0”改成"dont_blame_nrpe=1”启动nrpe/usr/local/nagios/bin/nrpe-c/usr/local/nagios/etc/nrpe.cfg-d【在监控中心添加被监控主机】添加主机当然是要到server端(监控中心)修改配置文件了。修改主配置文件cd/usr/local/nagios/etc/vimnagios.cfg增加内容:cfg_dir=/usr/local/nagios/etc/services##定义一个目录,以后把新增加的主机信息文件全部放到这里添加被监控主机信息mkdir/usr/local/nagios/etc/servicescd/usr/local/nagios/etc/servicesvim6.cfg加入如下内容:definehost{uselinux-serverhost_name6alias6address6defineservice{usegeneric-servicehost_name6service_descriptioncheck_pingcheck_commandcheck_ping!100.0,20%!200.0,50%max_check_attempts5normal_check_interval1}--defineservice{usegeneric-servicehost_name6service_descriptioncheck_sshcheck_commandcheck_sshmax_check_attempts5normal_check_interval1}defineservice{usegeneric-servicehost_name6service_descriptioncheck_httpcheck_commandcheck_httpmax_check_attempts5normal_check_interval1}//注意,这里的IP是client端的IP,监控的项目有三个ping,ssh,http。其实这三个项目使用的脚本都为本地脚本,也就是说,即使远程主机没有安装nagios和nrpe同样可以监控这些项目。但是如果想监控load,disk,等等就需要通过nrpe服务来搞定了,道理很简单,load和disk都需要登录到远程主机上去获得信息,而ping,ssh,http都不需要的。这个到远程主机获取相关的信息的过程是由nrpe完成的。如果你的client上没有启动nrpe服务那么我们是无法获取远程主机的load和disk等信息的。下面笔者配置一下使用nrpe来监控远程主机的相关项目。在server端编辑/usr/local/nagios/etc/objects/commands.cfgvim/usr/local/nagios/etc/objects/commands.cfg#在最后面添加如下内容definecommand{command_namecheck_nrpecommand_line$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$}然后编辑6.cfg(还是server上)cd/usr/local/nagios/etc/servicesvim6.cfg#加入如下内容:defineservice{usegeneric-servicehost_name6service_descriptioncheck_loadcheck_commandcheck_nrpe!check_loadmax_check_attempts5normal_check_interval1}defineservice{usegeneric-servicehost_name6service_descriptioncheck_disk_hda1check_commandcheck_nrpe!check_hda1max_check_attempts5normal_check_interval1}defineservice{usegeneric-servicehost_name6service_descriptioncheck_disk_hda2check_commandcheck_nrpe!check_hda2max_check_attempts5normal_check_interval1}//这里需要解释一下相关的”check_command”先看这个”check_nrpe!check_load这里的check_nrpe就是上面/usr/local/nagios/etc/objects/commands中fg刚定义的,后面的check_loa(是在远程主机上定义的一个命令脚本。具体在哪里定义稍后介绍。为什么中间加一个”,”这个是nagios特有的形式,无需关心。下面需要到远程主机上去定义上面用到的脚本了。在远程主机上编辑/usr/local/nagios/etc/nrpe文c(flgvim/usr/local/nagios/etc/nrp(cdier上)把”command[check_hda1那行改成:command[check_hda1]=/usr/local/nagios/libexec/check_disk-w20%-c10%-p/dev/hda1然后再增加一行:command[check_hda2]=/usr/local/nagios/libexec/check_disk-w20%-c10%-p/dev/hda2//这里的check_hda1和check_hda2都是自定义的,和server端的定义的service中的check_command对应。也就是说,如果在server端定义了一个servic(通过nrpe方式)那么必须要在客户端上的nrpe.cfg中定义相应的脚本。保存这个文件后,需要重新启动一下nrpe服务。killallnrpe;/usr/local/nagios/bin/nrpe-c/usr/local/nagios/etbien上)cfg-d3.重启nagios服务修改了配置需要重启服务才能使添加的监控主机生效。/etc/init.d/nagirestart(server上)此时再到web页面去观察是否多了一台6【在nagios客户端上自定义监控脚本】在开始,笔者就讲过,我们可以自定义写监控脚步,从上面的例子中也可以看到监控磁盘状态时,是根据磁盘分区来监控的。这样不免有些麻烦,因为每台主机的磁盘分区状况都不一样(一样还好),而且有多少个分区就需要定义多少个命令。所以笔者就自定义写一个shell脚本来监控所有的磁盘分区:1.在客户端上创建脚本/usr/local/nagios/libexec/check_disk.shvim/usr/local/nagios/libexec/check_d写入如h下内容:(client)#!/bin/bashrow='df-h-P|wc-l'status=0foriin'seq2$row'dospare='df-h-P|sed-n"$i"p|awk'{print$4}''use_percentage='df-h-P|sed-n"$i"p|sed-n〃s/\%//〃p|awk'{print$5}''spare_percentage='expr100-$use_percentage'partition_name='df-h-P|sed-n"$i"p|awk'{print$6}''if["$spare_percentage"-lt;thenecho-n"$partition_nameCRITICAL${spare_percentage}%$spare"status[$i]=2elif["$spare_percentage"-lt"5"];thenecho-n"$partition_nameWARNING!${spare_percentage}%$spare"status[$i]=1elseecho-n"$partition_nameOK${spare_percentage}%$spare"status[$i]=0fidonezhuangtai=0forjin'seq2$row'doif["${status[$j]}"-gt"$zhuangtai"];thenzhuangtai=${status[$j]}fidoneexit$zhuangtai保存后,修改该脚本的权限chmod+x/usr/local/nagios/libexec/check_disk.sh(client上)然后编辑/usr/local/nagios/etc/nrpe.cfg文件vim/usr/local/nagios/etc/nrpe.cfg#加入一行:(client上)command[check_disk]=/usr/local/nagios/libexec/check_disk.sh保存,重启nrpe服务killallnrpe;/usr/local/nagios/bin/nrpe-c/usr/local/nagios/etc/nrpe.cfg-d(client上)检测刚才的脚本是否正常运行的方法是,到server端执行如下命令:/usr/local/nagios/libexec/check_nrpe-H6-ccheck_disk(server上)如果正常的话,会输出一行磁盘检测的数据,否则可能会报错。到server上添加相应的servicecd/usr/local/nagios/etc/services(server上)vim6.cfg#加入如下内容:defineservice{usegeneric-servicehost_name6service_descriptioncheck_diskcheck_commandcheck_nrpe!check_diskmax_check_attempts5normal_check_interval1}重启nagios服务/etc/init.d/nagiosrestart(server上)【配置nagios报警邮件】现在139邮箱有顺便发短信的功能,所以当有报警时,只需发送到你的139邮箱你就同样会收到一条报警短信。这样做的优势就是不用再去买短信网关了,节省了很大一笔钱。vim/usr/local/nagios/etc/objects/contacts.cfg把"emailnagios@localhost”修改成“email你的139邮箱”vim/usr/local/nagios/etc/objects/templates.cfg找到:defineservice{namegeneric-service之所以看这一段,是因为在上面添加的6.cfg定义了很多generic-service所以要关注这段的配置。TOC\o"1-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论