如何使用 Nagios 核心 4.x 监控 ubuntu 服务器

如何使用 Nagios 服务器监控远程主机。
首先,为了能够监控远程主机服务器,我们需要通过(可选)SSL 保护的连接来 NRPE 守护程序,该连接将由在 nagios 服务器上执行的 check_nrpe 联系以运行适当的 Nagios 插件。

1. 安装 NRPE Daemon 和 Nagios 插件

NRPE 在 Ubuntu 系统的默认 apt 存储库下可用。
执行以下命令进行安装

# apt install nagios-nrpe-server nagios-plugins

2.配置NRPE守护进程

允许我们的 Nagios 服务器在我们的远程主机中执行检查插件:
首先,我们需要编辑 /etc/nagios/nrpe.cfg 文件并将监控服务器的 IP 地址添加到 allowed_hosts 指令中,并将 dont_blame_nrpe 值从 0 修改为 1 以允许命令参数。

# vi /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1, 192.168.1.17 # add your nagios_ip_address 
dont_blame_nrpe=1

其次,我们需要将以下条目 nrpe 5666/tcp # NRPE for the NRPE daemon 添加到 /etc/services 文件中。

# vi /etc/services 
nrpe 5666/tcp # NRPE

最后,我们需要重新启动我们的 NRPE 守护进程,打开防火墙规则并进行一些检查以验证一切是否正常。

# firewall-cmd --permanent --add-port=5666/tcp
# firewall-cmd --reload
# systemctl restart nagios-nrpe-server
# netstat -at | grep nrpe
tcp 0 0 *:nrpe *:* LISTEN
tcp6 0 0 [::]:nrpe [::]:* LISTEN

3.在NRPE中添加检查命令

默认情况下,在文件 /etc/nagios/nrpe.cfg 中安装 NRPE 守护程序后,它将创建一些命令,如下所示。

command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

在这里我将添加更多命令

command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_sda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
command[check_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200 -s RSZDT
command[check_disk_root]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /
command[check_swap]=/usr/lib/nagios/plugins/check_swap -w 20% -c 10%

每次我们对配置文件进行任何更改时,我们都需要重新启动 nrpe 服务。

# systemctl restart nagios-nrpe-server

4.添加远程主机到监控Nagios服务器

让我们转到我们的监控 nagios 服务器。

i.) 创建命令定义

首先,为了能够使用 check_nrpe 插件,我们需要在 commands.cfg 文件中创建一个命令定义。

# vi /usr/local/nagios/etc/commands.cfg

并将以下定义添加到文件中:

define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$-c $ARG1$
}

ii.) 组织 Nagios 配置

  • 打开nagios文件配置:
# sudo vi /usr/local/nagios/etc/nagios.cfg
  • 取消注释这一行
cfg_dir=/usr/local/nagios/etc/servers
  • 创建服务器目录,我们将其中存储我们将监控的每个服务器的配置文件
# sudo mkdir /usr/local/nagios/etc/servers
# chown -R nagios.nagios /usr/local/nagios

iii.) 配置 Nagios 联系人

# sudo vi /usr/local/nagios/etc/objects/contacts.cfg 
email     jack@onitroad        ; # CHANGE THIS TO YOUR EMAIL ADDRESS

iiii.) 创建主机和服务定义

  • 在/usr/local/nagios/servers/目录下新建一个远程主机文件配置,并添加要监控的主机定义和服务定义。
# vi /usr/local/nagios/etc/servers/node01.cfg
## HOST DEFINITION###############################################################################
define host{
use linux-server
host_name node01 #PUT HERE YOUR HOSTNAME REMOTE SERVER
alias node01 #PUT HERE THE ALIAS OF YOUR REMOTE SERVER
address 192.168.1.55 #PUT HERE THE IP ADDRESS OF YOUR REMOTE SERVER
max_check_attempts 5
check_period 24x7
notification_interval 30
notification_period 24x7
}###############################################################################
## HOST SERVICES DEFINITION###############################################################################
define service{
use generic-service
host_name node01
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service {
use generic-service
host_name node01
service_description SSH
check_command check_ssh
notifications_enabled 0
}
# for free disk SDA1
define service{
use generic-service
host_name node01
service_description SDA1 Disk
check_command check_nrpe!check_sda1
}
# for free Root Partition
define service{
use generic-service
host_name node01
service_description Root Partition
check_command check_nrpe!check_disk_root
}
# for current users
define service{
use generic-service
host_name node01
service_description Current Users
check_command check_nrpe!check_users
}
# for total processes
define service{
use generic-service
host_name node01
service_description Total Processes
check_command check_nrpe!check_procs
}
# for current load
define service{
use generic-service
host_name node01
service_description Current Load
check_command check_nrpe!check_load
}
  • 使用此命令验证 nagios 配置文件
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  • 重启nagios
# systemctl restart nagios
  • 最后打开nagios web界面查看远程主机是否添加正确。
日期:2020-06-02 22:18:59 来源:oir作者:oir