Nagios是一款集服务器、网络设备、应用程序监控于一体的开源工具。它可以实现对各种服务状态的监测,对出现的问题进行实时的报警和监控,从而保障企业的运行稳定性。下面,我们就来探讨一下如何正确地配置Nagios监控系统。

1.环境准备
在开始配置监控环境之前,我们需要确定以下基本要素:
监控对象:我们需要监控哪些设备/服务,比如Web服务器、数据库、交换机等。
监控方式:透过什么协议来监控目标设备/服务,例如SSH、SNMP、NRPE等。
监控目录:定义状态文件存储的位置,通告相关的服务和主机监控器等。
监控时间:监控的时间间隔和超时时间,具体取决于关注的监控对象的重要程度。
2.配置文件
Nagios的最基本配置文件是nagios.cfg,它决定了Nagios如何运行和与其他模块通讯。重要的设置包括:
主配置文件门牌号:配置文件的位置和名称。
进程守护:定义Nagios如何被守护程序保护,并向何处写日志。
Nagios对象:指定Nagios监控的对象,其包括联系人、主机、服务等。
动态对象:用于更新监控对象,告警脚本等。
状态文件:指定状态文件存储在哪里以及它们如何被存储和使用。
同时,针对不同的监控对象,还需配置额外的监控配置文件。通常情况下,这些配置文件位于/nagios/conf.d/目录下,例如:
hosts.cfg:定义所有被监控的主机及其属性,例如每个主机的IP、别名、使用的操作系统、设置的服务等。
services.cfg:定义要监控的服务及其属性,例如FTP服务器的连接状态、Web服务器是否正常、Oracle数据库是否可用等。
配置文件中的每一个设置项都有相应的注释,可以帮助您快速了解它们的作用。
3.配置监控对象
对于不同的监控对象,需要定义不同的监控方式。这里以服务器为例,介绍配置监控对象的步骤。
3.1、定义主机
在定义主机时,必须确定以下信息:
主机名称:标识主机的名称(建议使用符合规范的名称)。
IP地址:指定要监视的主机的IP地址。
别名:为主机定义一个易于阅读和理解的别名。
通讯方式:提供主机IP地址和使用监控协议的端口。
检查间隔时间:定义监视其状态的间隔时间,以秒为单位。
超时时间:Nagios应等待多长时间才能停止执行检查请求。
故障再确认间隔时间:若主机在两个周期内不可用,则需要再次确认故障。
例如:
define host{
use linux-server
host_name server-1
alias Web Server
address 192.168.0.20
contact_groups admins
check_interval 2
retry_interval 1
max_check_attempts 10
notification_options d,u,r
notification_interval 60
notification_period 24x7
}
3.2、定义服务
在定义服务时,需要确认以下信息:
服务名称:用于标识服务的名称(建议使用符合规范的名称)。
服务描述:用于描述服务的名称(例如,Web服务器Apache的Web请求)。
父级主机:服务所处的主机的名称。
通讯方式:提供端口或者URL。
检查间隔时间:定义监视其服务状态的间隔时间,以秒为单位。
超时时间:Nagios应等待多长时间才能停止执行检查请求。
故障再确认间隔时间:若服务在两个周期内不可用,则需要再次确认故障。
针对不同的服务,还需要考虑是否需要提供额外信息(例如认证信息)。
例如:
define service{
use local-service
host_name server-1
service_description HTTP
check_command check_http
max_check_attempts 5
normal_check_interval 5
retry_check_interval 3
contact_groups admins
notification_options w,u,c,r,f
notification_interval 120
}
4.选择监控方式和协议
Nagios支持多种监控方式和协议。以下是其中的几种:
SNMP:Simple Network Management Protocol。通常用于交换机、路由器和打印服务器等的监控。
NRPE:Nagios远程程序执行协议。在Windows和Linux系统中使用,远程监控应用程序。
SSH:用于Linux服务器上的检查。
HTTP:监控Web服务器状态。
TCP/UDP:检查TCP/UDP端口以确保服务正常运行。
根据监控对象的特点,选择适当的监视方法和协议是十分重要的。
5.自动诊断
Nagios支持保存历史数据并用于后续分析,例如通过PNP4Nagios将收集的数据存储到RRA中。除此之外,还可以使用自动诊断工具检测并发现异常,如果存在问题则发出警报。
6.报警
当监控到有问题或者异常时,需要及时触发警报。通过Nagios提供的邮件、短信等方式可以快速地通知系统管理员。定义好联系人和联系人组后,将会根据由系统管理员指定的方式发送警报信息。
在定义报警方式时,可对其优先级和报警周期进行设置。例如:
define contact{
contact_name admin
use generic-contact
alias Nagios Admin
email admin@localhost.localdomain
service_notification_options w,u,c,r,f,s
host_notification_options d,r,f
service_notification_period 24x7
host_notification_period 24x7
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
}
7.总结
通过以上七个步骤,我们可以正确地配置Nagios监控系统,实现对企业网络和服务器的实时监控、报警和诊断。在使用Nagios进行监控时,需要根据实际情况设置不同的监控方式和协议,并通过历史数据自动诊断系统的状态,及时处理发现的问题,确保系统的稳定运行。


QQ客服专员
电话客服专员