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 root@10.18.221.81

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地址
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(注意:是在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 。

7.配置 /usr/local/nagios/etc/objects/templates.cfg, 先配置检查主机host状态的参数:

define host{
       name                            linux-server    ; 主机名称

       use                             generic-host    ; use表示引用,也就是将主机generic-host的所有属性引用到linux-server中来。
                                                       ; 在nagios配置中,很多情况下会用到引用。

       check_period                    24x7            ; 这里的check_period告诉nagios检查主机的时间段。

       check_interval                  5               ; nagios对主机的检查时间间隔,这里是5分钟。

       retry_interval                  1               ; 重试检查时间间隔,单位是分钟。

       max_check_attempts              10              ; nagios对主机的最大检查次数,也就是nagios在检查发现某主机异常时,并不马上判断为异常状况;而是多试几次,因为有可能只是一时网络太拥挤,或是一些其他原因,让主机受到了一点影响;这里的10就是最多试10次的意思。

       check_command                 check-host-alive  ; 指定检查主机状态的命令,其中“check-host-alive”在commands.cfg文件中定义。

       notification_period             24x7            ; 主机故障时,发送通知的时间范围,其中“workhours”在timeperiods.cfg中进行了定义。

       notification_interval           10              ; 在主机出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟。如果你觉得,所有的事件只需要一次通知就够了,可以把这里的选项设为0。

       notification_options            d,u,r           ; 定义主机在什么状态下可以发送通知给使用者,d即down,表示宕机状态。u即unreachable,表示不可到达状态。r即recovery,表示重新恢复状态。

         contact_groups                ts              ; 指定联系人组,这个“admins”在contacts.cfg文件中定义。

         register                      0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
         }

再配置检查服务service状态的参数:

define service{
	    name				    local-service 		    ; The name of this service template

	    use				        generic-service		    ; Inherit default values from the generic-service definition

      max_check_attempts                4			    ; Re-check the service up to 4 times in order to determine its final (hard) state

        normal_check_interval           5			    ; Check the service every 5 minutes under normal conditions

        retry_check_interval            1			    ; Re-check the service every minute until a hard state can be determined

        register                        0       	    ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
	}

如要添加监控server的服务,打开/usr/local/nagios/etc/objects/localhost.cfg,与配置node1同样的方法添加define service即可。

保存退出。重新加载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。

Nagios Services Page

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值