骞没蕴 发表于 2019-1-13 07:37:47

nagios短信监控

  首先编写messages.sh

  如果是yum安装的nagios,cd /usr/lib64/nagios/plugins/
  编译安装的话,就cd /usr/local/nagios/libexec
  内容如下:
  #! /bin/bash
  

  LOGFILE="/usr/local/nagios/var/sms_send_.log"#定义发送短信的日志信息 文件
  :>>"$LOGFILE"
  exec 1>>"$LOGFILE"
  exec 2>&1
  

  #Uid="luyuanz"    #接口的用户名,这个使用接口时对方会提供,我这里的test是随意写的
  #Key="Tcl123456"#接口的用户名,这个使用接口时对方会提供,我这里的test是随意写的
  

  MOBILE_NUMBER=$1 # 接受短信的手机号码
  CURL="/usr/bin/curl"
  TIMEOUT=5
  MESSAGE_ENCODE=$(echo $(/usr/local/php/bin/php -r "echo urlencode(\"$2\");"; ) )#这里的$2是nagios发送短信的第二个变量,即发送的内容
  #URL="http://192.168.1.252:8083/common/SendSM/?userCode=${Uid}&userPass=${Key}&DesNo=${MOBILE_NUMBER}&Msg=${MESSAGE_ENCODE}&Channel=0"
  #我这里的URL是胡乱写的,我不可能暴漏自己公司的接口哈,但是格式大体是这样的,到时候接口方会提供URL的格式的,你可以问你们自己公司负责短信接口的(这边是需要用户名和密码)
  # Send it
  URL="http://192.168.1.252:8083/common/send?mobile=${MOBILE_NUMBER}&content=${MESSAGE_ENCODE}"
  set -x
  DATE=`date +%T" "%F`
  echo $DATE
  ${CURL} -s --connect-timeout ${TIMEOUT} "${URL}"
  #/usr/bin/curl"${URL}"
  

  最后可以通过检测 bash messages.sh "186********" "内容",如果没收到信息,查看sms_send_.log日志。
  

  然后在/usr/local/nagios/etc/objects/commands.cfg添加一下内容
  define command {
       command_name notify-host-by-sms
       command_line messages.sh $CONTACTPAGER$ "$HOSTNAME$ $HOSTSTATE$ $SHORTDATETIME$"
       }

define command {
       command_name notify-service-by-sms
       command_line messages.sh $CONTACTPAGER$ "$SERVICESTATE$ $SERVICEOUTPUT$ $HOSTALIAS$/$SERVICEDESC$ $SHORTDATETIME$"
       }
  

  接着编写vim /usr/local/nagios/etc/objects/contacts.cfg
  添加内容如下:

  define contact{
  contact_name                  quotaadmin
  use                        generic-contact
  alias                         Nagios Admin
  email                         wangzai@****.cn
  service_notification_period          24x7
  host_notification_period            24x7
  service_notification_options          w,u,c,r,f,s
  host_notification_options       d,u,r,f,s
  service_notification_commands   notify-service-by-email,notify-service-by-sms
  host_notification_commands      notify-host-by-email,notify-host-by-sms
  pager 186******** (多个用逗号相隔)
  }
  

  define contactgroup{
  contactgroup_name       quotaadmins
  alias                   web Administrators
  members               quotaadmin
  }
  最后重启service nagios restart



页: [1]
查看完整版本: nagios短信监控