Nagios, 开源监控的行业标准

 Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等

 

Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

Nagios的主要功能特点:
- 监视网络服务 (SMTP, POP3, HTTP, NNTP, PING等)
- 监视主机资源 (进程, 磁盘等)
- 简单的插件设计可以轻松扩展Nagios的监视功能
- 服务等监视的并发处理
- 错误通知功能 (通过email, pager, 或其他用户自定义方法)
- 可指定自定义的事件处理控制器
- 可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等
- 可以通过手机查看系统监控信息
详细的屏幕截图请看这里:http://www.nagios.org/about/screenshots.php
 

1. Nagios的插件

1.1. 介绍

与其他的监控工具不同,Nagios的内在机制中不包含针对主机和服务状态的检测,而是依赖于外部程序(称为插件)来做这些脏活(--真正该做的检查工作是脏活,真够幽默的)。

1.2. 什么是插件?

插件是编译的执行文件或脚本(Perl脚本、SHELL脚本等等),可以在命令行下执行对主机或服务的状态检查。Nagios运行这些插件的检测结果来决定网络中的主机和服务的当前状态。

当需要检测主机或服务的状态时Nagios总是执行一个插件程序,插件总要做点事情(注意一般条件下)来完成检查并给出简洁的结果给Nagios。Nagios将处理这些来自插件的结果并做些该做的动作(运行事件处理句柄、发送出告警等)。

1.3. 插件是一个抽象层

插件扮演了位于Nagios守护程序里的监控逻辑和实际被监控的主机与服务之间的抽象层次。

在插件构架之上你可以监控所有你想要监控的东西。如果你能自动地处理检测过程你就可以用Nagios来监控它。已经写好很多插件以用于监控基础性资源象处理器负荷、磁盘利用率、PING包率等,如果你想监控点别的,你需要查阅书写插件这篇文档并自己付出努力,这很简单地!

在插件构架之下,事实上Nagios也不知道你想要搞些什么名堂。你可以监控网络流量态势、数据错包率、房间温度、CPU电压值、风扇转速、处理器负载、磁盘空间或是有可能在早上起来你的超级无敌的面包机烤出正宗的色泽...Nagios不会理解什么被监控了-它只是忠实地记录下了这些被管理资源的状态变化轨迹。只有插件自已知道监控了什么东西并如何完成检测。

1.4. 什么样的插件可用?

有许多插件可用于监控不同的设备和服务,包括:

  1. HTTP、POP3、IMAP、FTP、SSH、DHCP
  2. CPU负荷、磁盘利用率、内存占用、当前用户数
  3. Unix/Linux、Windows和Netware服务器
  4. 路由器和交换机
  5. 等等

1.5. 获得插件

插件不与Nagios包一起发布,但你可以下载到Nagios官方插件和由Nagios用户书写并维护的额外插 件,在这些网址里:

1.6. 如何来使用插件X

当你在命令行下用命令参数-h或-help运行时许多插件会显示基本用法信息。例如如果你想知道如何使用check_http插件或是它的可接收哪些选项参数时,你只要尝试运行:

./check_http --help

就可以看到提示内容了。

1.7. 插件API

你可以在这里找到有关插件技术论述的信息并且有如何书写你自己定制插件的内容。

2. Nagios外部构件

2.1. 介绍

Nagios有许多"外部构件"软件包可供使用。外部构件可以扩展Nagios的应用并使之与其他软件集成。

外部构件可用于:

  1. 通过WEB接口来管理配置文件
  2. 监控远程主机(*NIX, Windows,等)
  3. 实现对远程主机的强制检测
  4. 减化并扩展告警逻辑
  5. ...和其他更多事情

你可以通过访问如下站点找寻外部构件:

这里对一些我开发的外部构件给一个简洁的介绍...

2.2. NRPE

NRPE是一个可在远程Linux/Unix主机上执行的插件的外部构件包。如果你需要监控远程的主机上的本地资源或属性,如磁盘利用率、CPU负荷、内存利用率等时是很有用的。象是用check_by_ssh插件来实现的功能一样,但是它不需要占用更多的监控主机的CPU负荷-当你需要监控成百上千个主机是这个很重要。

NRPE外部构件包和文档可以在http://www.nagios.org/上找到。

2.3. NSCA

NSCA是一个可在远程Linux/Unix主机上执行强制检测并将结果传给Nagios守护进程的外部构件包。这在分布式冗余/失效监控的设置时非常有用。

NSCA外部构件包和文档可以在http://www.nagios.org/上找到。

2.4. NDOUtils

NDOUtils是一个可以把全部状态信息保存到MySQL数据库里的外部构件。外个Nagios的库实例都可以把它们监控的信息保存到统一的中心数据库并集中报告。它将为一个Nagios新的基于PHH的WEB接口程序提供数据源服务。

NDOUtils外部构件包和文档可以在http://www.nagios.org/上找到。

 

3. 系统需求

 

Nagios所需要的运行条件是机器必须可以运行Linux(或是Unix变种)并且有C语言编译器。你必须正确地配置TCP/IP协议栈以使大多数的服务检测可以通过网络得以进行。

 

你需要但并非必须正确地配置Nagios里的CGIs程序,而一旦你要使用CGI程序时,你必须要安装以下这些软件...

  1. 一个WEB服务(最好是Apache
  2. Thomas Boutell制作的gd库版本应是1.6.3或更高(在CGIs程序模块statusmaptrends这两个模块里需要这个库)

4. 版权

 

Nagios版权遵从于由自由软件基金会所发布的GNU版权协议第二版。有关GNU协议请查阅自由软件基金会网站。该版权协议允许你在某些条件下可以复制、分发并且或者是修改它。可以在Nagios软件发行包里阅读版权文件LICENSE或是在网站上阅读在线版权文件以获取更多信息。

 

注意

Nagios及Nagios商业标识由Ethan Galstad所拥有。其他的商业标识、服务标识、注册商标及注册服务属于各自的所有者。

5. 下载

 

下载Nagios Core:http://www.innovatedigital.com/download/nagios

Nagios插件下载:http://www.nagios.org