Commit Graph

177 Commits

Author SHA1 Message Date
Tony Murray fad0bffc43 Escape SNMP & IPMI shell commands (#9537)
hopefully doesn't break anything
Mostly issues with snmp oids and options containing spaces.  Try to remove all of those.

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`
After you are done testing, you can remove the changes with `./scripts/github-remove`.  If there are schema changes, you can ask on discord how to revert.
2018-12-16 13:42:50 +00:00
Alan Gregory c78f92a4c2 snmp_max_oid per Os support and snmpv1 multi_oid fix (#9343)
* Added snmp_max_oid config at Os level.

* Added check for snmpv1 on multi_oid requests.

* Check  device_oid_limit on multi get

* Use array_chunk

* Update snmp.inc.php

* remove dump, unused variable and extra plodes

* per device settings should take priority over OS

* Update Settings.md

* don't discard the data :P
2018-11-21 13:25:39 -06:00
Tony Murray 5c4a298cfc Remove duplicate mib directories from snmp queries (#9148)
General cleanup of that function

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-09-04 22:14:03 +01:00
Neil Lathwood f2253d70fd SNMP v3 auth is no longer checked for case sensitivity + push pass v3 creds to front of queue (#9102)
* Match api code to addhost.php for v3 config order

* Updated v3 auth checks for case insensitivity + docs
2018-08-29 09:16:33 -05:00
Tony Murray 4a6b56d8f2 Generic snmp_translate() function (#8156)
Translates between numeric and textual oids.

Rename existing function to snmp_mib_transate(). It is only used for mib polling. Modifying it could break mib polling.
2018-02-15 16:37:37 -06:00
Tony Murray 88b4e31912 refactor: Refactored bgp-peers (#7972)
* bgp-peers update
Use IP parsing library more effectively.
Fix update issue
Include comware bgp-peers test data
deeper refactoring
Allow JunOS fallback to BGP4-MIB, some models only use that.
Add junos bgp4 data
Actually update all bpg data in the poller

* fix arista data. refactor some to prevent missing data from mucking things up

* refactor to use $oid_map for BGP4-MIB too

* A few comments to break up teh file a bit

* Junos bgp data an a quick revert for now.

* small cleanup

* fix ios bgp polling, add test data

* check the correct variable
2018-01-18 20:54:38 +00:00
Tony Murray e11e84f2ee snmp_walk remove multiple No more variables (#8050)
Optimize code so it is a faster when no more variables is not present.
Only saving 10s of microseconds, but better than an increase.
2018-01-10 15:30:19 -06:00
Andrew Holmes 81fbe95039 Add snmp_getnext_multi() function (#8052)
* Added snmp_getnext_multi() function using syntax of existing snmp_get_multi() function

* Fixed typo in comment and spurious newline in file

* Removed return of index value

* Correct statistic
2018-01-08 23:39:58 -06:00
Neil Lathwood 42e5819130 refactor: Updated discovery/poller to use numeric sysObjectID (#7922)
* refactor: Updated discovery to use a core module for sysDescr/sysObjectID use

* final update hopefully

* revert changes

* more changes + docs

* migrated poller to use numerical sysObjectID

* more updates for sysObjectID

* update any alert rules which might have enterprises. in

* moved schema file

* small updates

* updated getHostOS()

* scrut fixes

* updated sysObjectId -> sysObjectID

* updated sysObjectId -> sysObjectID

* updated remainder of sysObjectId -> sysObjectID

* another sysObjectId -> sysObjectID

* fixed secureplatform test data

* Fix tests: $device is not pulled from the database before polling
Also, update the db in the core discovery module.
2018-01-06 23:00:47 -06:00
Tony Murray 4ffdbe0e6a fix: Fix can't find CPQHOST-MIB (#8024) 2018-01-04 22:42:16 +00:00
Martin Zatloukal dbeaf3b35e device: Added Mikrotik POE sensors (#7883)
* Add Mikrotik POE sensors

* Add Mikrotik POE sensors
2017-12-09 19:53:40 +00:00
Tony Murray ab2aacec0f fix: Don't work around bad implementations in snmpwalk_group (#7876) 2017-12-09 16:39:37 +00:00
Tony Murray 301af24ace fallback to snmpgetnext if db is unavailable (#7698)
running tests without DBTEST=1 for example.
2017-11-10 12:52:31 +00:00
Tony Murray acb1de5772 feature: Implement snmp_getnext() (#7678)
find correct path to snmpgetnext (will do the same for others later)
fix undefined index in get_mib_dir()
2017-11-08 15:15:49 +00:00
Tony Murray 0d07f85257 feature: Allow snmpget in os discovery yaml (#7587)
* feature: Allow snmpget in os discovery yaml

Re-submit after release

* Remove extra trim in discovery and in snmp_get.
also trim() always returns a string, so is_string() check is a waste of cpu cycles.
2017-11-02 12:41:18 +00:00
Martin Zatloukal 1dfcde3060 fix: function snmp_get delete quotes in snmp query (#7467)
* fix: ups-nut delete quotes in snmp query

* fix: ups-nut delete quotes in snmp query

* Update snmp.inc.php

* Update snmp.inc.php

* Update snmp.inc.php

* Update snmp.inc.php

* Update snmp.inc.php
2017-10-31 21:50:18 +00:00
Tony Murray 426916dbe4 Revert "feature: Allow snmpget in os discovery yaml (#7558)" (#7576)
This reverts commits:
193db02475
b73c4e9d6e
a93bb6635d
2017-10-29 14:04:26 -05:00
Tony Murray a93bb6635d refactor: Use one snmpget during os discovery (#7566)
Use only one snmpget to fetch sysObjectId and sysDescr
fix multiline data in snmp_get_multi_oid()
add snmp_get_multi_oid() to mock.snmp.inc.php
2017-10-28 11:53:05 +01:00
Tony Murray 46ee1b377c fix: snmp_get_multi returns no data if the oid doesn't contain a period (#7456) 2017-10-11 08:10:04 +01:00
Tony Murray bc8103774b fix: snmpwalk_group tables not using entries. (#7427)
When walking an arbitrary oid, it may not be grouped properly if the address ends with .0

For example: channelInternalTxAborted[11].0
2017-10-04 19:50:26 +01:00
Neil Lathwood 2115a1c6d1 newdevice: Added support for Alpha FXM UPS devices (#7324)
* newdevice: Added support for Alpha FXM UPS devices
2017-09-18 20:24:53 +02:00
Neil Lathwood aef79535f4 newdevice: Added support for A10 ACOS devices (#7327)
* newdevice: Added support for A10 ACOS devices
2017-09-17 21:33:09 +02:00
Tony Murray 0d36244eda Fix string quoting in snmp trim (#7120) 2017-08-04 08:03:03 -05:00
Neil Lathwood e6274720a7 fix: Strip " and / from snmpwalk_cache_oid() (#7063)
* fix: Strip " and / from snmpwalk_cache_oid()

* updated trim()

* Remove redundant trim()
2017-08-04 07:55:13 +01:00
Tony Murray b56c6b6adf fix: fdb tables multiple IPs and IPs from other devices adding extra rows (#6930)
Fix missing IPs because the ARP entries are on different port_id
Update arp discovery to use snmpwalk_group() additional fix in that function
Fix removal of arp entries
Fix a debug output type in fdb discovery
2017-07-04 22:27:43 +01:00
Tony Murray e8dd72e8db feature: Support fdb table on generic devices (#6902)
* feature: support fdb table on generic devices
refactored code to use snmpwalk_group
refactored ajax table code to use joins and reduce extra queries
add indexes for device_id and port_id, drop primary index
Make all columns sortable
Fix a few other small issues

* Add index for vlan_id since that field can be searched by the user

* fix whitespace

* Rename 197.sql to 198.sql

* set row count for table
2017-06-29 21:03:56 +01:00
Neil Lathwood 54365985a6 Revert "feature: fdb tables (#6616)" (#6886)
This reverts commit 81ddab86af.
2017-06-25 07:04:04 +01:00
Lorenzo Zafra 81ddab86af feature: fdb tables (#6616)
* feature: FDB TABLES for ios and timos

* Fixed coding style issues

* renamed fdb.sql to 191.sql

* fixed travisCI issue

* FDB table discovery working on IOS

* Fixed bug: failing to insert fdb entries into database

* Fix phpcbf issue

* moved sql schema

* rename sql schema

* Add (tentative) FDB support for HP Comware switches

* build schema

* schema changes

* run build schema.......

* FBD Table discovery working on HP ComWare

* FBD Table discovery working on HP ComWare

* Add FDB support for HP Comware

* Discovery regex fix, tested and works for cisco 3750, 2960, 6509

* Use vlan_id instead of raw vlan. Remove Nokia implementation as vlans are not being discovered for it at the moment.

* Use vlan_id instead of vlan.

* Add debug messages, comware support

* Sorry.. phpunit isnt working for me

* Use a file structure instead of if statement per OS

* Make inserts to vlan table if entry does not exist.

* Rename sql schema file

* Use existing context name

Improve output and database synchronization

Remove chromephp and if ios

rename sqlfile

add comware back

update schema

* Delete TIMETRA-CHASSIS-MIB

* Delete TIMETRA-FILTER-MIB

* change index to bigint to be safe
2017-06-24 22:07:31 -05:00
Tony Murray 1c43fecfa7 feature: New snmpwalk_group() function (#6865)
* feature: New snmpwalk_group() function
Intended to replace several other snmp functions, but may not behave exactly as they did.
Properly handles multi-line values.
Adds additional index data after the grouping so it isn't lost. Perhaps might make optional.
Might add $skip variable to support fully numeric oid indexes. Thoughts?

* Add e and t options.  If we want to specify, options, we can add that later.
2017-06-23 22:13:50 +01:00
Neil Lathwood 92433f3511 feature: Added snmp_check() to decide if a device is up/down for snmp #5946 (#5948)
* feature: Added snmp_check() to decide if a device is up/down for snmp #5946

* added missing line

* Update snmp.inc.php
2017-02-23 22:47:18 +00:00
Neil Lathwood fad5aca1b7 feature: Allow customisation of rrd step/heartbeat when creating new rrd files (#5947)
* feature: Allow customisation of rrd step/heartbeat when creating new rrd files

* revert defaults

* added docs + webui config option

* Move RrdDefinition to an Object to make them easier to create and remove the possibility of typos.

* Fix style/lint issues and missing use statements

* 3 more missing use statements

* updated doc + moved schema file
2017-02-23 22:45:50 +00:00
Neil Lathwood ced759105e fix: Updated qnap sensor code to be more generic #5910 (#5925)
* fix: Updated qnap sensor code to be more generic #5910

* small change to check for valid data

* small code change
2017-02-17 14:43:30 +00:00
Neil Lathwood cc51a68f85 feature: Optional partial port polling (#5805)
* feature: Added ability to switch port polling mode

* update, speed things up slightly by walking certain tables

* more fixes

* updates

* updates

* update to exclude ports that are down

* wrong variable used

* update to set previous port status when null

* small update to port disco
2017-02-14 17:26:07 -06:00
Neil Lathwood 01e4ac3d58 newdevice: Added additional sensor support for Huawei VRP #4279 2017-01-19 16:42:57 +00:00
Neil Lathwood 7215059fd0 fix: Re-order snmp mib dirs to load mibs correctly #5405 (#5415)
* fix: Re-order snmp mib dirs to load mibs correctly #5405

* Remove unneeded code
2017-01-12 23:46:09 -06:00
Tony Murray 5c156e7e01 fix: Remove usage of -CI, it is not allowed for snmpbulkwalk #5164 2016-12-20 16:58:20 +00:00
Tony Murray db240cb4eb refactor: Collection and output of db and snmp stats (#5049) 2016-11-23 06:57:19 +00:00
Tony Murray 9a33464c52 refactor: Centralize includes and initialization (#4991) 2016-11-21 20:12:59 +00:00
Neil Lathwood d389069e2e refactor: Tidy up mibs V-Z (#4979) 2016-11-17 15:43:31 -06:00
Neil Lathwood d9f4096821 Start of cleaning up mibs (#4806)
refactor: Start of cleaning up mibs
2016-11-09 18:23:27 -06:00
Neil Lathwood b89ebabecc Feature: Added support for global max repeaters for snmp (#4880)
* Feature: Added support for global max repeaters for snmp

* added phpdoc
2016-10-28 06:02:09 +00:00
Neil Lathwood 6c324cd03e refactor: Improve sensors polling for performance increase (#4725)
refactor: Improve sensors polling for performance increase
2016-10-11 19:34:09 +03:00
Neil Lathwood c0d7ad44b0 Revert "refactor: snmp cleanup" (#4746) 2016-10-07 09:26:10 +01:00
Tony Murray 07e8e9f2be refactor: snmp cleanup (#4683) 2016-10-06 21:20:11 +01:00
Neil Lathwood 59da343f7d changed from isset to !empty 2016-10-03 18:23:59 +01:00
Johan 032bfe0745 Fixes issue-4677 2016-09-30 15:08:11 +02:00
Tony Murray edbb6ae0e3 refactor: Centralize MIB include directory specification (#4603)
* refactor: Centralize MIB include directory specification
The default is now:
```
$config['mib_dir'].'/mibdirname:'.$config['mib_dir']
```
This means we exclude OS mibs and only use ours  (we could prepend `+` if we want to include os mibs.
All snmp calls should only include the name of the subdirectory under the mibs directory.

* Remove d_echo from Proc
Fix snmpsim tests.
2016-09-28 14:19:28 +01:00
Tony Murray c31b3c0301 feature: use snmpsim for testing
fallback feature so we don't have to run snmpsim on devel computers, should be adequate for now
./scripts/pre-commit.php -u -snmpsim will start an snmpsimd.py process automatically
2016-09-23 14:57:31 -05:00
Tony Murray 7371c6e1b8 feature: improved readability for snmp debug output
It now matches RRD and SQL output format, the color is cyan
Slightly better ip removal from debug output, only removes valid IPs now.
2016-09-21 17:15:28 -05:00
Tony Murray bb318fdcad refactor: consolidate snmpcmd generation
I needed to generate an snmpcmd for an upcoming PR, so I figured I'd save a little code duplication.
2016-09-18 00:08:14 -05:00