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

Nagios是一款非常常用的开源监控软件,可以监控网络设备、服务器、应用程序等,监控指标包括系统负载、CPU使用率、内存使用率、磁盘空间等。本文将详细介绍Nagios的配置过程,并且提供多个使用案例。

一、安装Nagios

Nagios需要在Linux系统中进行安装,这里我们以Ubuntu 16.04为例。

1、安装必要的依赖:

```

sudo apt-get install build-essential apache2 libgd-dev libapache2-mod-php libperl-dev libssl-dev unzip

```

2、下载Nagios:

```

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.3.tar.gz

```

3、解压Nagios:

```

tar zxvf nagios-4.4.3.tar.gz

```

4、进入解压后的目录:

```

cd nagios-4.4.3

```

5、编译Nagios:

```

./configure --with-command-group=nagcmd

make all

sudo make install

sudo make install-commandmode

sudo make install-init

```

6、创建一个Nagios用户和组:

```

sudo useradd nagios

sudo groupadd nagcmd

sudo usermod -a -G nagcmd nagios

```

7、安装Nagios的Web界面:

```

sudo make install-webconf

sudo a2enmod rewrite

sudo a2enmod cgi

sudo systemctl restart apache2

```

8、下载Nagios插件:

```

cd ~/Downloads

wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz

tar zxvf nagios-plugins-2.3.3.tar.gz

cd nagios-plugins-2.3.3

```

9、编译并安装插件:

```

./configure --with-nagios-user=nagios --with-nagios-group=nagios

make

sudo make install

```

二、配置Nagios

1、配置联系人

在Nagios中,联系人是指负责接收告警信息和处理告警事宜的人员或组织。联系人的信息通常包括姓名、手机号、邮箱地址等。

在Nagios的配置文件中,联系人信息可以通过定义联系人对象来实现。例如,我们可以在`/usr/local/nagios/etc/objects/contacts.cfg`文件中定义一个联系人对象:

```

define contact {

contact_name admin

alias Nagios Admin

service_notification_period 24x7

host_notification_period 24x7

service_notification_options w,u,c,r

host_notification_options d,u,r

service_notification_commands notify-service-by-email

host_notification_commands notify-host-by-email

email admin@example.com

}

```

在这个联系人对象中,我们定义了一个联系人,名称为`admin`,别名为`Nagios Admin`,接收告警的邮箱为`admin@example.com`,告警通知的时间范围为全天24小时,告警通知方式为邮件,告警通知命令为`notify-service-by-email`和`notify-host-by-email`。

2、配置主机和服务

在Nagios中,主机和服务是需要进行监控的对象。主机通常是指服务器、网络设备等,服务通常是指CPU使用率、磁盘空间、HTTP服务等。我们需要在Nagios的配置文件中定义主机和服务对象,确定需要监控的指标和告警阈值。

例如,在`/usr/local/nagios/etc/objects/hosts.cfg`文件中我们可以定义一个主机对象:

```

define host {

use linux-server

host_name localhost

alias localhost

address 127.0.0.1

max_check_attempts 5

check_period 24x7

notification_interval 30

notification_period 24x7

contacts admin

}

```

在这个主机对象中,我们定义了一个名为localhost的主机,地址为127.0.0.1,检查周期为全天24小时,监控命令为`check-host-alive`,告警时间间隔为30分钟,告警通知命令为`notify-host-by-email`,告警通知联系人为`admin`。

类似的,我们可以在`/usr/local/nagios/etc/objects/services.cfg`文件中定义一个服务对象:

```

define service {

use generic-service

host_name localhost

service_description HTTP

check_command check_http

max_check_attempts 5

normal_check_interval 5

retry_check_interval 1

contact_groups admins

}

```

在这个服务对象中,我们定义了一个名为HTTP的服务,监控命令为`check_http`,检查时间间隔为5分钟,失败重试间隔为1分钟,告警通知人员组为`admins`。

3、配置监控命令和插件

Nagios需要使用监控命令和插件来实现监控功能。在Nagios的配置文件中,我们需要定义监控命令和插件的路径、参数等信息。

例如,在`/usr/local/nagios/etc/objects/commands.cfg`文件中定义一个监控命令:

```

define command {

command_name check_http

command_line $USER1$/check_http -I $HOSTADDRESS$ -w 5 -c 10

}

```

在这个监控命令中,我们定义了一个监控HTTP协议的命令,使用了Nagios插件中的`check_http`命令,使用的参数为`-I $HOSTADDRESS$ -w 5 -c 10`。

4、启动Nagios

配置文件完成后,我们需要启动Nagios服务来开始监控。在Ubuntu中,可以使用以下命令启动Nagios:

```

sudo systemctl start nagios

```

启动后,可以在浏览器中输入`http:///nagios`来访问Nagios的Web管理界面。默认管理员用户名为`nagiosadmin`,密码为`nagios`。

三、Nagios案例

1、监控Web服务

为了监控Web服务的状态,我们需要在Nagios的配置文件中定义一个HTTP服务。我们需要检查Web服务是否能够成功响应,如果响应失败则发送告警邮件。

在`/usr/local/nagios/etc/objects/hosts.cfg`文件中定义一个主机对象:

```

define host {

use linux-server

host_name web_host

alias Web Host

address web_host_IP

notification_options d,r

contact_groups admins

}

```

在`/usr/local/nagios/etc/objects/services.cfg`文件中定义一个HTTP服务对象:

```

define service {

use generic-service

host_name web_host

service_description Apache Status

check_command check_http

check_interval 2

contact_groups admins

notification_interval 30

max_check_attempts 5

}

```

在`/usr/local/nagios/etc/objects/commands.cfg`文件中定义一个`check_http`命令:

```

define command {

command_name check_http_web

command_line /usr/lib64/nagios/plugins/check_http -I $HOSTADDRESS$ -H $HOSTADDRESS$ -w 10 -c 15 -t 10

}

```

2、监控磁盘空间

为了监控磁盘空间,我们可以使用Nagios插件中的`check_disk`命令。我们需要检查磁盘空间是否超过95%,如果超过则发送告警邮件。

在`/usr/local/nagios/etc/objects/hosts.cfg`文件中定义一个主机对象:

```

define host {

use linux-server

host_name disk_host

alias Disk Host

address disk_host_IP

notification_options d,r

contact_groups admins

}

```

在`/usr/local/nagios/etc/objects/services.cfg`文件中定义一个磁盘空间监控服务对象:

```

define service {

use generic-service

host_name disk_host

service_description Disk Space

check_command check_disk!-w 20% -c 10%

notification_interval 30

contact_groups admins

max_check_attempts 5

}

```

在`/usr/local/nagios/etc/objects/commands.cfg`文件中定义一个`check_disk`命令:

```

define command {

command_name check_disk

command_line /usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$

}

```

3、监控CPU使用率

为了监控CPU使用率,我们可以使用Nagios插件中的`check_cpu.sh`脚本。我们需要检查CPU使用率是否超过80%,如果超过则发送告警邮件。

在`/usr/local/nagios/etc/objects/hosts.cfg`文件中定义一个主机对象:

```

define host {

use linux-server

host_name cpu_host

alias CPU Host

address cpu_host_IP

notification_options d,r

contact_groups admins

}

```

在`/usr/local/nagios/etc/objects/services.cfg`文件中定义一个CPU使用率监控服务对象:

```

define service {

use generic-service

host_name cpu_host

service_description CPU Usage

check_command check_cpu.sh!80!90

notification_interval 30

contact_groups admins

max_check_attempts 5

}

```

在`/usr/local/nagios/etc/objects/commands.cfg`文件中定义一个`check_cpu.sh`脚本:

```

define command{

command_name check_cpu.sh

command_line $USER1$/check_cpu.sh -w $ARG1$ -c $ARG2$

}

```

总结

在本文中,我们介绍了Nagios的安装、配置过程,并且提供了多个使用案例。使用Nagios可以方便地监控服务器、网络设备和应用程序的运行状态,避免因为运行异常导致的业务中断。

壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(39) 打赏

评论列表 共有 0 条评论

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