Commit Graph

15204 Commits

Author SHA1 Message Date
Tony Murray
e5fb7c9f16 Selective Port polling improvements (#8650)
Don't delete skipped ports when using selected polling
Improve output of port polling module.
Update ifOperStatus and ifAdminStatus even when skipping.

Warning! causes a semantic change where ifAdminStatus_prev and ifOperStatus_prev are updated every poll, so they will only be mismatched for one poll.  This could cause alerts to behave differently.

Add an optimization if less than 10% of the ports are disabled (or less than 5), walk the base oids.
Time improvement on test device Full: 12s, Selective: 8s, Optimized 4s. (no disabled ports on device, many down)

Another test device.

![image](https://user-images.githubusercontent.com/39462/40066671-46cdc956-582a-11e8-928a-80bbd81dd423.png)


DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-08-04 22:10:57 +01:00
PipoCanaja
f659ed8c41 Added 'Disabled' and 'Down' state for devices/links rendered on NetworkMap (#8926)
Hello

Here is a proposal for a dedicated color on disabled devices displayed on the Network Maps. Usecase is that during a migration, we are "disabling" the old devices and we delete them only a few days/weeks later. This change allows to see the productive devices as well as the disabled ones and clearly know which is which. 

Thanx

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [X] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-08-04 22:05:15 +01:00
TheGreatDoc
a883264df9 Fixed Eventlog search (missing OR in SQL query) (#8981)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-08-04 21:45:14 +01:00
PipoCanaja
2c91348c5c Log an event for each Service Status change (#8968)
Hello

Here is a proposal for a pièce of code to log (using log_events) each service status change onto the device itself. 

Let me know if we should create the "getStatusText()" function to convert the int to "OK", "Critical" etc etc . I searched for such a function but did not find it. 

I also add to use a hack for the SQL cause it would prevent the device_id valueto be available in the resulting $service when device_attribs is empty for the device. If you have a better way to suggest, I'll be happy to use it. 

PipoCanaja

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [X] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-08-04 21:35:23 +01:00
Neil Lathwood
703e90fbc2 Cast variables as arrays to cover empty values (#8982)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
1.42.01
2018-08-04 21:07:12 +01:00
Neil Lathwood
5b24934f8a Update convert-template.inc.php (#8980) 2018-08-03 17:13:03 -05:00
Neil Lathwood
f29b286f7f Update Templates.md (#8979)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-08-03 22:08:09 +01:00
Tony Murray
5bc91addb2 Fix template conversion (#8976)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-08-03 20:56:22 +01:00
Neil Lathwood
19c2eadc3f Added changelog for 1.42 (#8975)
* Added changelog for 1.42

* Small updates
1.42
2018-08-02 21:38:47 +01:00
Paul Heinrichs
7f16e586a7 Update base template (#8973) 2018-08-02 08:27:29 +01:00
MHammett
f9525714f7 Add wget command to memcached (#8971) 2018-08-01 14:08:38 +01:00
Paul Heinrichs
da58c91dd9 Add docs for using a base template (#8939)
* Add docs for using a base template

* Updated readme
2018-07-31 19:16:45 -05:00
Tony Murray
3b6fbd99ee Convert alert templates in place (#8951)
* Convert alert templates inplace

* Update copyright

* Update convert-template.inc.php
2018-07-31 21:54:12 +01:00
Tony Murray
deb405fac9 Alert transport fixes (#8967)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-31 21:53:03 +01:00
Tony Murray
9bc0c542a5 Allow ping checks to be ran separately from polling (#8821)
Allows ping checks at intervals not tied to the poller.  Pointless if you are not alerting on device status.
I updated the rrdstep.php script to treat ping-perf files separately and made it so it only converts if needed.

Docs here: https://docs.librenms.org/Extensions/Fast-Ping-Check/

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-30 22:58:38 +01:00
dsgagi
344dfb9797 Update Templates.md (#8965)
Fix errors in `Service Alert` template example.

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-30 21:13:32 +01:00
Tony Murray
e4ecd1eea4 Fix default template (#8964)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-30 21:12:42 +01:00
Neil Lathwood
cde15ce753 Fixed pushbullet transport (#8963)
* Fixed pushbullet transport

* Updated return value
2018-07-29 22:52:53 +01:00
Michael Heumann
58e331c098 Adds missing hostname parameter to addhost.php (#8961)
Just followed the docs after installation and stumbled about this, which caused some irritation.

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-29 00:09:54 +01:00
MHammett
07d0772595 Update RRDCached.md to fix permissions (#8959)
Add step to Debian 9 to fix permissions on /mnt/librenms/rrd/journal/

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-28 13:43:57 +01:00
TheGreatDoc
290e07ca49 Fixed typo in new alert rule html (#8958) 2018-07-27 16:26:31 -05:00
Neil Lathwood
cf01c3a8d1 Fixed whitespace bug in ceraos temperature sensor (#8948)
* Fixed whitespace bug in ceraos temperature sensor

* Update ceraos.json

* Update ceraos.json
2018-07-26 18:34:47 -05:00
Steve Johnson
ac3fa28f7e Added Citrix Netscaler HA sensors and alerts (#8800)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-25 22:51:06 +01:00
Paul Heinrichs
046a97fe76 Remove testing data (#8945) 2018-07-25 09:43:55 -05:00
Julien D
f82677e990 Update Network-Map.md (#8946)
Fix typo
2018-07-25 09:43:22 -05:00
Neil Lathwood
3a2774ae1e Fixed test transport form (#8942) 2018-07-25 09:00:24 +01:00
dsgagi
24d84aec9d Poll service check only if the associated device is available (#8757)
* Update check-services.php

Poll service check only if the associated device is available.

* Update check-services.php

Updating line 68 based on laf suggestion.

* Update check-services.php

Also check the following before polling the service:
* "Disable ICMP Test" is enabled
* Service hostname/IP is different from associated device.

* Update check-services.php

Remove whitespaces.

* Update check-services.php

* Make check-services.php perform more similarly to services.wrapper.py - loop service checks per device and execute RunRules() function after polling all services for one device (like in poller.php).
* Add more debugging information, similar to poller.php

* Update check-services.php

Implement logging to eventlog when service is skipped due to icmp down event. Event is logged only once during device down event, which is achieved by checking value in service_disabled column in services table.

* Update check-services.php

Fix Travis errors.

* Update check-services.php

Revert back to one query and one foreach loop code.
Added inet6_ntop() for reading $service['ip'] value.
Removed RunRules() function.

* Update check-services.php

Formatting fixes.

* Update check-services.php

More formatting fixes. :)

* Update check-services.php

Removed 'alerts' from init_module.

* Update Services.md

Update Services documentation with info about changes to service checks polling logic.

* Update check-services.php

Fix spelling check on `previosly`.

* Update check-services.php

Replace phrase "Nagios Service" with "Service check".

* Update Services.md

Reword first two sentences of `Service checks polling logic` section.
2018-07-25 08:38:52 +01:00
Steve Johnson
4abf27b28e fix: Match interface counter64 OIDs with unsigned bigint (#8940)
* fix: Match interface counter64 OIDs with unsigned bigint

* move to one line, add ifInOctets

* Update db_schema.yaml

* Update db_schema.yaml
2018-07-24 23:43:53 -05:00
TheGreatDoc
0bee4b3d74 Arris CMTS - C4/C4c remamed and Added C3 support (#8883)
* Added Arris C3 to cmts.yaml

* Added Arris C3 hardware

* ARRIS CMTS->Move from cmts to arris_c4 yaml

* Fixed some Arris_c4 definitions

* Added Arris C3 CMTS

* Fixed some typos

* Arris C3 test files

* Arris C4 test files

* Deleted not anymore valid files

* Renamed from underscore

* Fixed some typos

* Correct test files

* Removed old snmprec files

* Correct test files v2

* Deleted more old files

* Return to cmts for valid_sensor() for Arris C4/C4c

* Re-done test files

* Re-do test files after rebase
2018-07-24 22:31:44 +01:00
Richard Mayhew
d824e8db62 Removed the static Slack Priority field (#8936)
* Removed the static Priority field

* Update Slack.php
2018-07-24 16:31:14 -05:00
Paul Heinrichs
a703423df8 Fix typo in clickatell (#8937) 2018-07-24 12:01:16 -05:00
vivia11
2d4d4ce43b Make alert transport form compatible with sql strict mode (#8931)
* Edit is_default so it is compatible with sql strict mode

* whitespace fix

* Evaluate is_default earlier

* Fix logic
2018-07-24 00:30:53 -05:00
Neil Lathwood
9c250dfd74 Updated transport docs to fix table (#8934) 2018-07-23 22:05:42 +01:00
Andrew Steen
43a25a5edc Changed jnxProductQFX511048S4Q to jnxProductQFX511048S4C in rewrites.php (#8932)
Originally had this pull request earlier this year to add support for this: #8466 but looks like Juniper changed this at some point when the Juniper chassis mibs were updated here: #8678

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [ X] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-23 22:05:16 +01:00
PipoCanaja
532c55335e Added VRF support on VRP devices (huawei) (#8879)
* Feature: Enable VRF handling in Huawei VRP devices using standard MPLS-L3VPN-STD-MIB

* Feature: Enable VRF handling in Huawei VRP devices using standard MPLS-L3VPN-STD-MIB

* Feature: VRF on VRP devices - Fix Codeclimate error

* Feature: VRF on VRP devices - Fix Codeclimate error

* Feature: Enable VRF handling in Huawei VRP devices using standard MPLS-L3VPN-STD-MIB

* Feature: VRF on VRP devices - Fix PR ChangeRequest

* Feature: VRF on VRP devices - Fix PR ChangeRequest

* Create vrp_ce12804-withvrf.json

* in_array, not str_contains
2018-07-23 20:44:13 +01:00
Tony Murray
8f4a041b8d Fix Calix OS definitions (#8832)
* Fix Calix OS definitions

The main change is EXA (E7, etc) and B6 (Occam) devices are now their own OS

Now the follow OS exist:
exa: E7 EXA, E5-400, E5-48, E3-48, E3-8G
occamos: B6

Unchanged:
calix: E5-1**, E3-12C
axos: E7-2 AXOS, E9-2, E3-2, E5-520, E5-16F, E3-16F, E5-30x

* fix tests
exa_e7-2 seems like bogus data.

* additional tests, fix an error in the yaml

* Remove extra line return

* Add missed file
2018-07-23 12:44:53 -05:00
jozefrebjak
cfb6503cac Support for HTML tags in TELEGRAM transport (#8929)
This update will add support for HTML tags in TELEGRAM Transport

Here is the list of all tags that you can use in alert template for telegram transport.

```
<b>bold</b>, <strong>bold</strong>
<i>italic</i>, <em>italic</em>
<a href="http://www.example.com/">inline URL</a>
<code>inline fixed-width code</code>
<pre>pre-formatted fixed-width code block</pre>
```

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-23 17:57:07 +01:00
Tony Murray
153d23b222 fix foldersize() recursion (#8930)
previously, it tried to add an array to an integer...
2018-07-23 17:54:02 +01:00
Marcus Pink
60a1a02f88 Added discovery of serverscheck flooding sensor (#8923)
Added discovery for state of serverscheck flooding sensors.

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-22 22:25:00 +01:00
TheGreatDoc
b844dd44c8 Asterisk Application support (#8914)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`

PR 183 from librenms-agent contains the script to make this work

https://github.com/librenms/librenms-agent/pull/183
2018-07-21 20:48:31 +01:00
vivia11
e1118b628a Added Alert Transports Mapping (#8660)
Hello all,
I guess this is the second version of a more fully fleshed out alert contact mapping feature. The old one was GH-8507

Transports to convert:

  - [x] API
  - [x] Cisco Spark
  - [x] Elasticsearch
  - [x] GitLab
  - [x] Philips Hue
  - [x] Jira
  - [x] Mail
  - [ ] ~~PagerDuty~~ - Requires a callback so leaving for now
  - [x] Nagios
  - [x] IRC
  - [x] Discord
  - [x] Rocket.chat
  - [x] Hipchat
  - [x] Pushover
  - [x] Boxcar
  - [x] Telegram
  - [x] Pushbullet
  - [x] VictorOps
  - [x] OpsGenie
  - [x] Clickatell
  - [x] PlaySMS
  - [x] Canopsis
  - [x] osTicket
  - [x] Microsoft Teams
  - [x] SMSEagle
  - [x] Syslog
  - [x] Slack

The intention is for this feature to have three different levels to it:
1. Alert rule to an alert contact mapping (where the code is at now)
2. Alert rule to an alert group (made up of alert contacts) mapping
3. Alert contact mapping to different transport configurations.

There will be three transport configuration types.
1. Default (the configuration that is held in the configs table)
2. None (no transport configuration - will explain later)
3. Other (a configuration that will be defined in a different able)

Take Mail transport for example. It can either be of a "default" or "other" configuration. The hope is that in the future, users can send mail from different mail servers if they wish.
However, for ciscospark which requires a room ID and an api-token, I've decided that it has no transport configuration. Most likely, every alert contact will contain a different room-id and an api-token - which is why it has the transport config of "none".
For other transports : I am not familiar with them, so hopefully the community can add support for these. I can definitely help!

To add support for each transport will require several things:
- addition to the UI
- addition to forms/alert-contacts.inc.php
- modifications to its object class

Screenshots
![image](https://user-images.githubusercontent.com/28970851/39594533-2092ce9e-4eca-11e8-9c5d-cd002ece1425.png)
![image](https://user-images.githubusercontent.com/28970851/39594544-276e9856-4eca-11e8-80cc-82789ee0b2b2.png)
![image](https://user-images.githubusercontent.com/28970851/39594553-2fdf528c-4eca-11e8-8a40-4f149e767054.png)

I'm not sure if this is the best way to do things, so please let me know if there's a better way to structure the code! Any comments on code/db schema,/UI etc is welcome and encouraged! 

The UI is heavily based on alert rules (front end is not my strong suit). And parts of the code are based on the code that was written for alert rules.

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-21 20:34:59 +01:00
Neil Lathwood
54284800c7 Fixed alert rules that use columns in value (#8925)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-21 10:07:17 +01:00
Søren Rosiak
9ebe70e446 Improve DCN Device Support (#8878)
DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [X] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
fix #8755 

I have not added test data as it would require filterting quite some LLDP/IP's etc information.
2018-07-19 22:01:21 +01:00
angryp
064ab1c297 Added missing Config dependency (#8919) 2018-07-18 07:12:33 -05:00
Tony Murray
4c8ec59098 Custom error page (#8911)
Generic error page, just a dump of the current page with additional information.

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
2018-07-17 21:15:11 +01:00
PipoCanaja
83f414552d BUG - test-template.php upgrade after #8803 + #8908 PR (#8910)
* Update test-template.php

* Test-Template.php - Use AlertData Class

* Update test-template.php
2018-07-17 21:14:08 +01:00
Tony Murray
d47f96d5c3 Codeclimate updates (#8918)
Update to version 2 of config
Don't require camelCase variables
2018-07-17 21:02:19 +01:00
Tony Murray
483c931e3d Fix plugin loading (#8917)
* Fix plugin loading
class_exists was loading the including the files, then we included it again.
Mostly, just include -> include_once is the fix.

* fix style

* forgot to update docblock
2018-07-17 13:55:23 -05:00
Tony Murray
b01ccd7f9c Fix missed variable rename. (#8916)
Walk was in another file.
2018-07-17 10:54:19 -05:00
Daryl Peterson
67c585b7c0 PSR-4 Plugin Support (#8880)
Add phpdocblocks Plugins.php
Add psr-4 plugins path to composer.json

Changes to be committed:
	modified:   LibreNMS/Plugins.php
	modified:   composer.json
2018-07-17 07:46:49 -05:00