Nagios 通过 Clickatell 进行监控并发送短信警报

Nagios 通过 Clickatell 进行监控并发送短信警报

我正在尝试配置纳吉奥斯3 通过HTTP搜索某个字符串来监控服务器,命令check_http如下。

define command {
    command_name check_http-mysite
    command_line /usr/lib/nagios/plugins/check_http -H mysite.example.com -s "Some text" }

经过测试,HTTP 检查特定字符串工作正常。我一直尝试使用以下方法配置电子邮件到短信通知,但没有成功:点选SMTP API。我怎样才能让它工作?

我曾经遇到过一个例子调整 - Nagios 短信,但我好像错过了一些东西。

编辑:
我想我之前的解释很模糊。我试图以某种方式监控 Web 服务器,即我想通过 HTTP 在页面上搜索特定字符串。该命令在 command.cfg 中定义如下

    # 'check_http-mysite command definition'
    define command {
        command_name check_http-mysite
        command_line /usr/lib/nagios/plugins/check_http -H mysite.example.com -s "Some text" 
    }

    # 'notify-host-by-sms' command definition
    define command {
        command_name  notify-host-by-sms
        command_line  /usr/bin/send_sms $CONTACTPAGER$ "Nagios - $NOTIFICATIONTYPE$ :Host$HOSTALIAS$ is $HOSTSTATE$ ($OUTPUT$)"
    }

    # 'notify-service-by-sms' command definition
    define command {
        command_name  notify-service-by-sms
        command_line  /usr/bin/send_sms $CONTACTPAGER$ "Nagios - $NOTIFICATIONTYPE$: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ ($OUTPUT$)"
    }

现在,如果 Nagios 在主页上找不到“某些文本” mysite.example.com,Nag​​ios 应该通过 Clickatell HTTP API 通过短信通知联系人,我有一个脚本,我已经测试过并且发现它运行良好。

每当我更改命令定义以搜索页面上不存在的字符串并重新启动 Nagios 时,我都会在 Web 界面上看到未找到该字符串。我不明白的是,为什么没有发送通知,尽管我已经定义了主持人主机组接触联系组服务等等。我缺少的是,这些是我的定义,

主机配置文件

define host {
    use              generic-host
    host_name        HAL
    alias            IBM-1
    address          xxx.xxx.xxx.xxx
    check_command    check_http-mysite
}

主机组_nagios2.cfg

# my website
define hostgroup{
    hostgroup_name   my-servers
    alias            All My Servers
    members          HAL
}

contacts_nagios2.cfg

define contact {
    contact_name                    colin
    alias                           Colin Y
    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
    email                           [email protected]
    pager                           +254xxxxxxxxx
}

define contactgroup {
    contactgroup_name               site_admin
    alias                           Site Administrator
    members                         colin
}

服务_nagios2.cfg

# Check for particular string in page via HTTP.
define service {
    hostgroup_name                  my-servers
    service_description             STRING CHECK
    check_command                   check_http-mysite
    use                             generic-service
    notification_interval           0 ; Set > 0 if you want to be renotified.
    contacts                        colin
    contact_groups                  site_admin
}

我希望这次我已经清楚地解释我的问题了:-)

答案1

  1. 从命令行运行/usr/bin/send_sms以确保 Clickatell 正常工作。
  2. 看看nagios.log/var/log/messages看看你nagios: SERVICE NOTIFICATION“未找到字符串”在 Web 用户界面上。

相关内容