Releases: Uninett/zino
2.2.0
Added
-
Added new config option to post reachability event when a new device is added to show that it was discovered by Zino
We recommend to keep this config option set to
Falsethe first run after upgrading. That way the newreachable_in_last_rundevice status can be populated. After running Zino for a couple of minutes the config option can be set toTrueand after a restart Zino will inform about new devices that are discovered. (#377)
Changed
-
Make the default of
snmp.trap.require_communityan empty listFor the netsnmp backend this means that trap messages are admitted, regardless of community.
For the pysnmp backend to work this needs to be changed to have at least one community string in that list. Otherwise no trap messages are admitted. (#483)
Fixed
- Stop considering closed events as duplicates of open events during closed event modification (#481)
2.1.1
Added
- Added a new
snmp.trap.require_communityconfig option to require specific (or to disregard) community strings in incoming traps (#421) - Documented that the command line program
snmptrapis needed for running parts of the development test suite
Changed
- Remove redundant information from, and improve, log messages for BFD events (#454)
- Locked
apschedulerversion requirement to latest stable series (3.11) - Avoid noisy logging during processing of trap messages:
- Reduced log level from ERROR to DEBUG for messages about unresolvable trap variables
- Reduced log level from ERROR to INFO for messages about various problems with incoming trap messages
Fixed
- Match
watchpat/ignorepatpatterns against any part of interface name, not just the beginning (#426) - Match planned maintenance regexp patterns against any part of an interface or device name, not just the beginning (#450)
- Don't crash when default
zino.tomlis not found (#458) - Close events for removed routers on startup, as well as during runtime (#470)
- Delete old state data for devices no longer defined in
polldevs.cf(#471) - Ensure multiple BFD events cannot be created for the same interface
- Ensure month and day values in old events directory structure are padded to two digits for proper sortability
- Stop incorrectly sending further event notifications to clients for events that have been scavenged - it confuses, or even crashes the clients
2.1.0
Added
- Added new config option to suppress
portstateevent generation for newly discovered interfaces (#257) - Document how to set up Zino with systemd (#425)
- Delete events related to routers that have been removed from
polldevs.cf(#427) - Finish setting up the documentation-tree: Add badge, some structure, trim down the README (#434)
- Added debug logging of trap type identification information
Changed
- Use new
snmpversionconfig field inzino.tomlto decide which SNMP version to use (default tov2c) (#397) - Default to not create
portstateevents for newly discovered interfaces - Reduced log level of "unknown trap" messages
- Updated
pysnmplibdependency to PySNMP 6.2 to ensure continued test suite success
2.0.2
Fixed
- Handle unresolvable trap variables more gracefully (#408)
- Fix broken sparsewalk routine in Net-SNMP back-end (which caused
MissingInterfaceTableDataerrors) (#411) - Ensure
secretsfile configuration option is actually used by the API protocol server (#412) - Reduce log message level for traps of unknown origin to DEBUG (#413)
- Honor
do_bgpoption frompolldevs.cf(#414)
2.0.1
2.0.0
Added
- Calculate downtime for BGP events (#368)
- Added debug logging of low-level SNMP session details to aid in debugging low-level OS resource management problems
- Added directory for Sphinx documentation in order to set up ReadTheDocs site and secure the name
zinothere.
Fixed
- Added alternative C-based SNMP back-end for massive performance gains (#383)
- Log "home" address changes as
DEBUGlevel information, to avoid unnecessary verbosity in VRRP setups (#215) - Fix Zino dependencies to allow running on Python 3.12 (#386)
- Fixed unintended symbolic translations in the SNMP abstraction layer, and removed now obsolete workarounds for the problem (#389)
- Removed development tools from list of optional package runtime requirements (#399)
2.0.0-beta.2
Added
-
Added full implementation of the
CLEARFLAPAPI command (#113) -
Log warning if
secretsfile is world-readable (#280) -
Only load and parse pollfile if it has been changed since last load (#282)
-
Added customized logging of multiple traps, just as in Zino 1:
CISCOTRAP-MIB::reloadCISCO-CONFIG-MAN-MIB::ciscoConfigManEventCISCO-PIM-MIB::ciscoPimInvalidRegisterCISCO-PIM-MIB::ciscoPimInvalidJoinPruneOSPF-TRAP-MIB::ospfIfConfigError
(#319)
-
Added support for tracking accumulated event downtime for reachability and portstate events (#332)
-
Custom logging configuration can now be applied in
zino.toml
Changed
- Rename/alias BGP and Juniper alarm event attributes in order to have more useful variable names in Python code, while retaining aliases that are compatible with the legacy API protocol (#352)
Fixed
- Properly use dashes in event attribute names in the legacy API (#281)
- Use Zino 1-compatible field names for serialization of planned maintenance (#287)
- Use Zino 1 field names for serialization of BGP/BFD events (#331)
- Match against port alias instead of port description when
match_typeisregexporstrfor portstate maintenance events. Still matches port description forintf-regexp. (#297) - Fix BGP-related Pydantic serialization warnings (#312)
- Stop logging empty interface descriptions on first discovery (#314)
- Reschedule devices whose configuration attributes where changed in the pollfile (#330)
- Use default interval from pollfile to stagger new jobs (#337)
- When matching an event to a planned maintenance, check that event is of the correct subclass (#344)
- Avoid potential state corruption issues by saving the running state to a temporary file before overwriting the existing state file (#364)
- Properly encode timedelta values as an integer number of seconds in the legacy API
2.0.0-beta.1
Removed
- Remove test-only commands from API (#286)
Added
- Add generic Zino config file (#224)
- Add most important SNMP trap handlers
- Port basic link trap handling from Zino 1
- Add port flapping detection to link trap transition handlers, in accordance with Zino 1 (#284)
- Schedule re-verification of port states after link traps are received
- Handle incoming Juniper BGP traps (#291)
- Update BFD session information on incoming BFD session traps (#305)
- Add planned maintenance feature (#61)
- Add
POLLRTRAPI command (#219) - Add
POLLINTFAPI command (#300) - Add a dummy
CLEARFLAPAPI command in order not to crash older clients - Add
zinoconvprogram for converting state from Zino 1 to Zino 2 (#66) - Add support for
neigh_rdnsattribute in BFD events. (#199) - Add more tests for event deletion (#209)
- Fix log message on initial Juniper chassis alarm (#213)
- Add towncrier to automatically produce changelog (#218)
- Fully support multi-varbind SNMP-GET operations (#303)
- Add tests to show that one will not get closed events using
get_or_create_event() - Index recently closed events to facilitate updating of prematurely closed flapping events
Changed
- Handle errors from changed SNMP interface in Juniper alarm task (#212)
Fixed
- Improve error reporting, including line/block location, for
polldevs.cfparsing errors (#248) - Properly handle Juniper devices without SNMP values for red/yellow alarm count (#231)
- Properly handle "varbind" error values for SNMP v2 GET operations (#261)
- API now listens to all interfaces, not just loopback (#285)
- Resolve value types of incoming SNMP traps correctly (#290)
- Ensure polling single interfaces does not crash in the event of timeout errors
- Ensure polling single interfaces works for
ifindex=0
2.0.0-alpha.2
Added
- SNMP traps can now be received, logged and ignored (although no useful handlers have been implemented yet) ((#189, #193)
- Closed events now properly expire and are evicted from the running state after 8 hours (#203).
- Expired events are dumped to separate JSON files in the
old-events/directory (#204).
Fixed
- BGP events are now presented with correctly named attributes in the legacy API (#172)
- BGP task no longer crashes on unexpected SNMP responses while probing for which BGP MIB to use for a device (#184)
- Legacy API now correctly hides closed events (#192)
- Legacy API now correctly denies re-opening of closed events (#201)
- BFD events now have the expected
lasteventattribute (#200) - Fixed potential bug with how
portstateevents are indexed internally in Zino's running state (#206) - API now responds with a proper message on user authentication failures (#210)
Changed
- Functions for parsing the many ways IP addresses are represented in SNMP MIBs have been consolidated into a single function (#183)
2.0.0-alpha.1
This is the first official release of Zino 2. This is an alpha release. It mostly works, but still has several features missing compared to the original Zino.