mfs 监控脚本

最近一直在测试mfs,最后在线上测试完毕后,开始整理监控mfs,

mfs监控指标

  1. 监听端口
  2. 监听进程
  3. 监听vip
  4. 监听读写

现在附监控进程是否存活shell脚本,仅供参考

[email protected]:/usr/local/nagios/libexec/New# cat check_mfs.sh 
#!/bin/bash
# ===========================================================================================================
#
# MFS status check plugins for nagios
#
# Written by    : caimengzhi
# Release       : 1.0
# Create Date   : 2017-01-12
# Description   : Nagios plugins (script) to check MFS status 
#
# ===========================================================================================================
# Nagios return codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
status=0

#Get Master server Process
Master(){
    MFS_PID=$(ps -ef | grep -v grep | grep mfsmaster | wc -l)
    if [ ${MFS_PID} -eq  0 ];then
        echo "ERROR : mfs master does not start"
        exit $STATE_CRITICAL
    else 
        echo "OK : mfs master server running OK!"
        exit $STATE_OK
    fi
}

#Get chunker server Process
Chunker(){
    MFS_PID=$(ps -ef | grep -v grep | grep mfschunkserver | wc -l)
    
    if [ ${MFS_PID} -eq 0 ];then
        echo "ERROR : mfs chunkserver does not start"
        exit $STATE_CRITICAL
    else
        echo "OK : mfs master chunkserver running OK!"
        exit $STATE_OK
    fi
}

Disk_used(){
    Disk_used=`df -h | grep ${mountpoint} |awk ‘{print $4}‘`
    
    if [ ${Disk_used%/%} -ge ${warningdiskused} -a ${Disk_used%/%} -lt ${criticaldiskused}  ];then
        echo "Waring :mfs disk used Rate is "${Disk_used}""
        exit $STATE_WARNING
    elif [ ${Disk_used%/%} -ge ${criticaldiskused} ];then
        echo "CRITICAL :mfs disk used Rate is "${Disk_used}""
        exit $STATE_CRITICAL
    elif [ "${Disk_used%/%}" = "" ];then
        echo "CRITICAL :mfs client not mount on"
        exit $STATE_CRITICAL
    else 
        echo "OK : MFS client mount on and disk used rate is "${Disk_used}" , Everything is OK!"
        exit $STATE_OK
    fi
}

#Get metalogger server Process
Metalogger(){
    MFS_PID=$(ps -ef | grep -v grep | grep mfsmetalogger | wc -l)
    
    if [ ${MFS_PID} -eq 0 ];then
        echo "ERROR : mfs mfsmetalogger does not start"
        exit $STATE_CRITICAL
    else
        echo "OK : mfs master mfsmetalogger running OK!"
        exit $STATE_OK
    fi
}

# Functions plugin usage
print_usage()
{
    echo ""
    echo " -M MFS master server  status "
    echo " -C MFS chunker server status "
    echo " -U MFS client disk used Rate "
    echo " -L MFS metalogger server status "
    echo " -h  Show this page "
    echo ""
    echo " Usage1 : sh check_mfs.sh -M mfsmasterpath"
    echo "     ex : sh check_mfs.sh -M /usr/sbin/mfs"
    echo " Usage2 : sh check_mfs.sh -C mfschunkpath"
    echo "     ex : sh check_mfs.sh -C /usr/sbin/mfs"
    echo " Usage3 : sh check_mfs.sh -U mountpoint warningrate criticalrate"
    echo "     ex : sh check_mfs.sh -U /mnt/mfs 60 80"
    echo " Usage4 : sh check_mfs.sh -L mfsmetaloggerpath"
    echo "     ex : sh check_mfs.sh -L /usr/sbin/mfs"
    echo "     ex : sh check_mfs.sh -h"
    echo ""
    exit 0
}

if [ $# -ne 1 ]; then
        echo "Pls input sh  $0 -h and check."
        print_usage
        exit 1;
fi

# Parse parameter
while [ $# -gt 0 ]
do
    case "$1" in 
      -H | -h | --help)
         print_usage
         exit $STATE_OK
         ;;
      -M | -m | --master)
         Master
         ;;
      -C | -c | --chunker)
         Chunker
         ;;
      -U | -u | --usedwarning)
         mountpoint=${2:-"/mnt/mfs"}
         warningdiskused=${3:-"75"}
         criticaldiskused=${4:-"85"}
         Disk_used
         ;;
      -L | -l | --metalogger)
         Metalogger
         ;;
      *)   
         echo "Unknown argement: $1"
         print_usage
         exit $STATE_UNKNOWN
         ;;
    esac
shift
done
exit 0

以下是测试效果

[email protected]:/usr/local/nagios/libexec/New# ps aux|grep mfs
root      1148  0.0  0.0   8112   936 pts/0    S+   13:29   0:00 grep --color=auto mfs
mfs       6021  1.2  0.3 455572 204124 ?       S<l   2016 246:19 /usr/sbin/mfschunkserver start
mfs       6039  0.1  0.0  17748  1516 ?        S<    2016  30:49 /usr/sbin/mfsmetalogger start
mfs      23784  0.3  0.7 534044 501192 ?       S<    2016  91:43 /usr/sbin/mfsmaster start
[email protected]:/usr/local/nagios/libexec/New# ./check_mfs.sh -m
OK : mfs master server running OK!
[email protected]:/usr/local/nagios/libexec/New# ./check_mfs.sh -M
OK : mfs master server running OK!
[email protected]:/usr/local/nagios/libexec/New# ./check_mfs.sh -l
OK : mfs master mfsmetalogger running OK!
[email protected]:/usr/local/nagios/libexec/New# ./check_mfs.sh -L
OK : mfs master mfsmetalogger running OK!
[email protected]:/usr/local/nagios/libexec/New# ./check_mfs.sh -c
OK : mfs master chunkserver running OK!
[email protected]:/usr/local/nagios/libexec/New# ./check_mfs.sh -C
OK : mfs master chunkserver running OK!
[email protected]:/usr/local/nagios/libexec/New# ./check_mfs.sh 
Pls input sh  ./check_mfs.sh -h and check.
------------------------------------------------------------------
 -M MFS master server  status 
 -C MFS chunker server status 
 -U MFS client disk used Rate 
 -L MFS metalogger server status 
 -h  Show this page 
 Usage1 : sh check_mfs.sh -M mfsmasterpath
     ex : sh check_mfs.sh -M /usr/sbin/mfs
 Usage2 : sh check_mfs.sh -C mfschunkpath
     ex : sh check_mfs.sh -C /usr/sbin/mfs
 Usage3 : sh check_mfs.sh -U mountpoint warningrate criticalrate
     ex : sh check_mfs.sh -U /mnt/mfs 60 80
 Usage4 : sh check_mfs.sh -L mfsmetaloggerpath
     ex : sh check_mfs.sh -L /usr/sbin/mfs
     ex : sh check_mfs.sh -h
------------------------------------------------------------------
时间: 2024-10-06 01:09:56

mfs 监控脚本的相关文章

监控脚本

zabbix监控脚本 #!/bin/bash # Script to fetch ngstatus statuses for tribily monitoring systems # Author: [email protected] # License: GPLv2 # Set Variables HOST=`/sbin/ifconfig eth2 | sed -n '/inet /{s/.*addr://;s/ .*//;p}'` PORT="80" # Functions to

通过collectd工具获取虚拟机的nagios监控脚本简单例子

在宿主机上安装collectd工具后,可以通过collectd工具来获取宿主机上的虚拟机的cpu,memery,if-traffic等数据.可以通过nagios监控脚本来实现对这些数据监控. 以下是一个简单的监控虚拟机内存脚本: #!/bin/bash #Desc:to check memory about vm instance STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 COLLECTD_HOME=/usr/loca

[主机/oracle/msyql] 监控脚本

为了方便自己测试和监控,写了三个监控的脚本. 分别监控: 主机[cpu,mem,disk,fs,net] oracle mysql 脚本如下: hmon.py: monitor Linux os system including cpu,memory,disk,net,file system at a regular interval. mmon.py: monitor MySQL DataBase with innodb engine on Linux platform at a regula

Nagios中官方iptables监控脚本调整

在Nagios的官方网站上有提供一个用于监控iptables的状态的脚本,但是官方提供的脚本直接是不能使用的需要修改才能使用,在这里就大致所以下,因为Nagios的中命令机制是使用Nagios用户运行的,所以在官网上提供的脚本没有做出调整前是无法正常使用的,官网提供的iptables监控脚本很简单,是使用iptables的指令统计出INPUT上实时的条数的有多少,如果条数-1小于0就告警.但是在普通用户是无法正常使用iptables的命令,如果没有做出调整在Nagios中会出现NRPE:Unab

Cacti 模板(图形模板、数据模板、主机模板)与自定义监控脚本

Cacti定义了三种类型的模板,分别是 主机模板 数据模板 图形模板     主机模板(Host templates),它是图像模板和数据查询的一个集合,描述了监控某一类型的机器需要生成那些图像. 数据模板(Data templates),它描述了 Cacti 存储哪些数据到指定类型的 RRD 文件.该模板与 RRDTool 工具的 create 命令相关. 图形模板(Graph templates),描述了生成的一张图像应该是什么样子的.包括使用哪些数据模板.展示哪些元素.是否使用 CDEF

AWS Centos磁盘和内存监控脚本

在centos上使用aws硬盘和内存监控脚本,会发现脚本出错,无法正常工作,这是因为aws的官方文档中提到脚本没有在centos上做过测试,并不能保证脚本能使用 如何解决呢,需要安装以下软件: yum install -y perl-CPAN       exportPERL_MM_USE_DEFAULT=1 # setup defaultconfig perl -MCPAN -e shell #进入MCPAN Shell,自动生成默认配置,并退出       # 类似于yum,下载安装各种包,

几个常用的Linux监控脚本

几个常用的Linux监控脚本 几个常用的Linux监控脚本下面是几个主机监控的脚本,大家可以根据自己的情况再进行修改,希望能给大家一点帮助.1.查看主机网卡流量#!/bin/bash#network#Mike.Xuwhile : ; dotime='date +%m"-"%d" "%k":"%M'day='date +%m"-"%d'rx_before='ifconfig eth0|sed -n "8"p|

mysql和nginx服务是否正常监控脚本

一.监控web服务器和mysql方法 1.监控端口(nginx也相同) 1.1本地监控 netstat -tunlp|grep 3306|wc -l ss -tunlp|grep 3306|wc -l 1.2远程监控 nmap 10.117.33.98 -p 3306|grep open|wc -l echo -e "\n"|telnet 10.117.33.98 3306 2>/dev/null |grep Connected|wc -l 2.监控进程(nginx同) ps -

编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件

发送邮件Python程序 #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import smtplib import email.mime.multipart import email.mime.text server = 'smtp.163.com' port = '25' def sendmail(server,port,user,pwd,msg): smtp = smtplib.SMTP() smtp.connect(server,