首次使用 Nagios

首次使用 Nagios

尝试启动并运行 nagios 但在这里卡了一段时间,不太确定我做错了什么...任何帮助都非常感谢 =)

/usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg

Checking contacts...
Error: Contact 'nagios' has no service notification commands defined!
Error: Contact 'nagios' has no host notification commands defined!

所以我认为这是我的 contacts.cfg 的问题?

define contact 
  contact_name          nagios 
  alias             Nagios Admin 
  host_notification_period24x7 
  service_notification_period   24x7 
  service_notification_options  w,u,c,r 
  host_notification_options d,u,r email             
  nagios-admin@localhost 
  can_submit_commands       1

或者也许是我的 contactgroups.cfg?

define contactgroup
  contactgroup_name localadmins
  alias             Local Site Administrators
  members           nagios

谢谢您的帮助!

答案1

您是否复制了所有示例 cfg 文件以供开始使用?

您的联系人或联系人组中应该有以下两行:

service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email

此外,它们需要被定义为命令,默认情况下应该是示例命令.cfg

答案2

看来您遗漏了几件事。

首先,确保在定义联系人时已正确定义,即...

define contact {                     
    contact_name                    INSERT_NAME_HERE;
    alias                           SOME_ALIAS_HERE;
    email                           EMAIL@EXAMPLE;
    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; send service notifications via email
    host_notification_commands      notify-host-by-email; send host notifications via email                  
    }

从您的帖子来看,您似乎缺少定义联系人开始和结束的 { }。看起来您还缺少错误消息中所述的内容。在我的部署中,我使用模板,实际上模板文件中的通用模板是一个很好的起点。创建联系人时,您可以通过在定义语句中调用它来引用这些通用模板,如下所示:

define contact {
     contact_name                       INSERT_NAME_HERE;
     use                                generic-contact;
     alias                              SOME_ALLIAS_HERE;
     email                              EMAIL@EXAMPLE;
     }

然后,您的联系人定义将从通用模板继承所有默认值。

希望这可以帮助。

答案3

您缺少选项service_notification_commandshost_notification_commands notify-host-by-email因此 nagios 不知道在收到警报时该做什么。

email电子邮件地址前也缺少关键字

我的 nagios 联系人如下:

define contact {
        contact_name    george
        alias   george
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-service-by-email <-- Missing
        host_notification_commands      notify-host-by-email    <-- Missing
        email   [email protected]
}

这告诉 nagios 向选项中指定的帐户发送电子邮件email。在本例中[电子邮件保护]

答案4

这是一篇旧帖子,但如果有人遇到此问题,我会分享我的意见。
您可以在 UI 中添加命令
CoreConfigManager->联系人->(选择联系人)->警报设置

别忘了应用配置在那之后。 :)

相关内容