ROS软路由论坛 ROSABC.com 网络方案网络工程交流

 找回密码
 会员注册

QQ登录

只需一步,快速开始

Nagios的安装配置记

2014-11-12 21:32| 发布者: admin| 查看: 835| 评论: 0

摘要:   摘要:Nagios的安装配置记录:Nagios是一个系统运行状态和网络信息的系统。Nagios能所指定的本地或远程主机以及服务,同时提供异常通知功能等。这篇文章讲述的是Nagios的安装配置记录。   Nagios安装、配置记 ...

  摘要:Nagios的安装配置记录:Nagios是一个系统运行状态和网络信息的系统。Nagios能所指定的本地或远程主机以及服务,同时提供异常通知功能等。这篇文章讲述的是Nagios的安装配置记录。

  Nagios安装、配置记录

  本文描述了我在安装Nagios的过程中遇到的一些问题以、解决办法以及注意事项。

  Nagios是一套强大的报警系统,但是你不花一些时间,是绝对不可能很好地配置它的。除非你只需要主机的alive等简单的情况(例如ping),否则请放弃幻想,以极大的耐心去研究它吧。

  打开这个文件,可以清楚地看到它指定了其他的配置文件:

  所以你要注意了,不要以为“objects”目录下的只是示例文件而已,它们默认被当作了实际上使用的配置文件,你不需要麻烦地拷贝一份出来到/usr/local/nagios/etc/目录下再修改,直接修改这些配置文件就好了。

  (2)“Map”、“Trends”功能无法使用,错误提示为:

  (4)如果你在defineservice的时候,使用了一个模板,例如:

  这样,对这个service来说,触发条件时也不会报警的。

  (5)报警邮件通过sendmail发不出去?请查看邮件日志文件(/var/log/maillog)的内容查找原因。当然,最好用mail试一下:

  然后依次输入邮件的标题、正文以及抄送地址,回车发送!然后再去邮件日志文件里看日志,是成功了还是失败了,分析原因。

  (6)如果配置了短信发送报警信息,但是却收不到短信,我要提醒你的是:

  ①在definecommand的地方,command_line里写的发送报警短信的命令行中,用于发送报警短信的程序要写全径,例如/usr/local/bin/sendsms,不要以为写一个“sendsms”就可以了,尽管你在Linux命令行下可以找到这个命令(因为它在/usr/local/bin/目录下),但是对Nagios来说,它却找不到,所以要写全径。这个规律我是试验发现的,至于是不是普遍现象,或者是不是所有版本的Nagios都是这样,我不知道,我只是通过试验知道这样能解决问题。

  ②短信接口的70个字符,有时候超过了是发不出短信的!请确认你的短信接口允许的单条短信字符数。

  在被服务器端,需要修改nrpe.cfg文件:

  看完之后你可能很后悔你没有早看到这篇文章吧?没错,和我一样,要重新编译安装NRPE,不过配置Nagios、NRPE的过程就是这样,来去,不费点劲是解决不了问题的。

  (10)在Nagios中,检测时间周期默认是以分钟为单位的,例如“normal_check_interval”的值为5时,代表正常检测周期为5分钟。假设你想以5秒钟检测一次,怎么办?这时候你需要修改配置文件nagios.cfg中的“interval_length”参数的值,默认值为60,代表基数是60秒,你改成1,代表基数是1秒,这时,“normal_check_interval”的值为5就表示正常检测周期为5秒了。请注意,把“interval_length”的值修改以后,所有其他和周期有关的地方你都要检查一遍,都被更改为了正确的数值,否则到时就全乱套了。

  (11)在Nagios中使用自定义变量很简单:无论是在host,service还是contact定义中,要添加一个自定义的变量,只需要以下划线开头就可以了,例如:_my_custom_var为一个在host定义中的自定义变量,则在其他地方,要使用这个变量的话,其宏名为_HOSTMY_CUSTOM_VAR,也就是说,Nagios在不仅将你的变量名转换成了大写,而且在前面加了一个“_HOST”。如果是service或contact中的自定义变量的话,则Nagios会分别添加“_SERVICE”或“_CONTACT”到宏名前。

  那么很明显,就是你设置的某项service中的notification_interval值比normal_check_interval值大导致的了。normal_check_interval是正常的检测周期,例如10分钟检测一次,20分钟检测一次这样的周期,而notification_interval看网上的很多文章,说它是发生故障之后的报警周期,例如该值设置成30分钟就表示发生故障之后每30分钟会报一次警。但是notification_interval为什么不能比normal_check_interval值要小呢?我完全可以让某个service一小时才检测一次,但是发生故障之后每1分钟报一次警啊!反正我是没想明白,或者是我对它们的含义理解有误,还需要进一步斟酌。

  另外再说一句,在NRPE的配置文件/usr/local/nagios/etc/nrpe.cfg中,有一个“allowed_hosts=”的选项,可以设置允许哪些IP地址访问,但是要注意了,文件里面的注释写得清清楚楚:

  也就是说,如果NRPE是运行在在inetd或xinetd下运行的话,这个选项就被忽略了!所以,我个人觉得最好是在/etc/xinetd.d/nrpe中设置允许访问的IP。

  (14)如果你通过NRPE检测一个远程服务,可以先在Nagios主机上通过以下命令执行一下:

  如果返回的结果是这样的:

  然后根据错误记录来解决问题。

  (16)如果你在Nagios系统的web界面中点进去一个service,然后点击“Disablenotificationsforthisservice”,这就可以直接禁用该对服务的报警,不过,在web界面中禁用某服务的报警,并不会对配置文件造成影响,也就是说,你在配置文件中设置了某服务的“notifications_enabled”值为1,那么就算你在web界面中禁用了其报警,配置文件中仍然会是1。不仅如此,就算你重启了Nagios服务(servicenagiosrestart),在web界面中禁用的报警仍然会是禁用状态,也就是说Nagios把你在web界面上的操作记录在某个地方了(不是配置文件中)。这一点要特别注意,有时候收不到报警信息,而配置文件中的报警全都打开了,这时你就要去web界面里查看各项设置了。

  ping 192.168.1.1这是怎么回事呢?在NRPE的文档中写得很清楚:

  可见,要修改这个超时时间,在Nagios命令定义文件commands.cfg中通过-t参数指定是无效的,因为-t参数指定的是连接的超时时间,而不是NRPE的命令执行超时时间。必须要修改NRPE的配置文件nrpe.cfg中的“command_timeout”参数值(默认值为60秒)才有用,如果你要修改为5分钟,应该这样改:

  (17)如果要Widows的服务器,需要在Windows服务器上安装NSClient++这个软件,详细的设置可看【这个】链接。在这里我简要地描述一下:安装NSClient++的过程中,需要设置允许访问的IP地址,这个地址就是Nagios服务器的地址;然后还需要设置一个密码,这个密码就是Nagios服务器访问这台Windows上的NSClient时要提供的密码(如果没有密码就能取数据,那太不安全了)。安装好之后,启动NSClient的服务,并且在服务属性设置中勾上“Allowservicetointeractwithdesktop”的选项,然后Windows上的设置就算完成了,然后就到设置Nagios服务器了:

  其中,“myPasswd”是所说的那个密码,你需要写你设置的密码;USEDDISKSPACE表示检测的是磁盘空间;另外,看到的check_command中提供的最后一个参数了吗:-lc-w80-c90

  其中第一个c表示检测的是C盘,-w表示的是warning值,-c表示的是critical值。

  【编辑推荐】

  Nagios系统搭建问题

  Nagios全解-手机短信

不良信息举报Q:2000617

软路由

不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流

GMT+8, 2025-4-30 19:36 , Processed in 0.164502 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部