nagios配置监控HDFS的健康状态

步骤一:新建check_hdfs.sh文件并修改权限

	[root@master objects]# cd /usr/local/nagios/libexec/
	[root@master libexec]# vim check_hdfs.sh
	

#!/bin/sh

#set java environment
export JAVA_HOME=/usr/local/src/java
export JRE_HOME=/usr/local/src/java/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

#set hadoop environment
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

chk_hdfs=`hdfs fsck /user | grep 'filesystem under path'`
case $chk_hdfs in
	*HEALTHY*)
		echo "OK - HDFS is healthy"
		exit 0
	;;
	*)
		echo "CRITICAL - HDFS is corrupt!"
		exit 2
	;;
esac

[root@master libexec]# chmod 755 ./check_hdfs.sh
[root@master libexec]# chown nagios:nagios ./check_hdfs.sh

步骤二:编辑services.cfg文件

	[root@master libexec]# cd /usr/local/nagios/etc/objects
	[root@master objects]# vim services.cfg
#最后一行添加
define service{
        use                     generic-service            ;引用local-service服务>的属性值,local-service在templates.cfg文件中进行了定义。
        host_name               node1            ;指定要监控哪个主机上的服务,“Nagios-Server”在hosts.cfg文件中进行了定义。      
        service_description     check_hdfs_health        ;对监控服务内容的描述,>以供维护人员参考。           
	contact_groups		admins                              
        check_command           check_nrpe_hdfs!check_hdfs        ;指定检查的命令。      
        }

步骤三:编辑commands.cfg文件

	[root@master objects]# vim commands.cfg
#最后一行添加
define command{
        command_name    check_nrpe_hdfs
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 30
        }

步骤四:编辑nrpe.cfg文件

	[root@master objects]# cd ..
	[root@master etc]# vim nrpe.cfg
#添加
command[check_hdfs]=/usr/local/nagios/libexec/check_hdfs.sh

步骤五:验证hdfs的健康状态

[root@master etc]# cd 
[root@master libexec]# ./check_nrpe -H 192.168.103.223 -c check_hdfs
OK - HDFS is healthy

注意事项
问题: NRPE: Unable to read output
解决方法:确保/usr/local/nagios/libexec/下的脚本的权限

[root@master libexec]# chmod 755 ./check_hdfs.sh 
[root@master libexec]# chown  nagios:nagios ./check_hdfs.sh

问题:本地运行结果和nrpe远程调用不一致
解决方法:运行hdfs的命令需要有hadoop环境,故在脚本添加

#set java environment
export JAVA_HOME=/usr/local/src/java
export JRE_HOME=/usr/local/src/java/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

#set hadoop environment
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

你可能感兴趣的:(运维,大数据,linux,hadoop)