From a862da4da06c337bc744f1daa9b67249635981d0 Mon Sep 17 00:00:00 2001 From: laf Date: Sat, 18 Jul 2015 21:10:24 +0100 Subject: [PATCH 1/8] Added basic detection of Netonix --- html/images/os/netonix.png | Bin 0 -> 912 bytes includes/definitions.inc.php | 11 ++ includes/discovery/os/netonix.inc.php | 4 + includes/polling/os/netonix.inc.php | 3 + mibs/netonix/.NETONIX-SWITCH-MIB.swp | Bin 0 -> 16384 bytes mibs/netonix/NETONIX-SWITCH-MIB | 171 ++++++++++++++++++++++++++ 6 files changed, 189 insertions(+) create mode 100644 html/images/os/netonix.png create mode 100644 includes/discovery/os/netonix.inc.php create mode 100644 includes/polling/os/netonix.inc.php create mode 100644 mibs/netonix/.NETONIX-SWITCH-MIB.swp create mode 100644 mibs/netonix/NETONIX-SWITCH-MIB diff --git a/html/images/os/netonix.png b/html/images/os/netonix.png new file mode 100644 index 0000000000000000000000000000000000000000..6881097cc8cdb984007edb5915ff268cff04e29e GIT binary patch literal 912 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 Date: Sun, 19 Jul 2015 10:20:37 +0100 Subject: [PATCH 2/8] Removed empty file --- includes/polling/os/netonix.inc.php | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 includes/polling/os/netonix.inc.php diff --git a/includes/polling/os/netonix.inc.php b/includes/polling/os/netonix.inc.php deleted file mode 100644 index 50cce95b3..000000000 --- a/includes/polling/os/netonix.inc.php +++ /dev/null @@ -1,3 +0,0 @@ - Date: Sun, 19 Jul 2015 11:36:31 +0100 Subject: [PATCH 3/8] Added standard misb dir --- includes/discovery/os/netonix.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/discovery/os/netonix.inc.php b/includes/discovery/os/netonix.inc.php index 965cf46eb..bbd878b80 100644 --- a/includes/discovery/os/netonix.inc.php +++ b/includes/discovery/os/netonix.inc.php @@ -1,4 +1,4 @@ Date: Sun, 19 Jul 2015 11:43:54 +0100 Subject: [PATCH 4/8] added debug --- includes/discovery/os/netonix.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/discovery/os/netonix.inc.php b/includes/discovery/os/netonix.inc.php index bbd878b80..9d1ccad3c 100644 --- a/includes/discovery/os/netonix.inc.php +++ b/includes/discovery/os/netonix.inc.php @@ -1,4 +1,4 @@ Date: Sun, 19 Jul 2015 12:00:21 +0100 Subject: [PATCH 5/8] Actually added detection for netonix! --- includes/discovery/os/netonix.inc.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/includes/discovery/os/netonix.inc.php b/includes/discovery/os/netonix.inc.php index 9d1ccad3c..04f977230 100644 --- a/includes/discovery/os/netonix.inc.php +++ b/includes/discovery/os/netonix.inc.php @@ -1,4 +1,7 @@ Date: Sun, 19 Jul 2015 17:44:58 +0100 Subject: [PATCH 6/8] Removed bad file: mibs/netonix/.NETONIX-SWITCH-MIB.swp --- mibs/netonix/.NETONIX-SWITCH-MIB.swp | Bin 16384 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mibs/netonix/.NETONIX-SWITCH-MIB.swp diff --git a/mibs/netonix/.NETONIX-SWITCH-MIB.swp b/mibs/netonix/.NETONIX-SWITCH-MIB.swp deleted file mode 100644 index c4e37c7a61e2776b1b8b37cedffec6a077939bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 zcmeI2UyK{Y9mgjLEirBQ)9}DUBMk;s3AOK!uNMduILBUxt+6-cwvN51p!%=~`e`TgeKdSPrTD8w(fI>_V7CZid;MMP008g*ll}ks8why|oCDtjHIN6Ft|#O_-~xCFJPuaD6u2Gydl$-p zKZ57LkHBeg92^4;Fbyi80N(f_A{Qe7s{0=+;egM7-E?q~+U%;Qi^Wdl8 zVK5EG!5Fw1yqzKB58y=*f?3c2Q-Ff);JuxMyat{IXThUj4SW-n!4B}wwS@c$oCCiC zkAv@n)8G-%0aY*xz6{>{JRz@um%&+Z26Vt-a1;3GbAg7u3OikOA-GK;~U=5u69V20sI5z}La;;5KkAxPZQW6+8=$gE{aJ zsDQ74xbInPQe4&IT)tQ;X{MP89J`hGz4lss!<;v);#@}eBIl?ROcdzev5}GelamvZ z`$*(;y0mui8(PWATk~~|S4Ho>`(ApIvYVP01#7fGPsLTyvSyZM^tz?j44N%FVKZ>M zk?VWZU!>8J8^&dvz>by!hlY+9`azbLG_9i5Fllo+z^_Om{$1Z>Dw|BX&6HhbH|)0U zH8Toa?W8)1gTmzGKJGx;j>~*m@5;DvMe;;w11lCCnAdcux7=B90=hTwSH$1@ z=%OFMNhkJ^;#V*u+%@i5Chb|@v5e6)hWXP@2f78)a>d zH^l>n8_(^PG%k7+9gkpY`d(za9_vkeK)gt*#x)OCmJU@mF4XgfFn@U%4+#$OTPAbG zjhahzVo-pv+LEwdvGEwQ-t`a>9h=3!Wc21kp(l5(LS@6b+(Qgsv^_aLCBZir)TryK zV_HtuD}^&^HM@?}lB1b*5Ra&y2T45rpF9{EJN?8;50fx+Xi_FFrm~4J2a__X?{lP* z^w{tuL%A#ESW@kvC>@+)EjRo&wY?T~qmYIX;x&xiW+;U$Ggum%`y_PnI~gWz&kB<+8#YqYDy6*z0b!k=?g*MK(i46=vX43xW-np>Z#hl3W49@$V$5af ziH{Y=l^&$ax>=tt&gUP{4U1-5`9hY=^6IQotgfZaS&ia!zEm@2HG{1t($kEje97;0 z+pdi{IqXe3)mphRtzpGul#5nvW);=HZL$A|? zX2Pty2K7x5J=1PG&16;SFC4=^A?*hK3Ae?j-32>zo0xpVC|G8_7Ei$O0LNAqf!}6} zQH&&}QLUdSutkR(tqtiWX4)x|5y9U3Bej;wkqlcvh!6P&hP-%oXS7+}jMwW2 z?i!mYOpM<-Hg;HyL+Pa7Or6MEtB5UwZd7VC>jZ9dN<_*C@=8=*n>kc8^utBISrF!l zd(%bJ$~WprU#(2Dl3`NFCHca0z?$bu$&1>{2NPPEsZ~Y)=dIE`gmtqVd+8_GkJi}} z=`P77E%!53suc=U;zA;!69aQeEo?WH>yNQH7Kgo#O}B1VbxQPVy*6W+gk1i6dUSk6 zH*}_=8K==f?T~H|w*R-VZ_Z(l&G!GJY#)g0BKG<(fXBek!FRzCa6ia_kFnSP2lzX9 z9Xtbm2$sRUU=P>^2>2J<=YyYslVA<3f^UKQ!L8tW@Eh#?&w{7G888R#19yNAVc%cD zdGH$eCHOIT1Wbc*Fb0?(?7To-N&%&SQa~x76i^B%1(X6xf&Wzj%_yh0SYo%Q#i!AO zk9*kx0e@4`I|$*Y|9Hibeywrkv;TqTq`i|6BJ4=-7`T~Yw=CJ29GJ=bz|?-U_X;Md zHf<-}qSr5?t+W|p7uA28#JB#EGs$V1wEx`Pd3ECD7QKfN)ek-OO`2!>#!O~5Io*o4 zgyLRW6!sXun{(IyFu=G4Rx7;L90NN<{p+BNP~(9Ck4$ zuKK_@?NpKi+`}P}BOeHSZIJn*&aFN?9%TBELu4NG{Z~&L4m0f0 Date: Sun, 19 Jul 2015 19:21:09 +0200 Subject: [PATCH 7/8] Added support for Boxcar.io push notifications for alerts --- includes/alerts/transport.boxcar.php | 90 ++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 includes/alerts/transport.boxcar.php diff --git a/includes/alerts/transport.boxcar.php b/includes/alerts/transport.boxcar.php new file mode 100644 index 000000000..9f26b2bcc --- /dev/null +++ b/includes/alerts/transport.boxcar.php @@ -0,0 +1,90 @@ +/* Copyright (C) 2015 James Campbell + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ + +/* Copyright (C) 2015 Daniel Preussker + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ + +/** + * Boxcar API Transport + * @author trick77 + * @copyright 2015 trick77, neokjames, f0o, LibreNMS + * @license GPL + * @package LibreNMS + * @subpackage Alerts + */ + +foreach( $opts as $api ) { + $data = array(); + $data['user_credentials'] = $api['access_token']; + $data['notification[source_name]'] = $config['project_id']; + switch( $obj['severity'] ) { + case "critical": + $severity = "Critical"; + if( !empty( $api['sound_critical'] ) ) { + $data['notification[sound]'] = $api['sound_critical']; + } + break; + case "warning": + $severity = "Warning"; + if( !empty( $api['sound_warning'] ) ) { + $data['notification[sound]'] = $api['sound_warning']; + } + break; + } + switch( $obj['state'] ) { + case 0: + $title_text = "OK"; + if( !empty( $api['sound_ok'] ) ) { + $data['notification[sound]'] = $api['sound_ok']; + } + break; + case 1: + $title_text = $severity; + break; + case 2: + $title_text = "Acknowledged"; + break; + } + $data['notification[title]'] = $title_text." - ".$obj['hostname']." - ".$obj['name']; + $message_text = "Timestamp: ".$obj['timestamp']; + if( !empty( $obj['faults'] ) ) { + $message_text .= "\n\nFaults:\n"; + foreach($obj['faults'] as $k => $faults) { + $message_text .= "#".$k." ".$faults['string']."\n"; + } + } + $data['notification[long_message]'] = $message_text; + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, 'https://new.boxcar.io/api/notifications'); + curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $data); + $ret = curl_exec($curl); + $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); + if( $code != 201 ) { + var_dump("Boxcar returned error"); //FIXME: proper debugging + return false; + } +} +return true; From a71c2a9a04a3cd1d8f4a57ceedefe5c25d5d34b7 Mon Sep 17 00:00:00 2001 From: trick77 Date: Sun, 19 Jul 2015 19:30:59 +0200 Subject: [PATCH 8/8] Added Boxcar support to the docs. --- doc/Extensions/Alerting.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/doc/Extensions/Alerting.md b/doc/Extensions/Alerting.md index 253c90cc0..8b0f25675 100644 --- a/doc/Extensions/Alerting.md +++ b/doc/Extensions/Alerting.md @@ -16,6 +16,7 @@ Table of Content: - [HipChat](#transports-hipchat) - [PagerDuty](#transports-pagerduty) - [Pushover](#transports-pushover) + - [Boxcar](#transports-boxcar) - [Entities](#entities) - [Devices](#entity-devices) - [BGP Peers](#entity-bgppeers) @@ -309,6 +310,26 @@ $config['alert']['transports']['pushover'][] = array( ); ``` +## Boxcar + +Enabling Boxcar support is super easy. +Copy your access token from the Boxcar app or from the Boxcar.io website and setup the transport in your config.php like: + +```php +$config['alert']['transports']['boxcar'][] = array( + "access_token" => 'ACCESSTOKENGOESHERE', + ); +``` + +To modify the Critical alert sound, add the 'sound_critical' parameter, example: + +```php +$config['alert']['transports']['boxcar'][] = array( + "access_token" => 'ACCESSTOKENGOESHERE', + "sound_critical" => 'detonator-charge', + ); +``` + # Entities Entities as described earlier are based on the table and column names within the database, if you are ensure of what the entity is you want then have a browse around inside MySQL using `show tables` and `desc `.