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案例 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内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。 我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!
发表评论 取消回复