Ubuntu16.04 Hadoop集群部署ngaios(Node节点部署)

在开始Node节点部署之前,假设读者已经完成了Nagios Server的nagios部署(可看我上一遍Server部署https://blog.csdn.net/ITOMG/article/details/88057109)。本篇文章主要是在从节点Node1上部署NRPE实现Server对从机的Nagios监控。将给Nagios Server添加新的监控对象。每次需要添加新的Node监控对象时,只需操作本章节中的步骤即可。环境:

环境:

Nagios Server IP : 10.18.221.80

Nagios Node1 IP : 10.18.221.81

Nagios Node2 IP : 10.18.221.82

...

1.连接到Node1节点:

ssh [email protected]

2.安装Nagios插件和NRPE:

sudo apt-get install nagios-plugins nagios-nrpe-server

3.配置Allowed Hosts

用vim打开NRPE的配置文件:

sudo vim /etc/nagios/nrpe.cfg

找到allowed_hosts这一行,将Nagios Server的IP地址加到末尾,那么Node1就允许来自该IP的请求访问本机的NRPE了。

allowed_hosts=127.0.0.1,10.18.221.80

4.配置Allowed NRPE Commands

检查一下根文件系统的名称:

df -h /

我们要让NRPE监控这个名称,以获取磁盘使用率的情况(一般来说这个名称会是/dev/vda)。用编辑器打开nrpe.cfg文件:

sudo vim /etc/nagios/nrpe.cfg

找到三个配置项改动完成之后看起来应该是这样的格式:

server_address=client_private_IP  Node1 IP地址
allowed_hosts=nagios_server_private_IP  Server IP地址
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda  使用df -h /查到的文件系统名称(/dev/vda)

此外还有一些其他的配置项,可以按你的需求进行改动。默认状态下NRPE会监听5666端口(server_port=5666),请确保你的防火墙不会阻挡该端口。配置好了之后,保存退出。

5.重启NRPE

sudo service nagios-nrpe-server restart

6.在Nagios Server上添加Node1配置文件

首先回到Nagios Server,我们在上一篇中创建了一个新的目录用于保存配置文件/usr/local/nagios/etc/servers,因为每一个要监控的服务器都有一个单独的配置文件。所以我们为刚才的Node1创建一个新的配置文件:

sudo vim /usr/local/nagios/etc/servers/Node1.cfg

将如下内容复制粘贴进去。其中的host_name填写你那台主机的名称,alias填写该主机的描述,address填写你那台主机的IP地址:

define host {
        use                             linux-server
        host_name                       Node1
        alias                           Hadoop Node1
        address                         10.18.221.81  Node1 IP
        max_check_attempts              5
        check_period                    24x7          7x24小时监控
        notification_interval           30
        notification_period             24x7
}

这样一份配置文件只会让Nagios监控该服务器的在线状态。如果你需要监控特定的服务,还需要继续完善该文件。下面是一些常用的监控功能,可以按需要取用。其中每一项中的check_command决定了监控的内容,包括了监控项的阈值。

define service {
      host_name                       Node1
      service_description             PING
      check_command                   check_ping!100.0,20%!500.0,60%
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       Node1
      service_description             Check Users
      check_command                   check_local_users!20!50
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       Node1
      service_description             Local Disk
      check_command                   check_local_disk!20%!10%!/
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       Node1
      service_description             Check SSH
      check_command                   check_ssh
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       Node1
      service_description             Total Process
      check_command                   check_local_procs!250!400!RSZDT
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

如果你想添加更多的服务,如DHCP,POP等,可以在/usr/local/nagios/etc/objects/commands.cfg文件中找到许多check_command 。

保存退出。重新加载Nagios配置项以使变更生效:

sudo service nagios reload

查看配置是否正确:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

7.重新启动所有服务

在Nagios Server上,启动Apache和Nagios:

service apache2 restart
service nagios restart

在Node1上启动NRPE服务:

service nagios-nrpe-server restart

8.测试Nagios服务

从浏览器打开10.18.221.80/nagios,并查看受监控的Node1。

Ubuntu16.04 Hadoop集群部署ngaios(Node节点部署)

到此为止,一个可以监控集群的Nagios服务算是初步建成了。但还有各种NRPE的监控命令还需要我们慢慢学习,应用在后续的监控服务中,可以通过:

cd /usr/local/nagios/etc
cat nrpe.cfg |grep -v "^#"|grep -v "^$"

如果发现想要监控的服务没有定义,也可以手动在nrpe.cfg 中添加,也就是自定义NRPE命令。后续会开一篇专门针对如何定义NRPE监控命令的Blog。本篇就到此结束了~