1. 引言
在Linux系统中,监控是确保系统稳定运行的重要手段。NRPE(Network Remote Procedure Executor)是一款开源的远程监控工具,它允许在远程主机上执行命令并获取结果,从而实现集中监控。本文将详细介绍NRPE的安装、配置以及如何编写简单的命令脚本,以便在Linux系统上进行监控与报警。
2. NRPE简介
NRPE是一款由Nagios开发的监控工具,它可以在被监控的Linux主机上运行,并将监控结果返回给Nagios服务器。NRPE使用插件进行监控,插件可以是shell脚本、Python脚本等,非常灵活。
3. NRPE安装与配置
3.1 安装NRPE
在Linux主机上安装NRPE,首先需要安装NRPE服务包。以下是在CentOS 7和Ubuntu 20.04上安装NRPE的示例:
CentOS 7:
# 安装NRPE服务包
yum install nrpe -y
Ubuntu 20.04:
# 安装NRPE服务包
apt-get install nrpe -y
3.2 配置NRPE
NRPE的主要配置文件位于/etc/nagios/nrpe.cfg。编辑该文件,添加以下内容:
command[check_disk]=/usr/local/nagios/plugins/check_disk -w 20% -c 10%
command[check_cpu]=/usr/local/nagios/plugins/check_cpu -w 80% -c 90%
command[check_memory]=/usr/local/nagios/plugins/check_memory -w 20% -c 10%
这里的command后面跟的是监控命令的名称,冒号后面是实际执行的命令路径。
3.3 配置NRPE服务
配置NRPE服务使其在启动时自动运行。以下是在CentOS 7和Ubuntu 20.04上配置NRPE服务的示例:
CentOS 7:
# 启用NRPE服务
systemctl enable nrpe.service
Ubuntu 20.04:
# 启用NRPE服务
systemctl enable nrpe.service
3.4 启动NRPE服务
启动NRPE服务,使其开始运行:
# 启动NRPE服务
systemctl start nrpe.service
4. 编写监控脚本
下面是一个简单的监控脚本示例,用于检查磁盘使用情况:
#!/bin/bash
# 获取磁盘使用率
usage=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
# 判断磁盘使用率是否超过阈值
if [ $usage -gt 20 ]; then
echo "Disk usage is above threshold!"
else
echo "Disk usage is normal."
fi
保存该脚本为check_disk.sh,并赋予执行权限:
chmod +x check_disk.sh
在NRPE配置文件/etc/nagios/nrpe.cfg中添加以下命令:
command[check_disk_usage]=/path/to/check_disk.sh
5. Nagios报警设置
在Nagios服务器上配置报警,需要在Nagios配置文件中添加以下内容:
define service{
host_name <主机名>
service_description Disk Usage
check_command check_disk_usage!20,10
}
这里check_command后面跟的是监控命令的名称和阈值。
6. 总结
通过本文的学习,我们了解到如何使用NRPE和命令脚本在Linux系统上进行监控与报警。在实际应用中,可以根据需求编写不同的监控脚本,并结合Nagios进行报警设置。希望本文对您有所帮助。
