Twilio integration
Twilio integration
Hello,
Since Nagios uses e-mail for notifications then if email goes down, no notifications. We are trying to get around this using a combination of Nagios' built-in notification system and Twilio. Unfortunately, while I have found a couple of things that claim to get Twilio to work with Nagios, none of them are functioning for me.
Does anyone have a working system with Nagios/Twilio that can tell me how they did it?
Thanks!
Since Nagios uses e-mail for notifications then if email goes down, no notifications. We are trying to get around this using a combination of Nagios' built-in notification system and Twilio. Unfortunately, while I have found a couple of things that claim to get Twilio to work with Nagios, none of them are functioning for me.
Does anyone have a working system with Nagios/Twilio that can tell me how they did it?
Thanks!
Re: Twilio integration
Have you seen this plugin on our Exchange? It links to the authors website which has some pretty well written instructions -
https://exchange.nagios.org/directory/T ... io/details
https://exchange.nagios.org/directory/T ... io/details
Former Nagios Employee
Re: Twilio integration
I saw it, but couldn't get it going. I'll take another look to see if I can find what I goobered up.
Re: Twilio integration
It looks like someone mentioned it still works two weeks back, so I assume it should be working.
It should be just getting the API to communicate, let us know if you run into issues and what the problem(s) are, and we can probably help you through.
It should be just getting the API to communicate, let us know if you run into issues and what the problem(s) are, and we can probably help you through.
Former Nagios Employee
Re: Twilio integration
I'm still not able to get a text to come through. Here is my setup.
I put the twilio-php folder and the sendTxtMsg.php in the /usr/local/etc folder. I did edit the sendTxtMsg.php file to reflect my $sid, $token, & $twilio_number.
I have created the commands in Nagios. Here they are:
I created a contact with my cell phone number (including the "1" in front). Under Alert Settings -> Manage Host Notification Commands I added notify-host-by-txt to the user.
I created a Host record for a desktop and added the new contact to the Manage Contacts section. I set the Check & Retry intervals to "1" as well as the Max Check Attempts. Also, notification interval is set to "1".
If I turn off the desktop I wait 5 minutes but still get no text. Nagios sees it as down, no problem. No text.
Any suggestions about what I might have done wrong?
I put the twilio-php folder and the sendTxtMsg.php in the /usr/local/etc folder. I did edit the sendTxtMsg.php file to reflect my $sid, $token, & $twilio_number.
I have created the commands in Nagios. Here they are:
Code: Select all
define command{
command_name notify-host-by-txt
command_line /usr/bin/php /usr/local/etc/sendTxtMsg.php "$CONTACTPAGER$" "Nagios Alert\nType: $NOTIFICATIONTYPE$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nWhen: $LONGDATETIME$"
}
define command{
command_name notify-service-by-txt
command_line /usr/bin/php /usr/local/etc/sendTxtMsg.php "$CONTACTPAGER$" "Nagios Alert\nType: $NOTIFICATIONTYPE$\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nWhen: $LONGDATETIME$"
}I created a Host record for a desktop and added the new contact to the Manage Contacts section. I set the Check & Retry intervals to "1" as well as the Max Check Attempts. Also, notification interval is set to "1".
If I turn off the desktop I wait 5 minutes but still get no text. Nagios sees it as down, no problem. No text.
Any suggestions about what I might have done wrong?
Re: Twilio integration
From Nagios - does it show that it executed the Notification? I'd like to verify the actual plugin works first off.SavaSC wrote:I'm still not able to get a text to come through. Here is my setup.
I put the twilio-php folder and the sendTxtMsg.php in the /usr/local/etc folder. I did edit the sendTxtMsg.php file to reflect my $sid, $token, & $twilio_number.
I have created the commands in Nagios. Here they are:I created a contact with my cell phone number (including the "1" in front). Under Alert Settings -> Manage Host Notification Commands I added notify-host-by-txt to the user.Code: Select all
define command{ command_name notify-host-by-txt command_line /usr/bin/php /usr/local/etc/sendTxtMsg.php "$CONTACTPAGER$" "Nagios Alert\nType: $NOTIFICATIONTYPE$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nWhen: $LONGDATETIME$" } define command{ command_name notify-service-by-txt command_line /usr/bin/php /usr/local/etc/sendTxtMsg.php "$CONTACTPAGER$" "Nagios Alert\nType: $NOTIFICATIONTYPE$\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nWhen: $LONGDATETIME$" }
I created a Host record for a desktop and added the new contact to the Manage Contacts section. I set the Check & Retry intervals to "1" as well as the Max Check Attempts. Also, notification interval is set to "1".
If I turn off the desktop I wait 5 minutes but still get no text. Nagios sees it as down, no problem. No text.
Any suggestions about what I might have done wrong?
Let's try to test the script from the CLI. Can you manually execute it (as the nagios user)? This should work -
Code: Select all
/usr/bin/php /usr/local/etc/sendTxtMsg.php "1yournumber" "test message"
Former Nagios Employee
Re: Twilio integration
When you say the CLI, do you mean the Linux CLI or the Nagios-CLI plug-in? I don't, currently, have the Nagios-CLI installed. Do I need to?
Re: Twilio integration
It looks like we have a cert issue, to start with. Our cert guy is out for a couple of days, so I'll have to wait until he gets back to address that part. Here is the output:
Until he gets back, any suggestions?
Code: Select all
object(Services_Twilio_TinyHttpException)#21 (7) {
["message:protected"]=>
string(146) "SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed"
["string:private"]=>
string(0) ""
["code:protected"]=>
int(0)
["file:protected"]=>
string(54) "/usr/local/etc/twilio-php/Services/Twilio/TinyHttp.php"
["line:protected"]=>
int(84)
["trace:private"]=>
array(8) {
[0]=>
array(4) {
["function"]=>
string(6) "__call"
["class"]=>
string(24) "Services_Twilio_TinyHttp"
["type"]=>
string(2) "->"
["args"]=>
array(3) {
[0]=>
string(73) "/2010-04-01/Accounts/ACddc2ea17353f8d41ac45adcf66d3aad9/SMS/Messages.json"
[1]=>
array(1) {
["Content-Type"]=>
string(33) "application/x-www-form-urlencoded"
}
[2]=>
string(48) "From=18324161073&To=18323704569&Body=TestMessage"
}
}
[1]=>
array(6) {
["file"]=>
string(45) "/usr/local/etc/twilio-php/Services/Twilio.php"
["line"]=>
int(115)
["function"]=>
string(4) "post"
["class"]=>
string(24) "Services_Twilio_TinyHttp"
["type"]=>
string(2) "->"
["args"]=>
array(2) {
[0]=>
string(56) "Accounts/ACddc2ea17353f8d41ac45adcf66d3aad9/SMS/Messages"
[1]=>
array(3) {
["From"]=>
string(11) "18324161073"
["To"]=>
string(11) "18323704569"
["Body"]=>
string(11) "TestMessage"
}
}
}
[2]=>
array(6) {
["file"]=>
string(58) "/usr/local/etc/twilio-php/Services/Twilio/ListResource.php"
["line"]=>
int(89)
["function"]=>
string(10) "createData"
["class"]=>
string(15) "Services_Twilio"
["type"]=>
string(2) "->"
["args"]=>
array(2) {
[0]=>
string(47) "ACddc2ea17353f8d41ac45adcf66d3aad9/SMS/Messages"
[1]=>
array(3) {
["From"]=>
string(11) "18324161073"
["To"]=>
string(11) "18323704569"
["Body"]=>
string(11) "TestMessage"
}
}
}
[3]=>
array(6) {
["file"]=>
string(62) "/usr/local/etc/twilio-php/Services/Twilio/CachingDataProxy.php"
["line"]=>
int(115)
["function"]=>
string(10) "createData"
["class"]=>
string(28) "Services_Twilio_ListResource"
["type"]=>
string(2) "->"
["args"]=>
array(2) {
[0]=>
string(12) "SMS/Messages"
[1]=>
array(3) {
["From"]=>
string(11) "18324161073"
["To"]=>
string(11) "18323704569"
["Body"]=>
string(11) "TestMessage"
}
}
}
[4]=>
array(6) {
["file"]=>
string(54) "/usr/local/etc/twilio-php/Services/Twilio/Resource.php"
["line"]=>
int(44)
["function"]=>
string(10) "createData"
["class"]=>
string(32) "Services_Twilio_CachingDataProxy"
["type"]=>
string(2) "->"
["args"]=>
array(2) {
[0]=>
string(12) "SMS/Messages"
[1]=>
array(3) {
["From"]=>
string(11) "18324161073"
["To"]=>
string(11) "18323704569"
["Body"]=>
string(11) "TestMessage"
}
}
}
[5]=>
array(6) {
["file"]=>
string(58) "/usr/local/etc/twilio-php/Services/Twilio/ListResource.php"
["line"]=>
int(59)
["function"]=>
string(10) "createData"
["class"]=>
string(24) "Services_Twilio_Resource"
["type"]=>
string(2) "->"
["args"]=>
array(1) {
[0]=>
array(3) {
["From"]=>
string(11) "18324161073"
["To"]=>
string(11) "18323704569"
["Body"]=>
string(11) "TestMessage"
}
}
}
[6]=>
array(6) {
["file"]=>
string(62) "/usr/local/etc/twilio-php/Services/Twilio/Rest/SmsMessages.php"
["line"]=>
int(22)
["function"]=>
string(7) "_create"
["class"]=>
string(28) "Services_Twilio_ListResource"
["type"]=>
string(2) "->"
["args"]=>
array(3) {
[0]=>
string(11) "18324161073"
[1]=>
string(11) "18323704569"
[2]=>
string(11) "TestMessage"
}
}
[7]=>
array(5) {
["file"]=>
string(29) "/usr/local/etc/sendTxtMsg.php"
["line"]=>
int(26)
["function"]=>
string(6) "create"
["class"]=>
string(32) "Services_Twilio_Rest_SmsMessages"
["type"]=>
string(2) "->"
}
}
["severity:protected"]=>
int(1)
}
Last edited by mcapra on Fri Jun 10, 2016 1:11 pm, edited 1 time in total.
Reason: please wrap long/technical outputs in [code] tags
Reason: please wrap long/technical outputs in [code] tags
Re: Twilio integration
It looks like the plugin includes an SSL certificate (which I assume is for Twilio's server). https://github.com/JustinCarmony/Nagios ... ficate.crt
They may have updated their cert, which is why you are seeing the error. I checked the certificate for api.twilio.com and it came back as this, so you might be able to replace that file with what I've pasted below -
They may have updated their cert, which is why you are seeing the error. I checked the certificate for api.twilio.com and it came back as this, so you might be able to replace that file with what I've pasted below -
Code: Select all
-----BEGIN CERTIFICATE-----
MIIFvTCCBKWgAwIBAgIQKBylVBf65NqvZJKMbeWFUDANBgkqhkiG9w0BAQsFADBB
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3RlLCBJbmMuMRswGQYDVQQDExJ0
aGF3dGUgU1NMIENBIC0gRzIwHhcNMTUwODMxMDAwMDAwWhcNMTYwOTE2MjM1OTU5
WjB2MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN
U2FuIEZyYW5jaXNjbzEVMBMGA1UECgwMVHdpbGlvLCBJbmMuMQwwCgYDVQQLDANh
cGkxFTATBgNVBAMMDCoudHdpbGlvLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
ADCCAgoCggIBAPM8qs7DYvYK7IATIhmD0L9zU2H0SxbmsswkMm0nXpE/ELOTvGD3
qz5SdnQLGDsrI4S09hnbaPkyz35GJiIkk1mm40xsigwzuBp6P158d1t7x4SExInH
0aaxI0jD0Zf8bsFH1XrOFTyhFC7BcZy6UEiuhbu9mLZbHteopx/t2jBML4bAIR6q
mqy3MEgLbf6ZwQij9v/ZKJCvXawpHnlr7jaViNefNprHaXE+bnRWRdpZlJpFjLnJ
Pre1+jqgomDlm3d9r1z7hTXooGAyJ0xwNiz6EGzwXJfsF4gKuIzQmNJ3Ja1+F5Bb
Mm8EWg4KhLyolWfrGbW3oRanBFUAnfaAUXQ4L9Lt7ERnurAa1T1YCpUnlMx2Mto8
1jSGB+va7Eb+TuldEaPrNIK9WC2P0y3M5cpjBYjRV2lPPcvSCmrf8pmMxh2dKQAK
122PtiI68OkGWB2ZRKC4vKS/n9V9adL0//1RnlPBAjJsUOR0ilaN+apTsMRh+GBJ
ZUO0ZSu0110UTLBvP+s8RKVFvt1LPSLRZfVDQ+eiphsCytAJbvfYF1FuTn0rW+9y
eRjmBwPih6DbVfEBYRhGBlUlO2iNd8stS97K1KYUALNgJb0gDbXItYz8od9zISHe
+5BYsULB9m+AuAGpQYe8tSHmMON7Xa1rNDOkVGmMlZ8gzSPEWaIofg83AgMBAAGj
ggF6MIIBdjAjBgNVHREEHDAaggwqLnR3aWxpby5jb22CCnR3aWxpby5jb20wCQYD
VR0TBAIwADBuBgNVHSAEZzBlMGMGBmeBDAECAjBZMCYGCCsGAQUFBwIBFhpodHRw
czovL3d3dy50aGF3dGUuY29tL2NwczAvBggrBgEFBQcCAjAjDCFodHRwczovL3d3
dy50aGF3dGUuY29tL3JlcG9zaXRvcnkwDgYDVR0PAQH/BAQDAgWgMB8GA1UdIwQY
MBaAFMJPSFf80U+awF04fQ4F29kutVJgMCsGA1UdHwQkMCIwIKAeoByGGmh0dHA6
Ly90ai5zeW1jYi5jb20vdGouY3JsMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
BQcDAjBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6Ly90ai5zeW1j
ZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly90ai5zeW1jYi5jb20vdGouY3J0MA0G
CSqGSIb3DQEBCwUAA4IBAQAb12A6VDnivPyI/n8nheYwo5XLlqV8ez5uZr5LixC4
gHtWxE/lr6k6iGQjpwOb32b+8VMhqN2EmIGmvuZVETKKvXnYOsFasK+NswPBDCmH
gtHtDuwY3Npctgx/oa4SIKapxfIEwj7bKczPPW9+c/HeaKeeIXYXAn6RvdAn04me
rrpyvdZoo609+EY3rC4EMQTYNWRtgtP+nWkK0ha5WP9o1LKQ7OmDMT8tREH5ErXs
ndvExP3fzWbEBizZC7Q78AlbbalQL3zZRM8oN+l+5TjnljmdZ7eF54p0xogdyCUA
MuQ+1rSyJy3Hfv0jvBfzrtpO4lURAFMBVSniqQd4XDuf
-----END CERTIFICATE-----
Former Nagios Employee