使用电子邮件通知定义 Nagios 联系人的 4 个步骤
Nagios 是最好的开源服务器和网络监控解决方案之一。使用灵活的 nagios 框架,您可以监控几乎所有内容(包括数据库和自定义应用程序)。本文使用 4 个简单的步骤,解释了如何设置在主机或服务出现任何问题时会收到通知的联系人定义。
1.在templates.cfg中定义通用联系人模板
Nagios 安装提供了一个默认的通用联系人模板,可用作构建联系人的参考。请注意,下面通用联系模板中提到的所有指令都是强制性的。因此,如果您决定不在您的联系人中使用通用联系人模板定义,您应该自己在您的联系人中定义所有这些强制性定义。
以下通用联系人已在 /usr/local/nagios/etc/objects/templates.cfg 下可用。此外,默认情况下,templates.cfg 包含在 nagios.cfg 中,如下所示。
请注意,当您使用此通用模板定义真实联系人时,templates.cfg 中提到的任何这些指令都可以被覆盖。
# grep templates /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
Note: generic-contact is available under
/usr/local/nagios/etc/objects/templates.cfg
define contact{
name generic-contact
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
host_notification_commands notify-host-by-email
register 0
}
- 名称- 这定义了联系人模板的名称(generic-contact)。
- service_notification_period – 这定义了 nagios 何时可以发送有关服务问题的通知(例如,Apache 关闭)。默认情况下,这是 24×7 时间段,在 /usr/local/nagios/etc/objects/timeperiods.cfg 下定义
- host_notification_period – 这定义了 nagios 何时可以发送有关主机问题的通知(例如,服务器崩溃)。默认情况下,这是 24×7 时间段。
- service_notification_options – 这定义了可以发出的服务通知的类型。默认情况下,这定义了所有可能的服务状态,包括摆动事件。这也包括预定的服务停机活动。
- host_notification_options – 这定义了可以发送的主机通知的类型。默认情况下,这定义了所有可能的主机状态,包括摆动事件。这还包括计划的主机停机活动。
- service_notification_commands – 默认情况下,这定义了联系人应通过电子邮件获取有关服务问题(例如,数据库关闭)的通知。您还可以定义其他命令并将其添加到该指令中。例如,您可以定义自己的 notify-service-by-sms 命令。
- host_notification_commands – 默认情况下,这定义了联系人应通过电子邮件获取有关主机问题(例如,主机关闭)的通知。您还可以定义其他命令并将其添加到该指令中。例如,您可以定义自己的 notify-host-by-sms 命令。
2.在contacts.cfg中定义个人联系人
如果您已确认通用联系人模板已正确定义,则可以开始为组织中从 nagios 收到任何通知的所有人员定义个人联系人定义。请注意,仅通过定义联系人并不意味着他们会收到通知。稍后您必须将此联系人与服务或主机定义相关联,如下面的后面部分所示。因此,请随意在此处定义所有可能的联系人。(例如,开发人员、DBA、系统管理员、IT 经理、客户服务经理、高层管理人员等)
Note: Define these contacts in /usr/local/nagios/etc/objects/contacts.cfg
define contact{
contact_name sgupta
use generic-contact
alias tiamo (Developer)
email tiamo@hgst.com.cn
pager 1234567@hgst.com.cn
}
define contact{
contact_name jbourne
use generic-contact
alias tiamo (Sysadmin)
email tiamo@hgst.com.cn
3.在contacts.cfg中定义具有多个联系人的联系人组
定义了各个联系人后,您还可以将它们组合在一起以发送相应的通知。例如,只有 DBA 需要收到有关数据库停机服务定义的通知。因此,可能需要一个 db-admins 组。此外,可能只有 Unix 系统管理员需要在 Apache 宕机时得到通知。因此,可能需要一个 unix-admins 组。随意定义您认为需要的多个组。稍后您可以在单独的服务和主机定义中使用这些组。
Note: Define contact groups in /usr/local/nagios/etc/objects/contacts.cfg
define contactgroup{
contactgroup_name db-admins
alias Database Administrators
members jsmith, jdoe, mraj
}
define contactgroup{
contactgroup_name unix-admins
alias Linux System Administrator
members jbourne, dpatel, mshankar
}
4. 将联系人组或个人联系人附加到服务和主机定义
一旦您定义了各个联系人和联系人组,就可以开始将它们附加到特定的主机或服务定义,如下所示。
Note: Following host is defined under
/usr/local/nagios/etc/objects/servers/email-server.cfg.
This can be any host definition file.
define host{
use linux-server
host_name email-server
alias Corporate Email Server
address 192.168.1.14
contact_groups unix-admins
}
Note: Following is defined under
/usr/local/nagios/etc/objects/servers/db-server.cfg.
This can be any host definition file.
define service{
use generic-service
host_name prod-db
service_description CPU Load
contact_groups unix-admins
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name prod-db
service_description MySQL Database Status
contact_groups db-admins
check_command check_mysql_db
}
- 点赞
- 收藏
- 关注作者
评论(0)