LibreNMS
Monitoring & MetricsAn auto‑discovering PHP/MySQL/SNMP network monitoring system supporting Cisco, Juniper, Linux, FreeBSD and many other devices
Features
- Auto‑discovers devices via SNMP, NetFlow, sFlow, IPMI and more
- Supports a wide range of hardware (Cisco, Juniper, HP, Brocade, Foundry, etc.)
- Runs on PHP/MySQL with web‑based UI for performance graphs and alerts
Recent releases
View all 9 releases →- Rename OS fujitsuiRMC to fujitsu-irmc
Full changelog
26.4.1
(2026-04-22)
A big thank you to the following 3 contributors this last month:
Thanks to maintainers and others that helped with pull requests this month:
Breaking Change
Device
Webui
Bug
- Fix path to composer wrapper in ComposerHelper (#19508) - laf
- Failture counter limits need to be grater then 0 (#19504) - mpikzink
Cleanup
- Variant lowercase (#19503) - murrant
- Fix YamlDiscoveryField null key deprecation (#19502) - murrant
- Fix PHP deprecation message in port discovery (#19498) - murrant
Documentation
Misc
- API access page refactored to Laravel with improved security
- Alerting operations added
- Transceiver raw date storage format changed
- XSS vulnerability fixed in alert template list
- libvirt CLI commands now properly escaped
- nfsen CLI command injection prevention
- SSL Certificate management
- Auth Roles management
- New alert transports and device graph enhancements
Full changelog
26.4.0
(2026-04-20)
A big thank you to the following 36 contributors this last month:
- Jellyfrog (44)
- murrant (21)
- laf (18)
- dependabot (9)
- mpikzink (7)
- eskyuu (7)
- chris9951 (4)
- kakohegyi (4)
- eduardomozart (3)
- fbourqui (3)
- bdg-robert (2)
- Taarek (2)
- Lantizia (2)
- ciroiriarte (2)
- MelonicOverlord (1)
- anthonyp-cns (1)
- nsn-amagruder (1)
- base-zero (1)
- Palerm0 (1)
- shpokas (1)
- iliyavl (1)
- karrots (1)
- richard-ririe (1)
- Cormoran96 (1)
- Jannos-443 (1)
- redundantredundancy (1)
- Florent4C (1)
- as8net (1)
- JeevesTuxis (1)
- CKeckNorthIO (1)
- ShanethPatterson (1)
- VVelox (1)
- elherr (1)
- kivu8 (1)
- NightowlKr (1)
- shrank (1)
Thanks to maintainers and others that helped with pull requests this month:
- laf (61)
- murrant (56)
- Jellyfrog (22)
- copilot-pull-request-reviewer (4)
- VVelox (3)
Feature
Breaking Change
- Refactor api-access page to Laravel and improve security (#19431) - laf
- Added alerting operations (#19306) - laf
- Store raw date for transceivers (#18026) - murrant
Security
- Fix XSS in alert template list (#19486) - murrant
- Escape libvirt cli commands (#19485) - murrant
- Escape nfsen cli command (#19484) - murrant
- Escape App status (#19483) - murrant
- Add device permission check to trigger_device_discovery api function (#19477) - laf
- Updated device inventory page to escape values (#19448) - laf
- Validate hostname for add_device API call (#19447) - laf
- Fix user role & misc permission cleanups (#19429) - murrant
Device
- Add Support for Dell FluidFS NAS Systems (#19455) - MelonicOverlord
- Added Meraki CW support (#19406) - nsn-amagruder
- Show temperature and power graphs in device overview (#19405) - chris9951
- Add support for Exeltech transfer switch (#19324) - murrant
- Added two new temperature sensors related to the battery for Riello UPS/Netman (#19312) - Taarek
- Add TRB160 to supported device list in YAML (#19297) - Cormoran96
- Add RoomAlert 12s support and fix sensor naming on 32s (#19288) - redundantredundancy
- OcNOS 7 uses vendor sysObjectID, add EdgeCore (#19277) - JeevesTuxis
- Remove explicit setting of SnmpQuery options to defaults in Zyxelnwa (#19226) - eskyuu
- Added detection for Unifi UCG devices (#19193) - laf
- Added OS Support for Huber+Suhner Cubo (#18988) - kivu8
- Add support for Alaxala OS and Sensors (#18703) - NightowlKr
Webui
- Improve visual space for device actions (#19469) - murrant
- Added severity buttons to Alert widget filter (#19466) - laf
- Updated Widgets controller to check for user access (#19465) - laf
- Fix unhandled Oxidized ConnectionException causing CRITICAL crash on device config tab (#19443) - eduardomozart
- Use localized timezone for Last Polled and Last Discovered in Device Edit view (#19426) - eduardomozart
- Add 90-day availability bar to device overview (#19342) - Palerm0
- FDB tables don't show duplicate IPs (#19303) - murrant
- Permissions refinement (#19295) - murrant
- Remove duplicate font-size in geomap, improve accessibility (#19285) - as8net
- Added filter for sensors to filter for errors, warning, alert and unknown values (#18639) - shrank
- Add option for ports controller to use ARP/MAC table lookup for IPv4 neighbours (#16899) - eskyuu
Alerting
- Add alert rules for Windows resources, Zebra printer traps, and Dell DRAC sensors (#19397) - chris9951
- Enhance Microsoft Teams alert delivery: support new Workflow webhooks (#19293) - fbourqui
- Reset alerted flag when a new alert cycle begins (#19086) - ciroiriarte
- Add SNMP Trap alert transport (#19068) - ciroiriarte
- Add PagerTree Alert Transport (#19037) - elherr
Applications
- Update to support form factor, rpm, and over temp info from extend, update docs, minor poller fixes, and add more alert examples (#19169) - VVelox
Api
- Added ability to specify graph type to override system settings in api (#19343) - laf
- Device groups API: Allow device groups to contain an empty list of devices (#19299) - richard-ririe
Discovery
Authentication
- Socialite decouples token attribute lookup from OAuth scopes (#19296) - Jannos-443
Bug
- Fix poller modules perf graph error when a module has no override (#19490) - bdg-robert
- Fix wireless_rate graph missing $unit_long (#19489) - bdg-robert
- Fix edit ports page toggling checkboxes when pressing enter (#19475) - laf
- Added defaults to some OSPFv3 fields missing from Arista (#19473) - laf
- FIX Lenovo-xclarity FAN metrics (#19404) - kakohegyi
- Fix the new SSL page to show HTML on the days until expiry column (#19401) - base-zero
- Fix missing translations for SSL Certificates and Alert Map application settings (#19396) - chris9951
- Fix malformed builder fields in collection templates (#19376) - chris9951
- Fix the high/low limits for Ocnos sensors discovered via php (#19373) - laf
- Fix condition for logging topology change time (#19371) - Jellyfrog
- Correct services() relationship (#19369) - Jellyfrog
- Add access control for devices (#19367) - Jellyfrog
- Host variable assignment logic (#19366) - Jellyfrog
- Tunnel status label assignment logic (#19365) - Jellyfrog
- Fail2ban wrong variable in log message (#19363) - Jellyfrog
- Role name regex inconsistency (#19362) - Jellyfrog
- Check correct variable (#19361) - Jellyfrog
- Some fixes running commands outside dir (#19338) - murrant
- Fix Redis polling crash due to undefined array keys (#19335) - shpokas
- Fix hardcoded font color in device inventory tab for dark mode (#19328) - iliyavl
- Fix IPv4 address parsing error from malformed SNMP data (#19259) (#19326) - Jellyfrog
- More fixes to permissions PR (#19319) - murrant
- Fix show_services menu config (#19314) - murrant
- Fix bridge FDB discovery TypeError when dot1dBasePort is an array (#19248) (#19313) - Jellyfrog
- Fix MIB OID references in Equallogic (#19304) - Jellyfrog
- Fix OID name in Fortigate SNMP query (#19300) - eskyuu
- Fix ambiguous transport_id column in transport-groups query (#19294) - fbourqui
- Fix dynamic service templates not applied during device discovery (#19286) - Florent4C
- Fixed Axos sensor discovery due to capitalisation of OID (#19282) - laf
- Fix an issue with realtime graph (#19280) - murrant
- Fix ArpTable TypeError when Mac::parse() receives array instead of string (#19278) - Jellyfrog
- Cast ignore and disabled to integers in addService (#19276) - CKeckNorthIO
- Fix non-existent state name "dellme" for dell-powervault sensors (#19273) - Jellyfrog
- Fix TnmsneInfo model class not found in Coriant OS (#19272) - Jellyfrog
- Fix undefined variable $oids in MEF discovery (#19271) - Jellyfrog
- Fix undefined array key for HH3C transceiver bias threshold keys (#19268) - Jellyfrog
- Fix undefined array key 0 in commander-plus sensor state (#19267) - Jellyfrog
- Fix undefined array key in awplus NTP discovery (#19266) - Jellyfrog
- Fix undefined array key 1 in avtech sensor pre-cache (#19265) - Jellyfrog
- Fix undefined array key in arubaos FDB discovery (#19264) - Jellyfrog
- Fix Areca OS: isHex() receives null when serial is not set (#19263) - Jellyfrog
- Fix undefined variable $port in aos6 FDB table discovery (#19262) - Jellyfrog
- Fix undefined array key in adva_fsp3kr7 sensor pre-cache (#19261) - Jellyfrog
- Fix undefined array key 1 in adva_fsp150 sensor pre-cache (#19260) - Jellyfrog
- Fix dark mode readability for legacy tables (#19213) - ShanethPatterson
- Fix missing ENTITY-MIB parent index handling in cisco entity sensor d… (#19211) - kakohegyi
- Cisco CBQoS discovery against missing table keys (#19209) - kakohegyi
- Fix timezone override in outages DT picker (#19156) - murrant
- STP port discovery BUG : fix pvst discovery (#18771) - kakohegyi
Refactor
- IPMI refactor (#19424) - murrant
- Add IfOperStatus enum for port ifOperStatus/ifAdminStatus fields (#19400) - Jellyfrog
- Remove snmp_hexstring() and hex2str() (#19392) - mpikzink
- Replace deprecated Request::get() with input() (#19370) - Jellyfrog
- Remove unused state_draw_graph column from state_translations (#19356) - Jellyfrog
- Replace dbFetchCell() with Eloquent in alert rules and user perms (#19340) - Jellyfrog
- Replace dbFetchCell() value lookups with Eloquent (#19337) - Jellyfrog
- Replace dbFetchCell() COUNT queries with Eloquent (#19336) - Jellyfrog
- Replace dbUpdate() with Eloquent in two-column WHERE form handlers (#19331) - Jellyfrog
- Replace dbUpdate() with Eloquent in simple single-WHERE form handlers (#19330) - Jellyfrog
- Replace dbUpdate() with Eloquent in multi-field form handlers (#19329) - Jellyfrog
- Yaml, use SnmpQuery (#17371) - murrant
Cleanup
- Remove Oxidized config validation (#19476) - laf
- Cleanup device_by_name (#19434) - mpikzink
- Cleanup get_sensor_rrd (#19433) - mpikzink
- Cleanup step2 (#19428) - mpikzink
- Cleanup unused functions (#19422) - mpikzink
- Refractor gethostbyid (#19407) - mpikzink
- Add Collection generic type parameters under app/ (#19380) - Jellyfrog
- Convert Raisecom and Raisecom ROS sensors from PHP to YAML definitions (#19360) - Jellyfrog
- Convert nokia-isam temperature sensor from PHP to YAML (#19359) - Jellyfrog
- Improve IPv4 discovery detection for out of order OIDs (#19354) - eskyuu
- Fix OID order in snmprec files (#19353) - eskyuu
- Remove unused deviceArray function from SnmpQueryInterface (#19320) - eskyuu
- Migrate APC state discovery to modern API (#19301) - Jellyfrog
- Replace dbBulkInsert() with Eloquent (#19207) - Jellyfrog
- Convert all dbDelete() calls to Eloquent model methods (#19206) - Jellyfrog
Documentation
Tests
- Clear out phpunit bootstrap (#19412) - murrant
- Add PHPStan level 6 check on new PHP files in PRs (#19410) - Jellyfrog
- Add phpunit extension (#19402) - Jellyfrog
Misc
- Handle null last_polled and last_discovered values (#19450) - Taarek
- Update collation checks logic to use NOT IN and add utf8mb4_uca1400_a… (#19440) - anthonyp-cns
- Validate utf8mb4_uca1400_ai_ci (#19437) - Lantizia
- Remove del_dev_attrib (#19418) - mpikzink
- Add IPv6 cleanup to maintenance:cleanup-networks command (#19318) - karrots
Internal Features
Dependencies
- Bump follow-redirects from 1.15.11 to 1.16.0 (#19451) - dependabot
- Bump phpseclib/phpseclib from 3.0.50 to 3.0.51 (#19430) - dependabot
- Bump axios from 1.13.5 to 1.15.0 (#19421) - dependabot
- Bump lodash from 4.17.23 to 4.18.1 (#19399) - dependabot
- Bump vite from 6.4.1 to 6.4.2 (#19395) - dependabot
- Bump serialize-javascript and terser-webpack-plugin (#19352) - dependabot
- Bump picomatch (#19323) - dependabot
- PHP Dependency updates (#19305) - Jellyfrog
- Bump league/commonmark from 2.8.1 to 2.8.2 (#19283) - dependabot
- Bump phpseclib/phpseclib from 3.0.48 to 3.0.50 (#19279) - dependabot
Fixed health alert toggle button and wireless sensor detection issues.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.