目录
监控与报警
在Linux系统中,持续监控系统资源使用情况并及时发现潜在问题是保证系统稳定运行的关键。下面将详细介绍如何使用Nagios和Zabbix等工具来实现监控与报警功能。
实时监控
Nagios 和 Zabbix 是两种非常流行的监控工具,可以用来监控服务器的CPU使用率、内存使用情况、磁盘空间等资源。
示例
假设要使用Nagios来监控一台远程服务器,并在关键指标超出正常范围时发出警报。
-
安装Nagios:
sudo apt update sudo apt install nagios nagios-plugins nagios-nrpe-server
2.配置Nagios服务器:
- 编辑
/etc/nagios/nrpe.cfg
文件,添加远程主机的监控插件。# 编辑 nrpe.cfg 文件 sudo nano /etc/nagios/nrpe.cfg
- 添加以下行:
# 监控远程主机的CPU使用率 command[check_cpu]=/usr/lib/nagios/plugins/check_cpu # 监控远程主机的磁盘空间 command[check_disk]=/usr/lib/nagios/plugins/check_disk
3.重启Nagios服务:
sudo systemctl restart nagios
4.配置远程主机:
- 安装Nagios NRPE客户端。
sudo apt install nagios-nrpe-server
- 编辑
/etc/nagios/nrpe.cfg
文件。# 编辑 nrpe.cfg 文件 sudo nano /etc/nagios/nrpe.cfg
- 添加以下行:
# 允许Nagios服务器访问 allowed_hosts=nagios.example.com # 监控CPU使用率 command[check_cpu]=/usr/lib/nagios/plugins/check_cpu # 监控磁盘空间 command[check_disk]=/usr/lib/nagios/plugins/check_disk
5.重启NRPE服务:
sudo systemctl restart nagios-nrpe-server
6.配置Nagios服务器:
- 创建一个新主机定义文件。
sudo nano /etc/nagios/objects/hosts/remote_host.cfg
- 添加以下行:
define host{ use linux-server host_name remote_host alias Remote Host address 192.168.1.100 check_command check_nrpe!check_cpu!check_disk }
7.重启Nagios服务:
sudo systemctl restart nagios
8.访问Nagios Web界面:
- 通过Web浏览器访问Nagios Web界面。
http://nagios.example.com/nagios
9.配置报警机制:
- 编辑
/etc/nagios/objects/contacts/admin.cfg
文件。sudo nano /etc/nagios/objects/contacts/admin.cfg
- 添加以下行:
# 配置报警接收人 define contact{ contact_name admin alias Administrator email [email protected] pager 123-456-7890 }
10.配置报警通知:
- 编辑
/etc/nagios/objects/commands/check_command.cfg
文件。sudo nano /etc/nagios/objects/commands/check_command.cfg
- 添加以下行:
# 配置报警命令 define command{ command_name check_remote_host command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_cpu -c check_disk }
11.配置报警策略:
- 编辑
/etc/nagios/objects/hostgroups/hostgroup.cfg
文件。sudo nano /etc/nagios/objects/hostgroups/hostgroup.cfg
- 添加以下行:
# 配置报警策略 define hostgroup{ hostgroup_name servers alias Server Group members remote_host }
12.重启Nagios服务:
sudo systemctl restart nagios
示例代码
Nagios配置示例
- 配置Nagios服务器:
# 编辑 nrpe.cfg 文件
sudo nano /etc/nagios/nrpe.cfg
# 添加以下行
command[check_cpu]=/usr/lib/nagios/plugins/check_cpu
command[check_disk]=/usr/lib/nagios/plugins/check_disk
- 重启Nagios服务:
sudo systemctl restart nagios
- 配置远程主机:
# 编辑 nrpe.cfg 文件 sudo nano /etc/nagios/nrpe.cfg # 添加以下行 allowed_hosts=nagios.example.com command[check_cpu]=/usr/lib/nagios/plugins/check_cpu command[check_disk]=/usr/lib/nagios/plugins/check_disk
- 重启NRPE服务:
sudo systemctl restart nagios-nrpe-server
-
配置Nagios服务器:
# 创建一个新主机定义文件 sudo nano /etc/nagios/objects/hosts/remote_host.cfg # 添加以下行 define host{ use linux-server host_name remote_host alias Remote Host address 192.168.1.100 check_command check_nrpe!check_cpu!check_disk }
-
配置报警机制:
# 编辑 admin.cfg 文件 sudo nano /etc/nagios/objects/contacts/admin.cfg # 添加以下行 define contact{ contact_name admin alias Administrator email [email protected] pager 123-456-7890 }
-
配置报警通知:
# 编辑 check_command.cfg 文件 sudo nano /etc/nagios/objects/commands/check_command.cfg # 添加以下行 define command{ command_name check_remote_host command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_cpu -c check_disk }
-
配置报警策略:
# 编辑 hostgroup.cfg 文件 sudo nano /etc/nagios/objects/hostgroups/hostgroup.cfg # 添加以下行 define hostgroup{ hostgroup_name servers alias Server Group members remote_host }
-
重启Nagios服务:
sudo systemctl restart nagios