Hello.

Email notification of Opsview distributed monitoring sturcture is occurring
in each slave.
but Mail configuration for every slaves are chore and I had the problem that
slave didn't send notify mail for passive check.

So I tried to modify all mail notification to be done on the master server.
After I knowing that all notify by atom is done by master, I added the
following code at the bottom of /usr/local/bin/atom-generator file.
It works well as i expected.

Note: You must enable both "Notify by Email" and "Notify by WebFeed".
          Delete or disable mail agent on every slave not to receive
duplicated mail.

Thank you.

----------------- cut here ------------------
# Send mail
if ( $ENV{NAGIOS_SERVICEDESC} ) {
    # IF Service

    my $mail_title = qq/"$ENV{NAGIOS_NOTIFICATIONTYPE}:
$ENV{NAGIOS_SERVICEDESC} is $ENV{NAGIOS_SERVICESTATE} on
$ENV{NAGIOS_HOSTNAME}"/;
    my $mail_receiver = $ENV{NAGIOS_CONTACTEMAIL};
    my $mail_content = <<"MAIL1";
$ENV{NAGIOS_NOTIFICATIONTYPE}: $ENV{NAGIOS_SERVICEDESC} is
$ENV{NAGIOS_SERVICESTATE} on host $ENV{NAGIOS_HOSTNAME}:
$ENV{NAGIOS_SERVICEOUT
PUT}

Service: $ENV{NAGIOS_SERVICEDESC}
Host: $ENV{NAGIOS_HOSTNAME}
Alias: $ENV{NAGIOS_HOSTALIAS}
Address: $ENV{NAGIOS_HOSTADDRESS}
State: $ENV{NAGIOS_SERVICESTATE}
Comment: $ENV{NAGIOS_SERVICEACKCOMMENT} ($ENV{NAGIOS_SERVICEACKAUTHOR})
Date/Time: $ENV{NAGIOS_LONGDATETIME}

Additional Info:

$ENV{NAGIOS_SERVICEOUTPUT}
MAIL1

    $mail_content =~ s/\\//g;
    open my $fh, '|-', "/usr/bin/Mail -s $mail_title $mail_receiver";
    print {$fh} $mail_content;
    close $fh;
}
else {
    # IF Host

    my $mail_title = qq/"$ENV{NAGIOS_NOTIFICATIONTYPE}:
$ENV{NAGIOS_HOSTNAME} is $ENV{NAGIOS_HOSTSTATE}"/;
    my $mail_receiver = $ENV{NAGIOS_CONTACTEMAIL};
    my $mail_content = <<"MAIL2";
$ENV{NAGIOS_NOTIFICATIONTYPE}: $ENV{NAGIOS_HOSTNAME} is
$ENV{NAGIOS_HOSTSTATE}: $ENV{NAGIOS_HOSTOUTPUT}

Host: $ENV{NAGIOS_HOSTNAME}
Alias: $ENV{NAGIOS_HOSTALIAS}
Address: $ENV{NAGIOS_HOSTADDRESS}
State: $ENV{NAGIOS_HOSTSTATE}
Comment: $ENV{NAGIOS_HOSTACKCOMMENT} ($ENV{NAGIOS_HOSTACKAUTHOR})
Date/Time: $ENV{NAGIOS_LONGDATETIME}
Info: $ENV{NAGIOS_HOSTOUTPUT}
MAIL2

    $mail_content =~ s/\\//g;
    open my $fh, '|-', "/usr/bin/Mail -s $mail_title $mail_receiver";
    print {$fh} $mail_content;
    close $fh;

}

----------------- cut here ------------------
_______________________________________________
Opsview-users mailing list
Opsview-users@lists.opsview.org
http://lists.opsview.org/lists/listinfo/opsview-users

Reply via email to