Important
This release has quite a few changes, hence the major bump:
- With no
-i, all interfaces are now monitored, loopback first onifIndex1. Previously none were monitored unless explicitly listed. - The daemon serves IPv4 and IPv6 at the same time by default. Use
-4or-6to restrict it to one family. - SNMPv1 requests now have their community string validated, like SNMPv2c. Previously a v1 request was accepted with any community unless
--authwas set. SIGHUPreloads the configuration; it used to stop the daemon.
Changes
- Add simultaneous dual-stack IPv4/IPv6 support, on by default; restrict to one family with
-4or-6 - Monitor all interfaces by default, loopback first on
ifIndex1 - Support interface name wildcards, iptables style: a trailing
+is a prefix match (eth+matches eth0, eth1, ...) and a lone+matches all - Track interface and address changes in real time on Linux via netlink; interfaces added or removed after start-up appear and disappear without a restart
- Add SNMPv2c trap support,
-T addr[:port], sending coldStart at start-up, linkUp/linkDown on interface oper status changes, and a rate-limited authenticationFailure on a wrong community string. Sinks may also be set in the.conftrap-table - Reload the configuration on
SIGHUP: re-read the.confover the command line and rebuild the MIB, leaving the listening sockets untouched so the daemon can reload after dropping privileges - Extend HOST-RESOURCES-MIB with
hrSystemDate,hrSystemNumUsers,hrSystemProcesses,hrMemorySize,hrStorageTable,hrProcessorTable(per-CPU load), and matchinghrDeviceTableprocessor rows - Add IP-MIB
ipAddressTable(RFC 4293), so managers can discover the IPv6 addresses of the dual-stack daemon - Add the SNMPv2-MIB snmp group, the agent's own counters, and
sysORTable, advertising the implemented MIB modules - Add LM-SENSORS-MIB temperature sensors from
/sys/class/hwmon(Linux) - Serve custom static responses on any OID from
customsections in the.conffile, e.g. to emulate an HP JetDirect print server (issue #29) - Add mini-snmpd.conf(5) man page, documenting the
.confsettings - Reorganize the source tree: code in
src/, documentation indoc/ sysDescrdefaults toPRETTY_NAMEfrom os-release(5) when no description is set with-Dor in the.conffile- Increase
MAX_NR_OIDSfrom 20 to 70, allowing more variable bindings per request, which helps table walks, by Ilya Ponetayev - Log when rejecting a malformed SNMP request, by Ilya Ponetayev
- Move the bug report and homepage info from
-husage to-vversion output - Document the supported MIBs and objects in MIBS.md
Fixes
- Fix #32: build failure with
--with-configbecauseethtool-conf.hwas missing from the release tarball - Fix possible stack overflow when copying an over-long
-iinterface name into the ethtool ioctls, found by Coverity Scan - Drop privileges correctly with
-u: take the primary group from the user's passwd entry instead of a group named after the user, which need not exist (-u nobodywould refuse to start), and drop root's supplementary groups withinitgroups() - Reply to UDP requests from the address they were sent to, so on a multi-homed host the reply comes from the queried address (Linux)
- Validate the community string for SNMPv1. A request with a wrong community is no longer accepted without
--auth, by Ilya Ponetayev - Prepend a zero byte when encoding Counter, Gauge, TimeTicks, and Counter64 values with the high bit set, which otherwise decode as negative integers, by Ilya Ponetayev
- Fix IP-MIB address table OID index on big-endian systems, by Ilya Ponetayev
- The command line and
.conffile now combine instead of the file overriding: list options (-d,-i,-T) append todisk-table,iface-table, andtrap-table, and an unset key no longer clears a value given on the command line