运维监控利器Nagios之:nagios配置详解

Nagios是一款非常实用的开源监控软件,它可以通过巡检服务器、交换机、路由器等网络设备来实现对IT环境的监控,同时也可以监控网络、服务器的性能指标,如数据库响应时间、Web服务器的负载平衡等。

在使用Nagios进行监控之前,我们需要进行一些基本的配置工作,本篇文章将详细介绍Nagios的配置过程以及使用方法,并结合实际案例进行说明,希望对Nagios的初学者有所帮助。

一、安装Nagios

在进行Nagios的配置之前,我们需要先安装它,以下是Nagios在CentOS 7上的安装命令:

```

yum install -y httpd php gcc glibc glibc-common openssl-devel perl gd gd-devel unzip

yum -y install nagios nagios-plugins-all nagios-plugins-nrpe nagios-plugins-snmp

```

安装完成后,我们可以在浏览器中输入服务器的IP地址并加上“/nagios”来访问Nagios Web界面,默认用户名为“nagiosadmin”,密码为安装过程中设置的密码。

二、配置Nagios

在访问Nagios Web界面后,我们需要进行一些配置工作:

1.添加主机

在Nagios中要监控的主机都需要进行配置,首先在配置文件“/etc/nagios/objects/hosts.cfg”中添加主机IP地址、主机名等信息。如下所示:

```

define host{

use linux-server ; Name of host template to use

host_name myhost ; Name of this host

alias My Linux box ; Long name of this host

address 192.168.10.10 ; IP address of the host

}

```

其中,use表示使用的模板;host_name表示主机名;alias表示别名;address表示IP地址。添加完主机配置后,我们还需要将其所需要监控的服务配置为需要监控的状态。

2.添加服务

服务包括进程、端口、文件系统、系统负载等,我们可以在配置文件“/etc/nagios/objects/services.cfg”中添加服务信息,如下所示:

```

define service{

use local-service ; Name of service template to use

host_name myhost

service_description HTTP

check_command check_http

}

```

其中,use表示使用的模板;host_name表示需要监控的主机名;service_description表示服务的描述;check_command表示监控使用的命令。除了以上配置外,还可以根据需要自定义一些配置文件。

3.添加命令

Nagios监控服务的方式是通过执行命令来完成的,我们可以在配置文件“/etc/nagios/objects/commands.cfg”中添加自定义命令或修改原有命令,如下所示:

```

define command{

command_name check_nrpe

command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

```

其中,command_name表示命令名称;command_line表示命令执行的命令行内容。

以上配置完成后,需要重新启动Nagios服务,以使新配置生效。

三、Nagios使用方法

1.批量添加主机和服务

在配置文件中一一手动添加主机和服务是很麻烦的,可以通过使用NSClient++等软件来实现批量添加,以下是NSClient++的安装和配置过程:

```

yum install nsclient++-debuginfo

vi /etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.10.11 # 允许连接的ip地址,目标Nagios服务器的IP地址

check_disk=cmd /c echo scripts\\check_drivesize.exe drive=$ARG1$ warn=$ARG2$ crit=$ARG3$ -l -e -p -d ARPRD

check_mem=cmd /c echo scripts\\check_mem.exe MaxWarn=$ARG1$% MaxCrit=$ARG2$% ShowAll=long

check_nt=scripts\\check_nt.exe

check_cpu=cmd /c echo scripts\\check_cpu.exe MaxWarn=$ARG1$% MaxCrit=$ARG2$%

check_ping=cmd /c echo scripts\\check_ping.exe -H $ARG1$ -w $ARG2$,$ARG3$ -c $ARG4$,$ARG5$

```

其中,allowed_hosts表示允许连接的IP地址,如果有多个IP地址则使用逗号分隔;check_xxx表示服务的名称和对应的命令。

完成配置后,需要重新启动nrpe服务。

2.监控视图

Nagios的Web界面提供了多种监控视图,我们可以根据需要进行选择。例如,可以选择“Hosts视图”,即可以查看所有配置的主机的当前状态。也可以选择“Services视图”,即可以查看所有配置的服务的当前状态。

3.报警设置

Nagios可以在监控到异常情况时通过邮件、短信等方式进行报警,以下是邮件报警的配置过程:

```

yum install sendmail mailx -y # 安装sendmail和mailx

vi /etc/nagios/objects/contacts.cfg

define contact{

contact_name nagiosadmin ; Short name of user

use generic-contact ; Inherit default values from generic-contact template (defined above)

alias Nagios Admin ; Full name of user

email nagios@localhost ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

}

define contactgroup{

contactgroup_name admins

alias Nagios Administrators

members nagiosadmin

}

define service{

use generic-service ; Name of service template to use

host_name myhost

service_description HTTP

check_command check_http

notifications_enabled 1

contact_groups admins

}

define serviceescalation{

host_name myhost

service_description HTTP

first_notification 3

last_notification 5

notification_interval 120

contact_groups admins

}

```

以上配置过程中,我们首先需要定义报警联系人的信息,在contacts.cfg文件中进行配置;然后定义报警联系组的信息,在service.cfg文件中进行配置;最后定义serviceescalation来指定当服务状态异常时,需要发送多少次通知、发送的时间间隔等信息。

四、实例说明

以下是一些使用Nagios进行监控的实例:

1.监控Web服务器

我们可以通过check_http命令来监控Web服务器的运行状态,如下所示:

```

define command{

command_name check_http

command_line $USER1$/check_http -I $HOSTADDRESS$ -p $ARG1$ -u $ARG2$ --ssl=$ARG3$ --sni=$ARG4$ --no-body --onredirect=follow --timeout=$ARG5$ -r $ARG6$

}

```

其中,$ARG1$表示端口号;$ARG2$表示URL地址;$ARG3$表示是否启用SSL加密;$ARG4$表示使用的SSL证书;$ARG5$表示超时时间;$ARG6$表示需要匹配的字符串。

2.监控数据库

我们可以通过check_mysql命令来监控数据库的运行状态,如下所示:

```

define command{

command_name check_mysql

command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -t $ARG3$ -P $ARG4$ -e "SHOW DATABASES LIKE 'mysql'"

}

```

其中,$ARG1$和$ARG2$表示数据库的用户名和密码;$ARG3$表示超时时间;$ARG4$表示数据库的端口号。

3.监控网络设备

我们可以通过SNMP协议来监控网络设备的运行状态,具体使用方法可以参考网上的SNMP教程,并使用Nagios提供的相关插件进行监控。

以上是使用Nagios进行监控的一些实例,需要根据实际情况进行配置。

总结

本文主要介绍了Nagios的配置过程、使用方法和实例说明,希望对初学者有所帮助。在实际使用中,需要根据实际情况进行配置,并不断进行监控和调整,才能使监控系统更加稳定可靠。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(41) 打赏

评论列表 共有 1 条评论

红尘雪 8月前 回复TA

你还不知道啊,你说的那个甜暖我心咖啡都不要加盟费的,,,听说还不错,你可以去他们官网去问问,投资慎重。加油

立即
投稿
发表
评论
返回
顶部