使用Nagios监控远程主机系统
创始人
2024-07-23 22:11:44
0

  学习使用Nagios软件来监控远程主机系统

  Nagios是一个允许用户监控远程系统可用性的软件。用户可从官网上下载这个程序,此程序也可由Linux厂商提供。

  Nagios这个程序广泛使用配置文件,这些文件主要位于/etc/nagios.中。主要配置文件是/etc/nagios/nagios.cfg,在其它配置选项中,并通过使用cfg_file命令指向了其它配置文件:

  1.   cfg_file=/etc/nagios/contacts.cfg  
  2.  
  3.   cfg_file=/etc/hosts.cfg  
  4.  
  5.   cfg_file=/etc/services.cfg  
  6.  

  以上的文件进一步配置并改善了Nagios的工作方式。例如,contacts.cfg可包含:

  1.   define contact  
  2.  
  3.   {  
  4.  
  5.   contact_name admin  
  6.  
  7.   alias admin  
  8.  
  9.   service_notification_period 24x7  
  10.  
  11.   host_notification_period 24x7  
  12.  
  13.   service_notification_options c,r  
  14.  
  15.   host_notification_options d,r  
  16.  
  17.   service_notification_commands notify-by-email  
  18.  
  19.   host_notification_commands host-notify-by-email  
  20.  
  21.   email admin@mysite.com  
  22.  
  23.   }  
  24.  

  这些会定义什么人会接收警告、接收什么警告、在什么时间接收警告。这样你就会看出远程管理在每周七天、每天24小时可用,接受主机的警告信息,还可以接收主机服务的“失效”/“恢复”通知。

  hosts.cfg文件包含着对被监控系统的主机定义, 一般来说,这个定义会是如下这个样子:

  1.   define host  
  2.  
  3.   {  
  4.  
  5.   name linux-server  
  6.  
  7.   use generic-host  
  8.  
  9.   check_period 24x7  
  10.  
  11.   max_check_attempts 10  
  12.  
  13.   check_command check-host-alive  
  14.  
  15.   notification_period workhours  
  16.  
  17.   notification_interval 120  
  18.  
  19.   notification_options d,u,r  
  20.  
  21.   contact_groups admins  
  22.  
  23.   register 0  
  24.  
  25.   }  
  26.  
  27.   define host{  
  28.  
  29.   use linux-server  
  30.  
  31.   host_name surtr  
  32.  
  33.   alias surtr.mysite.com  
  34.  
  35.   address 127.0.0.1  
  36.  
  37.   }  
  38.  

  第一个定义是一个模版。其它的定义可以使用这个模版,并在其基础上进步构建,从而防止了无用的信息重复。第二个定义是实际的主机,用主机名、别名和IP地址提供了使用什么样的模版(对Linux 服务器而言)。当然,用户可以定义所期望的主机数量,并可以根据自己的需要定义一定数量模版。

  services.cfg文件包含着在监控主机时所使用的服务定义。例如,如下项目代码可以检查POP3服务器是否可用:

  1.   define service{  
  2.  
  3.   use local-service  
  4.  
  5.   hostgroup_name remote  
  6.  
  7.   service_description POP3 Availability  
  8.  
  9.   check_command check_pop  
  10.  
  11.   }  
  12.  

  第一个“use”命令指明了一个基于构建的模版。hostgroup_name定义了哪一个主机应该使用这项服务(在其它的文件中定义,如hostgroups.cfg)。而check_command命令指明要使用的脚本或命令(插件):

  hostgroups.cfg文件可以包含如下内容:

  1.   define hostgroup{  
  2.  
  3.   hostgroup_name remote  
  4.  
  5.   alias Remote Servers  
  6.  
  7.   members hades,titan  
  8.  
  9.   }  
  10.  

  此内容可成为对远程主机组的定义,用于前面所列示的POP3检查列表中。 这种情况下,两台主机(hades and titan)被定义为包含在这个组中。你可以拥有任何数量的主机组,其中可有任何数量的主机,而且主机可以是多个主机组的成员。

  最后,commands.cfg文件可包含要使用的实际命令或插件:

  1.   define command{  
  2.  
  3.   command_name check_pop  
  4.  
  5.   command_line $USER1$/check_pop -H $HOSTADDRESS$  
  6.  
  7.   }  
  8.  

  这就定义了check_pop命令,使用了以前定义在services.cfg.中的POP3检查服务。此处定义的check_pop程序是一个插件,通常在/usr/libexec/nagios中可用(或者厂商安装插件的任何地方)。这是一个返回状态信息的简单程序:

  1.   #/usr/local/nagios/libexec/check_pop hades.mysite.com  
  2.  
  3.   POP OK - 0.025 second response time on port 110 [+OK Hello there.]  
  4.  
  5.   |time=0.024849s;0.000000;0.000000;0.000000;10.000000  
  6.  

  Nagios自身会解释这些响应,用以判断服务是否启动并正在运行。因为输出是相当简单的,你可以使用shell过程、Perl或其它任何语言编写自己的插件。

  本文仅仅简单介绍了Nagios的使用。你可以使用Web介面查看Nagios的主机报告和趋向信息,而且有大量不同的可以用于检查主机可用时间和有效性的预存插件。一些服务项目,如LDAP,SSH,FTP等都是十分实用的。 Nagios在设置上可能会比较耗时,但是最终的结果却是值得的,特别是如果你管理着几个不同的系统,并想及早发现一些问题的警告信息或潜在的问题的时候,Nagios是很实用的。使用Nagios监控远程主机系统就讲述到这里了。您可以使用短信提醒Nagios飞信linux短信报警脚本配置。
 

【编辑推荐】

Linux下监控网页-Nagios(图)

Nagios安装记录

使用Nagios实现网络监控

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...