简介
Nagios是一个监视系统运行状态和网络信息的监视系统,能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等,其可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
了解 Nagios 的关键在于,它并不是监视和跟踪“普通的”测量数据,如 CPU 使用率,该工具将所有的信息简化为“工作”、“可疑的”和“故障”状态。这可以帮助操作员根据预定义的和可配置的标准,重点关注最重要和最关键的问题。
Nagios的主要功能特点:
- 监视网络服务 (SMTP, POP3, HTTP, NNTP, PING等)
- 监视主机资源 (进程, 磁盘等)
- 简单的插件设计可以轻松扩展Nagios的监视功能
- 服务等监视的并发处理
- 错误通知功能 (通过email, pager, 或其他用户自定义方法)
- 可指定自定义的事件处理控制器
- 可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等
- 可以通过手机查看系统监控信息
安装
这里只介绍一下源码安装,首先安装依赖:
gcc/make/autoconf/automake
libgd/openssl
许多与简单网络管理协议相关的(SNMP 相关的)插件还需要 Perl 和 Net::SNMP 包。
tar -xzvf nagios_xxx.tar.gz
cd nagios_xxx/
./configure --prefix=/usr/local/nagios
make;make install
在安装和设置了 Nagios 之后,您应该可以使用缺省的 http://localhost/nagios URL 访问 Nagios。
目录结构
在缺省情况下,所有的 Nagios 配置文件都位于 /etc/nagios 目录,因编译时指定目录,所以此时目录为/usr/local/nagios/etc。可以将配置分为多个文件,每个文件用于配置中不同的部分。3.3.1版本的配置目录结构如下: /etc/nagios/
nagios.cfg #nagios主配置文件,引用其他配置文件
cgi.cfg #nagios Web界面相关配置
resource.cfg #全局变量定义配置
objects/
commands.cfg #命令、插件注册配置
contacts.cfg #联系人和联系人组配置
localhost.cfg #监控本机资源示例配置
printer.cfg #网络打印机示例配置
switch.cfg
templates.cfg # 配置模板
timeperiods.cfg
windows.cfg # windows主机配置示例
hosts.cfg #自定义的所有主机和主机组配置
services.cfg #自定义的所有服务配置
其中各配置文件的作用如上所示。
配置
1.联系人配置
首先需要设置的组件是联系人和联系人组。联系人是那些接收主机或服务停止运行的通知的人员。在缺省情况下,Nagios 提供了寻呼机和电子邮件通知方式。通过扩展,允许通过 Jabber 和许多其他方式进行通知,这在某些情况下是非常方便的。联系人存储在 contacts.cfg 文件中,并且定义如下:
define contact{
contact_name admin
alias Administrator
service_notification_commands notify-by-email
host_notification_commands host-notify-by-emailes
email zhoubo@netqin.com
}
2.联系人组配置
将联系人划分成组:在主机或服务状态发生更改时,Nagios 并不指定需要通知的人员,而是通知相关的组。有时甚至可以对某个人员进行多次定义,以指定不同的通知命令或地址,然后向用户所在的联系组添加联系该人员的所有方式,其在contacts.cfg中配置,也可自定义配置文件contactgroups.cfg.
define contactgroup{
contactgroup_name admins
alias Server Administrators
members admin
}
3.新增主机配置
配置需要由 Nagios 进行监视的主机。应该添加所有包含监视或检查是否正处于活动状态的服务的主机。存储主机信息的配置文件是 hosts.cfg。下面是一个主机定义的示例,默认配置示例见localhost.cfg:
define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name localhost
alias localhost
address 127.0.0.1
contact_groups admins ; Notifications get sent to the admins by default
}
4.新增服务配置
Nagios 配置的最后一步是为配置的主机定义服务。这个示例使用了一个预定义的“ping”Nagios 插件,它将发送 Internet 控制信息协议(Internet Control Message Protocol,ICMP)回显请求以确定主机是否有响应。define service{
use service-template
host_name ubuntu_1_2
service_description PING
check_period 24x7
contact_groups server-admins
notification_options c,r
check_command check_ping!300.0,20%!1000.0,60%
}
在完成了这个配置工作之后,重新启动您的 Nagios 守护进程,稍等几秒钟让 Nagios 进行初始化,然后,证实 Web 管理接口中 ping 服务的可见性。
小结
1.所有check_command的定义在commands.cfg文件中,其中定义命令路径和参数,若新增插件,需要在commands.cfg中注册后才能在services.cfg中使用;
2.默认所有commands.cfg中的命令都在/usr/local/nagios/libexec目录中,当然也可以在其他位置;
3.默认Nagios安装配置后,只能监测本机,远程主机只支持一些简单的监控,如Ping等,若需要更细节的监控远程服务器,需要在远程服务器上安装NRPE,在后续介绍。
4.默认命令可能满足不了你想要的监控需求,那么可以自己编写插件进行扩充,Nagios提供简单的标准很轻松的进行插件扩展,后续介绍。