Nagios 松弛通道集成
Posted
技术标签:
【中文标题】Nagios 松弛通道集成【英文标题】:Nagios slack channel integration 【发布时间】:2021-06-07 16:06:02 【问题描述】:我正在使用 slack_nagios.pl 脚本。 Ubuntu 14.05 和 Nagios 4.4.5 https://raw.githubusercontent.com/tinyspeck/services-examples/master/nagios.pl 我有一个频道工作,但我需要向不同的频道发送通知。就我而言:警告已转到“it_warning”,严重警报必须转到“it_critical”。我已经创建了 2 组如下所示的松弛通知命令,但我始终只在一个通道中收到警报(警告)。就像 slack 不能在 2 个命令之间有所不同,尽管在“slack”联系人的 service_notification_options 部分中有 w,r 而在“slack_critical”中有 c,r。
没有收到错误,单独测试通道工作正常。 你能帮助我或指出正确的方向吗?
define contact
contact_name slack
alias Slack
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,r
host_notification_options d,r
service_notification_commands notify-service-by-slack
host_notification_commands notify-host-by-slack
define contact
contact_name slack_critical
alias Slack_critical
service_notification_period 24x7
host_notification_period 24x7
service_notification_options c,r
host_notification_options d,r
service_notification_commands notify-service-critical-by-slack
host_notification_commands notify-host-critical-by-slack
define contactgroup
contactgroup_name admins
alias Nagios Administrators
members slack,nagiosadmin,slack_critical
define command
command_name notify-service-by-slack
command_line /usr/local/bin/slack_nagios.pl -field slack_channel=#it-warnings -field HOSTALIAS="$HOSTNAME$" -field SERVICEDESC="$SERVICEDESC$" -field SERVICESTATE="$SERVICESTATE$$
define command
command_name notify-host-by-slack
command_line /usr/local/bin/slack_nagios.pl -field slack_channel=#it-warnings -field HOSTALIAS="$HOSTNAME$" -field HOSTSTATE="$HOSTSTATE$" -field HOSTOUTPUT="$HOSTOUTPUT$" -field$
define command
command_name notify-service-critical-by-slack
command_line /usr/local/bin/slack_nagios.pl -field slack_channel=#it-critical -field HOSTALIAS="$HOSTNAME$" -field SERVICEDESC="$SERVICEDESC$" -field SERVICESTATE="$SERVICESTATE$$
define command
command_name notify-host-critical-by-slack
command_line /usr/local/bin/slack_nagios.pl -field slack_channel=#it-critical -field HOSTALIAS="$HOSTNAME$" -field HOSTSTATE="$HOSTSTATE$" -field HOSTOUTPUT="$HOSTOUTPUT$" -field$
【问题讨论】:
“它不起作用”不是可接受的问题描述 谢谢。我已经用更多数据编辑了帖子。 您应该从阅读 nagios.log 开始,并在您希望通知发出时查看它的内容。它会告诉你正在使用哪个命令。如果您只在#it-warnings
中收到消息,那可能是因为“松弛”联系人或底层命令是唯一使用的。
您好,我已经发布了解决方案。有感觉就来看看吧。谢谢
【参考方案1】:
我已经找到了解决方案。这里是配置警告警报以发送到特定通道并将严重警报发送到另一个通道的步骤。
您必须创建 2 个单独的文件,其中包含联系人、组和命令,如下所示,更改频道、service_notification_options、service_notification_commands、host_notification_commands 不要忘记将contact_groups(将为2)添加到您定义服务的文件中。如果可以的话,请给我点赞。谢谢!
define contact
contact_name slack
alias Slack
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,r
host_notification_options d,r
service_notification_commands notify-service-by-slack
host_notification_commands notify-host-by-slack
define contactgroup
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin,slack
define command
command_name notify-service-by-slack
command_line /usr/local/bin/slack_nagios.pl -field slack_channel=#it-alerts-test -field HOSTALIAS="$HOSTNAME$" -field HOSTSTATE="$HOSTSTATE$" -field HOSTOUTPUT="$HOSTOUTPUT$" -field NOTIFICATIONTYPE="$NOTIFICATIONTYPE$"
define command
command_name notify-host-by-slack
command_line /usr/local/bin/slack_nagios.pl -field slack_channel=#it-alerts-test -field HOSTALIAS="$HOSTNAME$" -field HOSTSTATE="$HOSTSTATE$" -field HOSTOUTPUT="$HOSTOUTPUT$" -field NOTIFICATIONTYPE="$NOTIFICATIONTYPE$"
define service
name generic-service
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 3
check_interval 10
retry_interval 2
contact_groups admins,admins_critical
notification_interval 60
notification_period 24x7
【讨论】:
以上是关于Nagios 松弛通道集成的主要内容,如果未能解决你的问题,请参考以下文章
sh 如果进程不再运行,则通知松弛通道/用户 - 以:./ slack_notify.sh <在proc中正在查看的内容开始