Discussion:
[Nagios-users] Upgraded from 3.2.1 to 3.5 - macros broke?
Jason Gauthier
2013-09-04 14:27:34 UTC
Permalink
Greetings,

It seems during a recent upgrade, my notifications broke! Well, I did digging and found notification themselves are working, but the macro variables are completely botched.

I took "notify-by-email", and changed it to this:
/usr/bin/printf "\"%b\" \"Notification Type: $NOTIFICATIONTYPE$ ($SERVICEACKAUTHOR$)\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n\nComment: $SERVICEACKCOMMENT$\" | /bin/mail -s \"** $NOTIFICATIONTYPE$ alert - $HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$ **\" $CONTACTEMAIL$" >> /tmp/nagiosnotify.log

So, it will write the contents to a file instead of just directly piped to mail. Here is what I see:

"Notification Type: RECOVERY ($)

Service: $
Host: v-ww7b2
Address: 19216876178
State: $

Date/Time: W Sp 4 10:18:11 EDT 2013

Additional Info:

$

Comment: $" | /bin/mail -s "** RECOVERY alert - v-ww7b2/$ is $ **" bv


It seems like all of the variable are wrong. For instance, the host is v-windows7lab2.
The email address starts with "bv", but it ends with a whole lot more!

I'm not sure what would be causing this, and would appreciate any input.

Thanks!
Jason Gauthier
2013-09-04 17:11:32 UTC
Permalink
To follow up on my own email. It looks like this is not just the upgrade. I moved my 3.2.1 binary back in, and it still happens.

And I've found that it's not limited to the notification commands:

[1378314473] SERVICE ALERT: Server86;Server86 - Ping;UNKNOWN;SOFT;1;check_ping: Invalid hostname/address - 19216874204
[1378314493] SERVICE ALERT: Server86;Server86 - SAP;CRITICAL;SOFT;1;TCP CRITICAL - Invalid hostname, address or socket: 19216874204
[1378314503] HOST ALERT: Server86;DOWN;SOFT;1;check_ping: Invalid hostname/address - 19216874204
[1378314533] SERVICE ALERT: Server86;Server86 - Ping;UNKNOWN;HARD;2;check_ping: Invalid hostname/address - 19216874204
[1378314543] HOST ALERT: Server86;DOWN;SOFT;2;check_ping: Invalid hostname/address - 19216874204
[1378314553] SERVICE ALERT: Server86;Server86 - SAP;CRITICAL;HARD;2;TCP CRITICAL - Invalid hostname, address or socket: 19216874204
[1378314553] SERVICE ALERT: Server86;Server86 - Load;WARNING;HARD;10;85% CPU load.
[1378314563] HOST ALERT: Server86;DOWN;SOFT;3;check_ping: Invalid hostname/address - 19216874204
[1378314573] HOST ALERT: Server86;DOWN;SOFT;4;check_ping: Invalid hostname/address - 19216874204

(the periods are removed from the IPs)
I really have no idea what caused this, but I am reviewing my config and changes I made while testing splunk, and opsgenie integration.


From: Jason Gauthier
Sent: Wednesday, September 04, 2013 10:28 AM
To: 'nagios-***@lists.sourceforge.net'
Subject: Upgraded from 3.2.1 to 3.5 - macros broke?

Greetings,

It seems during a recent upgrade, my notifications broke! Well, I did digging and found notification themselves are working, but the macro variables are completely botched.

I took "notify-by-email", and changed it to this:
/usr/bin/printf "\"%b\" \"Notification Type: $NOTIFICATIONTYPE$ ($SERVICEACKAUTHOR$)\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n\nComment: $SERVICEACKCOMMENT$\" | /bin/mail -s \"** $NOTIFICATIONTYPE$ alert - $HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$ **\" $CONTACTEMAIL$" >> /tmp/nagiosnotify.log

So, it will write the contents to a file instead of just directly piped to mail. Here is what I see:

"Notification Type: RECOVERY ($)

Service: $
Host: v-ww7b2
Address: 19216876178
State: $

Date/Time: W Sp 4 10:18:11 EDT 2013

Additional Info:

$

Comment: $" | /bin/mail -s "** RECOVERY alert - v-ww7b2/$ is $ **" bv


It seems like all of the variable are wrong. For instance, the host is v-windows7lab2.
The email address starts with "bv", but it ends with a whole lot more!

I'm not sure what would be causing this, and would appreciate any input.

Thanks!
Jon Adcock
2013-09-04 17:52:46 UTC
Permalink
Jason,

Looking at your notify-by-email definition, there are a lot of escape
sequences ( \" ). I think that's what's messing you up. My
notify-service-by-email definition is shown below. Start with that and
tweak it to your taste.
# 'notify-service-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "\nDate/Time:
$LONGDATETIME$\n\nService: $SERVICEDESC$\n\nService check res
ults: $SERVICEOUTPUT$\n\nHost: $HOSTALIAS$\nAddress:
$HOSTADDRESS$\nState: $SERVICESTATE$\n\n***** Nagios *****\n\nNotif
ication Type: $NOTIFICATIONTYPE$\n\nAdditional Info:\n" | /usr/bin/mail
-s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTAL
IAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

Jon




Jon Adcock
Network Systems Administrator
Leon County MIS
301 S. Monroe St.
Tallahassee, FL 32301
Office: (850) 606-5518
http://www.leoncountyfl.gov
"People Focused. Performance Driven."


Please note that under Florida's Public Records laws, most written
communications
to or from county staff or officials regarding county business are
public records
available to the public and media upon request. Your e-mail
communications may
therefore be subject to public disclosure.
wrote:


To follow up on my own email. It looks like this is not just the
upgrade. I moved my 3.2.1 binary back in, and it still happens.

And I’ve found that it’s not limited to the notification commands:

[1378314473] SERVICE ALERT: Server86;Server86 -
Ping;UNKNOWN;SOFT;1;check_ping: Invalid hostname/address - 19216874204
[1378314493] SERVICE ALERT: Server86;Server86 - SAP;CRITICAL;SOFT;1;TCP
CRITICAL - Invalid hostname, address or socket: 19216874204
[1378314503] HOST ALERT: Server86;DOWN;SOFT;1;check_ping: Invalid
hostname/address - 19216874204
[1378314533] SERVICE ALERT: Server86;Server86 -
Ping;UNKNOWN;HARD;2;check_ping: Invalid hostname/address - 19216874204
[1378314543] HOST ALERT: Server86;DOWN;SOFT;2;check_ping: Invalid
hostname/address - 19216874204
[1378314553] SERVICE ALERT: Server86;Server86 - SAP;CRITICAL;HARD;2;TCP
CRITICAL - Invalid hostname, address or socket: 19216874204
[1378314553] SERVICE ALERT: Server86;Server86 -
Load;WARNING;HARD;10;85% CPU load.
[1378314563] HOST ALERT: Server86;DOWN;SOFT;3;check_ping: Invalid
hostname/address - 19216874204
[1378314573] HOST ALERT: Server86;DOWN;SOFT;4;check_ping: Invalid
hostname/address – 19216874204

(the periods are removed from the IPs)
I really have no idea what caused this, but I am reviewing my config
and changes I made while testing splunk, and opsgenie integration.



From: Jason Gauthier
Sent: Wednesday, September 04, 2013 10:28 AM
To: 'nagios-***@lists.sourceforge.net'
Subject: Upgraded from 3.2.1 to 3.5 - macros broke?


Greetings,

It seems during a recent upgrade, my notifications broke! Well, I did
digging and found notification themselves are working, but the macro
variables are completely botched.

I took “notify-by-email”, and changed it to this:
/usr/bin/printf "\"%b\" \"Notification Type: $NOTIFICATIONTYPE$
($SERVICEACKAUTHOR$)\n\nService: $SERVICEDESC$\nHost:
$HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time:
$LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n\nComment:
$SERVICEACKCOMMENT$\" | /bin/mail -s \"** $NOTIFICATIONTYPE$ alert -
$HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$ **\" $CONTACTEMAIL$" >>
/tmp/nagiosnotify.log

So, it will write the contents to a file instead of just directly piped
to mail. Here is what I see:

"Notification Type: RECOVERY ($)

Service: $
Host: v-ww7b2
Address: 19216876178
State: $

Date/Time: W Sp 4 10:18:11 EDT 2013

Additional Info:

$

Comment: $" | /bin/mail -s "** RECOVERY alert - v-ww7b2/$ is $ **" bv


It seems like all of the variable are wrong. For instance, the host is
v-windows7lab2.
The email address starts with “bv”, but it ends with a whole lot more!

I’m not sure what would be causing this, and would appreciate any
input.

Thanks!
Jason Gauthier
2013-09-04 19:50:59 UTC
Permalink
Well, I’m not really sure what changed. But it was an issue with illegal_macro_output_chars=\"`\"
It somehow got set incorrectly.



From: Jon Adcock [mailto:***@leoncountyfl.gov]
Sent: Wednesday, September 04, 2013 1:53 PM
To: nagios-***@lists.sourceforge.net
Subject: Re: [Nagios-users] Upgraded from 3.2.1 to 3.5 - macros broke?

Jason,

Looking at your notify-by-email definition, there are a lot of escape sequences ( \" ). I think that's what's messing you up. My notify-service-by-email definition is shown below. Start with that and tweak it to your taste.
# 'notify-service-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "\nDate/Time: $LONGDATETIME$\n\nService: $SERVICEDESC$\n\nService check res
ults: $SERVICEOUTPUT$\n\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\n***** Nagios *****\n\nNotif
ication Type: $NOTIFICATIONTYPE$\n\nAdditional Info:\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTAL
IAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

Jon


Jon Adcock
Network Systems Administrator
Leon County MIS
301 S. Monroe St.
Tallahassee, FL 32301
Office: (850) 606-5518
http://www.leoncountyfl.gov<http://www.leoncountyfl.gov/>
"People Focused. Performance Driven."


Please note that under Florida's Public Records laws, most written communications
to or from county staff or officials regarding county business are public records
available to the public and media upon request. Your e-mail communications may
therefore be subject to public disclosure.
To follow up on my own email. It looks like this is not just the upgrade. I moved my 3.2.1 binary back in, and it still happens.

And I’ve found that it’s not limited to the notification commands:

[1378314473] SERVICE ALERT: Server86;Server86 - Ping;UNKNOWN;SOFT;1;check_ping: Invalid hostname/address - 19216874204
[1378314493] SERVICE ALERT: Server86;Server86 - SAP;CRITICAL;SOFT;1;TCP CRITICAL - Invalid hostname, address or socket: 19216874204
[1378314503] HOST ALERT: Server86;DOWN;SOFT;1;check_ping: Invalid hostname/address - 19216874204
[1378314533] SERVICE ALERT: Server86;Server86 - Ping;UNKNOWN;HARD;2;check_ping: Invalid hostname/address - 19216874204
[1378314543] HOST ALERT: Server86;DOWN;SOFT;2;check_ping: Invalid hostname/address - 19216874204
[1378314553] SERVICE ALERT: Server86;Server86 - SAP;CRITICAL;HARD;2;TCP CRITICAL - Invalid hostname, address or socket: 19216874204
[1378314553] SERVICE ALERT: Server86;Server86 - Load;WARNING;HARD;10;85% CPU load.
[1378314563] HOST ALERT: Server86;DOWN;SOFT;3;check_ping: Invalid hostname/address - 19216874204
[1378314573] HOST ALERT: Server86;DOWN;SOFT;4;check_ping: Invalid hostname/address – 19216874204

(the periods are removed from the IPs)
I really have no idea what caused this, but I am reviewing my config and changes I made while testing splunk, and opsgenie integration.


From: Jason Gauthier
Sent: Wednesday, September 04, 2013 10:28 AM
To: 'nagios-***@lists.sourceforge.net'
Subject: Upgraded from 3.2.1 to 3.5 - macros broke?

Greetings,

It seems during a recent upgrade, my notifications broke! Well, I did digging and found notification themselves are working, but the macro variables are completely botched.

I took “notify-by-email”, and changed it to this:
/usr/bin/printf "\"%b\" \"Notification Type: $NOTIFICATIONTYPE$ ($SERVICEACKAUTHOR$)\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n\nComment: $SERVICEACKCOMMENT$\" | /bin/mail -s \"** $NOTIFICATIONTYPE$ alert - $HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$ **\" $CONTACTEMAIL$" >> /tmp/nagiosnotify.log

So, it will write the contents to a file instead of just directly piped to mail. Here is what I see:

"Notification Type: RECOVERY ($)

Service: $
Host: v-ww7b2
Address: 19216876178
State: $

Date/Time: W Sp 4 10:18:11 EDT 2013

Additional Info:

$

Comment: $" | /bin/mail -s "** RECOVERY alert - v-ww7b2/$ is $ **" bv


It seems like all of the variable are wrong. For instance, the host is v-windows7lab2.
The email address starts with “bv”, but it ends with a whole lot more!

I’m not sure what would be causing this, and would appreciate any input.

Thanks!
Jason Gauthier
2013-09-04 20:14:13 UTC
Permalink
It’s a bug in the version of lilac I am using. I finally traced it down. What a mess!
I have to explicitly set it to \”`\”.
The next time changes are made to the ”Other” area, it gets written as just a backslash.



From: Jason Gauthier [mailto:***@lastar.com]
Sent: Wednesday, September 04, 2013 3:51 PM
To: Nagios Users List
Subject: Re: [Nagios-users] Upgraded from 3.2.1 to 3.5 - macros broke?

Well, I’m not really sure what changed. But it was an issue with illegal_macro_output_chars=\"`\"
It somehow got set incorrectly.



From: Jon Adcock [mailto:***@leoncountyfl.gov]
Sent: Wednesday, September 04, 2013 1:53 PM
To: nagios-***@lists.sourceforge.net<mailto:nagios-***@lists.sourceforge.net>
Subject: Re: [Nagios-users] Upgraded from 3.2.1 to 3.5 - macros broke?

Jason,

Looking at your notify-by-email definition, there are a lot of escape sequences ( \" ). I think that's what's messing you up. My notify-service-by-email definition is shown below. Start with that and tweak it to your taste.
# 'notify-service-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "\nDate/Time: $LONGDATETIME$\n\nService: $SERVICEDESC$\n\nService check res
ults: $SERVICEOUTPUT$\n\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\n***** Nagios *****\n\nNotif
ication Type: $NOTIFICATIONTYPE$\n\nAdditional Info:\n" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTAL
IAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

Jon

Jon Adcock
Network Systems Administrator
Leon County MIS
301 S. Monroe St.
Tallahassee, FL 32301
Office: (850) 606-5518
http://www.leoncountyfl.gov<http://www.leoncountyfl.gov/>
"People Focused. Performance Driven."


Please note that under Florida's Public Records laws, most written communications
to or from county staff or officials regarding county business are public records
available to the public and media upon request. Your e-mail communications may
therefore be subject to public disclosure.
To follow up on my own email. It looks like this is not just the upgrade. I moved my 3.2.1 binary back in, and it still happens.

And I’ve found that it’s not limited to the notification commands:

[1378314473] SERVICE ALERT: Server86;Server86 - Ping;UNKNOWN;SOFT;1;check_ping: Invalid hostname/address - 19216874204
[1378314493] SERVICE ALERT: Server86;Server86 - SAP;CRITICAL;SOFT;1;TCP CRITICAL - Invalid hostname, address or socket: 19216874204
[1378314503] HOST ALERT: Server86;DOWN;SOFT;1;check_ping: Invalid hostname/address - 19216874204
[1378314533] SERVICE ALERT: Server86;Server86 - Ping;UNKNOWN;HARD;2;check_ping: Invalid hostname/address - 19216874204
[1378314543] HOST ALERT: Server86;DOWN;SOFT;2;check_ping: Invalid hostname/address - 19216874204
[1378314553] SERVICE ALERT: Server86;Server86 - SAP;CRITICAL;HARD;2;TCP CRITICAL - Invalid hostname, address or socket: 19216874204
[1378314553] SERVICE ALERT: Server86;Server86 - Load;WARNING;HARD;10;85% CPU load.
[1378314563] HOST ALERT: Server86;DOWN;SOFT;3;check_ping: Invalid hostname/address - 19216874204
[1378314573] HOST ALERT: Server86;DOWN;SOFT;4;check_ping: Invalid hostname/address – 19216874204

(the periods are removed from the IPs)
I really have no idea what caused this, but I am reviewing my config and changes I made while testing splunk, and opsgenie integration.


From: Jason Gauthier
Sent: Wednesday, September 04, 2013 10:28 AM
To: 'nagios-***@lists.sourceforge.net'
Subject: Upgraded from 3.2.1 to 3.5 - macros broke?

Greetings,

It seems during a recent upgrade, my notifications broke! Well, I did digging and found notification themselves are working, but the macro variables are completely botched.

I took “notify-by-email”, and changed it to this:
/usr/bin/printf "\"%b\" \"Notification Type: $NOTIFICATIONTYPE$ ($SERVICEACKAUTHOR$)\n\nService: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n\nComment: $SERVICEACKCOMMENT$\" | /bin/mail -s \"** $NOTIFICATIONTYPE$ alert - $HOSTNAME$/$SERVICEDESC$ is $SERVICESTATE$ **\" $CONTACTEMAIL$" >> /tmp/nagiosnotify.log

So, it will write the contents to a file instead of just directly piped to mail. Here is what I see:

"Notification Type: RECOVERY ($)

Service: $
Host: v-ww7b2
Address: 19216876178
State: $

Date/Time: W Sp 4 10:18:11 EDT 2013

Additional Info:

$

Comment: $" | /bin/mail -s "** RECOVERY alert - v-ww7b2/$ is $ **" bv


It seems like all of the variable are wrong. For instance, the host is v-windows7lab2.
The email address starts with “bv”, but it ends with a whole lot more!

I’m not sure what would be causing this, and would appreciate any input.

Thanks!

Loading...