diff --git a/net-mgmt/net-snmp/Makefile b/net-mgmt/net-snmp/Makefile index 3377f582f..6d3792c1c 100644 --- a/net-mgmt/net-snmp/Makefile +++ b/net-mgmt/net-snmp/Makefile @@ -1,6 +1,5 @@ PLUGIN_NAME= net-snmp -PLUGIN_VERSION= 1.5 -PLUGIN_REVISION= 5 +PLUGIN_VERSION= 1.6 PLUGIN_COMMENT= Net-SNMP is a daemon for the SNMP protocol PLUGIN_DEPENDS= net-snmp PLUGIN_MAINTAINER= m.muenz@gmail.com diff --git a/net-mgmt/net-snmp/pkg-descr b/net-mgmt/net-snmp/pkg-descr index bead1bf83..aaa479720 100644 --- a/net-mgmt/net-snmp/pkg-descr +++ b/net-mgmt/net-snmp/pkg-descr @@ -11,6 +11,10 @@ WWW: http://www.net-snmp.org Plugin Changelog ---------------- +1.6 + +* Add support for Observium (contributed by Patrick M. Hausen) + 1.5 * Add support for agentx diff --git a/net-mgmt/net-snmp/src/opnsense/mvc/app/controllers/OPNsense/Netsnmp/forms/general.xml b/net-mgmt/net-snmp/src/opnsense/mvc/app/controllers/OPNsense/Netsnmp/forms/general.xml index 114b0761a..f723fa1de 100644 --- a/net-mgmt/net-snmp/src/opnsense/mvc/app/controllers/OPNsense/Netsnmp/forms/general.xml +++ b/net-mgmt/net-snmp/src/opnsense/mvc/app/controllers/OPNsense/Netsnmp/forms/general.xml @@ -29,6 +29,12 @@ checkbox Enable support for AgentX Application (FRR, others). + + general.enableobservium + + checkbox + Enable extended OIDs for Observium NMS. + general.l3visibility diff --git a/net-mgmt/net-snmp/src/opnsense/mvc/app/models/OPNsense/Netsnmp/General.xml b/net-mgmt/net-snmp/src/opnsense/mvc/app/models/OPNsense/Netsnmp/General.xml index 911568aab..aad29a169 100644 --- a/net-mgmt/net-snmp/src/opnsense/mvc/app/models/OPNsense/Netsnmp/General.xml +++ b/net-mgmt/net-snmp/src/opnsense/mvc/app/models/OPNsense/Netsnmp/General.xml @@ -1,7 +1,7 @@ //OPNsense/netsnmp/general Netsnmp configuration - 1.0.4 + 1.0.5 0 @@ -31,6 +31,10 @@ 0 Y + + 0 + Y + , N diff --git a/net-mgmt/net-snmp/src/opnsense/scripts/OPNsense/Netsnmp/distro.sh b/net-mgmt/net-snmp/src/opnsense/scripts/OPNsense/Netsnmp/distro.sh new file mode 100755 index 000000000..e299ffb24 --- /dev/null +++ b/net-mgmt/net-snmp/src/opnsense/scripts/OPNsense/Netsnmp/distro.sh @@ -0,0 +1,605 @@ +#!/bin/sh +# +# Observium License Version 1.0 +# +# Copyright (C) 2013-2019 Joe Holden, (C) 2014-2024 Observium Limited +# +# The intent of this license is to establish the freedom to use, share and contribute to +# the software regulated by this license. +# +# This license applies to any software containing a notice placed by the copyright holder +# saying that it may be distributed under the terms of this license. Such software is herein +# referred to as the Software. This license covers modification and distribution of the +# Software. +# +# Granted Rights +# +# 1. You are granted the non-exclusive rights set forth in this license provided you agree to +# and comply with any and all conditions in this license. Whole or partial distribution of the +# Software, or software items that link with the Software, in any form signifies acceptance of +# this license. +# +# 2. You may copy and distribute the Software in unmodified form provided that the entire package, +# including - but not restricted to - copyright, trademark notices and disclaimers, as released +# by the initial developer of the Software, is distributed. +# +# 3. You may make modifications to the Software and distribute your modifications, in a form that +# is separate from the Software, such as patches. The following restrictions apply to modifications: +# +# a. Modifications must not alter or remove any copyright notices in the Software. +# b. When modifications to the Software are released under this license, a non-exclusive royalty-free +# right is granted to the initial developer of the Software to distribute your modification in +# future versions of the Software provided such versions remain available under these terms in +# addition to any other license(s) of the initial developer. +# +# Limitations of Liability +# +# In no event shall the initial developers or copyright holders be liable for any damages whatsoever, +# including - but not restricted to - lost revenue or profits or other direct, indirect, special, +# incidental or consequential damages, even if they have been advised of the possibility of such damages, +# except to the extent invariable law, if any, provides otherwise. +# +# No Warranty +# +# The Software and this license document are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# +# URL: [https://www.observium.org/files/distro] + +DISTROSCRIPT="2.3.2" + +if [ -z ${DISTROFORMAT} ]; then + DISTROFORMAT="pipe" +fi + +if [ -n "${AGENT_LIBDIR}" -o -n "${MK_LIBDIR}" ]; then + DISTROFORMAT="export" +fi + +getos() { + OS=`uname -s` + if [ "${OS}" = "SunOS" ]; then + OS="Solaris" + elif [ "${OS}" = "DragonFly" ]; then + OS="DragonFlyBSD" + fi + export OS + return 0 +} + +getkernel() { + if [ "${OS}" = "FreeBSD" -o "${OS}" = "DragonFlyBSD" ]; then + KERNEL=`uname -i` + elif [ "${OS}" = "OpenBSD" -o "${OS}" = "NetBSD" ]; then + KERNEL=`uname -v` + elif [ "${OS}" = "AIX" ]; then + KERNEL=`oslevel -s` + else + KERNEL=`uname -r` + fi + export KERNEL + return 0 +} + +getdistro() { + if [ "${OS}" = "Linux" ]; then + if [ -f /etc/os-release ]; then + if [ -f /etc/armbian-release ]; then + # Armbian uses incorrect os-release + DISTRO="Armbian" + elif [ -f /etc/orangepi-release ]; then + # Orange Pi uses incorrect os-release + DISTRO="Orange OS" + elif [ -f /boot/dietpi/.version ]; then + # This is clone of Raspbian, but distro/version incorrect + DISTRO="DietPi" + else + # note, this source include also set variable name $VERSION, ie on debian "10 (buster)" + . /etc/os-release + #DISTRO=`echo ${NAME} | awk '{print $1}'` + DISTRO="${NAME% *}" + if [ "${DISTRO}" = "Linux" ]; then + # ie: Linux Mint + DISTRO="${NAME#Linux *}" + fi + fi + elif [ -x /usr/bin/lsb_release ]; then + DISTRO=`/usr/bin/lsb_release -si 2>/dev/null` + elif [ -f /etc/redhat-release ]; then + DISTRO=`cat /etc/redhat-release | cut -d" " -f1` + elif [ -f /etc/fedora-release ]; then + DISTRO="Fedora" + elif [ -f /etc/debian_version ]; then + if [ -f /etc/mailcleaner/etc/mailcleaner/version.def ]; then + DISTRO="MailCleaner" + else + DISTRO="Debian" + fi + elif [ -f /etc/arch-release ]; then + DISTRO="ArchLinux" + elif [ -f /etc/gentoo-release ]; then + DISTRO="Gentoo" + elif [ -f /etc/SuSE-release -o -f /etc/novell-release -o -f /etc/sles-release ]; then + DISTRO="SuSE" + if [ -f /etc/os-release ]; then + . /etc/os-release + if [ "${NAME}" = "openSUSE" ]; then + DISTRO="openSUSE" + fi + fi + elif [ -f /etc/mandriva-release ]; then + DISTRO="Mandriva" + elif [ -f /etc/mandrake-release -o -f /etc/mandakelinux-release ]; then + DISTRO="Mandrake" + elif [ -f /etc/UnitedLinux-release ]; then + DISTRO="UnitedLinux" + elif [ -f /etc/openwrt_version ]; then + DISTRO="OpenWRT" + elif [ -f /etc/slackware-version -o -f /etc/slackware-release ]; then + DISTRO="Slackware" + elif [ -f /etc/annvix-release ]; then + DISTRO="Annvix" + elif [ -f /etc/arklinux-release ]; then + DISTRO="Arklinux" + elif [ -f /etc/aurox-release ]; then + DISTRO="Aurox Linux" + elif [ -f /etc/blackcat-release ]; then + DISTRO="BlackCat" + elif [ -f /etc/cobalt-release ]; then + DISTRO="Cobalt" + elif [ -f /etc/conectiva-release ]; then + DISTRO="Conectiva" + elif [ -f /etc/eos-version ]; then + DISTRO="FreeEOS" + elif [ -f /etc/hlfs-release -o -f /etc/hlfs_version ]; then + DISTRO="HLFS" + elif [ -f /etc/immunix-release ]; then + DISTRO="Immunix" + elif [ -f /knoppix_version ]; then + DISTRO="Knoppix" + elif [ -f /etc/lfs-release -o -f /etc/lfs_version ]; then + DISTRO="Linux-From-Scratch" + elif [ -f /etc/linuxppc-release ]; then + DISTRO="Linux-PPC" + elif [ -f /etc/mageia-release ]; then + DISTRO="Mageia" + elif [ -f /etc/mklinux-release ]; then + DISTRO="MkLinux" + elif [ -f /etc/nld-release ]; then + DISTRO="Novell Linux Desktop" + elif [ -f /etc/pld-release ]; then + DISTRO="PLD" + elif [ -f /etc/rubix-version ]; then + DISTRO="Rubix" + elif [ -f /etc/e-smith-release ]; then + DISTRO="SME Server" + elif [ -f /etc/synoinfo.conf ]; then + DISTRO="Synology" + elif [ -f /etc/tinysofa-release ]; then + DISTRO="Tiny Sofa" + elif [ -f /etc/trustix-release -o -f /etc/trustix-version ]; then + DISTRO="Trustix" + elif [ -f /etc/turbolinux-release ]; then + DISTRO="TurboLinux" + elif [ -f /etc/ultrapenguin-release ]; then + DISTRO="UltraPenguin" + elif [ -f /etc/va-release ]; then + DISTRO="VA-Linux" + elif [ -f /etc/yellowdog-release ]; then + DISTRO="Yellow Dog" + else + DISTRO= + fi + + # Additional Distro fixes + if [ "${DISTRO}" = "Debian GNU/Linux" ]; then + DISTRO="Debian" + elif [ "${DISTRO}" = "Red" -o "${DISTRO}" = "RedHatEnterpriseServer" ]; then + DISTRO="RedHat" + elif [ "${DISTRO}" = "VMware Photon" ]; then + DISTRO="Photon" + elif [ "${DISTRO}" = "Arch" ]; then + DISTRO="Arch Linux" + elif [ "${DISTRO}" = "Orange" ]; then + DISTRO="Orange OS" + elif [ "${DISTRO}" = "Amazon" ]; then + DISTRO="Amazon Linux" + fi + + elif [ "${OS}" = "FreeBSD" ]; then + if [ -f /etc/platform -a -f /etc/version ]; then + DISTRO="pfSense" + elif [ -f /etc/platform -a -f /etc/prd.name ]; then + DISTRO=`cat /etc/prd.name` + elif [ -x /usr/local/sbin/opnsense-version ]; then + DISTRO="OPNsense" + elif [ -f /usr/local/bin/pbreg ]; then + DISTRO="PC-BSD" + elif [ -f /usr/sbin/hbsd-update -o -f /etc/hbsd-update.conf ]; then + DISTRO="HardenedBSD" + elif [ -f /tmp/freenas_config.md5 ]; then + DISTRO="FreeNAS" + else + DISTRO= + fi + elif [ "${OS}" = "Solaris" ]; then + DISTRO=`head -n 1 /etc/release | awk '{print $1}'` + if [ "${DISTRO}" = "Solaris" -o "${DISTRO}" = "Oracle" ]; then + DISTRO= + fi + elif [ "${OS}" = "Darwin" ]; then + case `uname -m` in + AppleTV*) + DISTRO="AppleTV" + ;; + iPad*) + DISTRO="iPad" + ;; + iPhone*) + DISTRO="iPhone" + ;; + iPod*) + DISTRO="iPod" + ;; + *) + DISTRO="macOS" + ;; + esac + else + DISTRO= + fi + export DISTRO + return 0 +} + +getarch() { + if [ "${OS}" = "Solaris" ]; then + ARCH=`isainfo -k` + elif [ "${OS}" = "Darwin" ]; then + ARCH=`uname -m` + elif [ "${OS}" = "AIX" ]; then + ARCH=`uname -p` + else + ARCH=`uname -m` + fi + if [ "${ARCH}" = "x86_64" ]; then + ARCH="amd64" + elif [ "${ARCH}" = "i486" -o "${ARCH}" = "i586" -o "${ARCH}" = "i686" ]; then + ARCH="i386" + fi + export ARCH + return 0 +} + +getversion() { + if [ "${OS}" = "FreeBSD" -o "${OS}" = "DragonFlyBSD" ]; then + if [ "${DISTRO}" = "pfSense" ]; then + VERSION=`cat /etc/version` + elif [ "${DISTRO}" = "PC-BSD" ]; then + VERSION=`pbreg get /PC-BSD/Version` + #elif [ "${DISTRO}" = "HardenedBSD" ]; then + # tmp=`sysctl -n hardening.version 2>/dev/null` + # VERSION=`` + elif [ "${DISTRO}" = "OPNsense" ]; then + VERSION=`/usr/local/sbin/opnsense-version | awk '{ print $2 }'` + elif [ -f /etc/prd.version ]; then + VERSION=`cat /etc/prd.version` + elif [ -f /bin/freebsd-version ]; then + VERSION=`/bin/freebsd-version -u` + else + VERSION=`uname -r` + fi + elif [ "${OS}" = "OpenBSD" -o "${OS}" = "NetBSD" ]; then + VERSION=`uname -r` + elif [ "${OS}" = "Linux" ]; then + VERSION=none + if [ "${DISTRO}" = "Debian GNU/Linux" ]; then + DISTRO="Debian" + fi + if [ "${DISTRO}" = "OpenWRT" ]; then + VERSION=`cat /etc/openwrt_version` + elif [ "${DISTRO}" = "Slackware" ]; then + VERSION=`cat /etc/slackware-version | cut -d" " -f2` + elif [ "${DISTRO}" = "Armbian" ]; then + #. /etc/armbian-release + VERSION=`awk -F '=' '/VERSION=/ { print $2 }' /etc/armbian-release` + elif [ "${DISTRO}" = "Orange OS" ]; then + #. /etc/orangepi-release + VERSION=`awk -F '=' '/VERSION=/ { print $2 }' /etc/orangepi-release` + elif [ "${DISTRO}" = "DietPi" ]; then + . /boot/dietpi/.version + VERSION="${G_DIETPI_VERSION_CORE}.${G_DIETPI_VERSION_SUB}.${G_DIETPI_VERSION_RC}" + elif [ -f /etc/orangepi-os-version ]; then + VERSION=`awk -F ' - ' '{ print $NF }' /etc/orangepi-os-version | sed 's/-linux.*//'` + elif [ -f /etc/os-release ]; then + . /etc/os-release + VERSION="${VERSION_ID}" + elif [ -f /etc/redhat-release ]; then + VERSION=`cat /etc/redhat-release | sed 's/.*release\ //' | cut -d" " -f1` + elif [ -x /usr/bin/lsb_release ]; then + VERSION=`lsb_release -sr 2>/dev/null` + elif [ -f /etc/debian_version ]; then + VERSION=`cat /etc/debian_version | cut -d"." -f1` + fi + + # reset not numeric version string + case $VERSION in 0*|1*|2*|3*|4*|5*|6*|7*|8*|9*) + ;; + *) + VERSION=none + ;; + esac + + if [ "${VERSION}" = "none" -a -f /etc/os-release ]; then + . /etc/os-release + VERSION="${VERSION_ID}" + fi + + elif [ "${OS}" = "Darwin" ]; then + VERSION=`sw_vers -productVersion` + elif [ "${OS}" = "Solaris" ]; then + VERSION=`uname -v` + elif [ "${OS}" = "AIX" ]; then + # ie: 6.1.0.0 + VERSION=`oslevel` + else + VERSION= + fi + export VERSION + return 0 +} + +detectvirt() { + local type + type=none + case $1 in + [Vv][Mm][Ww][Aa][Rr][Ee]*) + type=vmware + ;; + HVM*domU*) + type=xenhvm + ;; + [Xx][Ee][Nn]*) + type=xenpv + ;; + [Mm][Ii][Cc][Rr][Oo][Ss][Oo][Ff][Tt]|[Vv][Ii][Rr][Tt][Uu][Aa][Ll]*) + type=microsoft + ;; + [Bb][Hh][Yy][Vv][Ee]*) + type=bhyve + ;; + Standard*PC*Q*ICH*|Standard*PC*i440FX*PIIX*) + type=qemu + ;; + QEMU*Virtual*CPU*) + type=qemu + ;; + KVM*|[Go][Oo][Oo][Gg][Ll][Ee]*) + type=kvm + ;; + zvm|oracle|amazon|bochs|uml|parallels|kvm|qemu|qnx|acrn|powervm) + type="${1}" + ;; + vm-other) + type=other + ;; + *) + type=none + ;; + esac + + echo $type +} + +detectcont() { + local type + type=none + case $1 in + *) + type="${1}" + ;; + esac + + echo $type +} + +getcont() { + CONT="none" + if [ "${OS}" = "Linux" ]; then + if [ "${CONT}" = "none" -a -f /proc/user_beancounters ]; then + if [ "`awk '/envID:/ {print $2}' /proc/self/status 2>/dev/null`" != "0" ]; then + CONT=openvz + fi + fi + if [ "${CONT}" = "none" -a -f /usr/bin/systemd-detect-virt ]; then + CONT=`/usr/bin/systemd-detect-virt -c` + fi + if [ "${CONT}" = "none" -a -f /proc/1/cgroup ]; then + if grep -qa docker /proc/1/cgroup 2>/dev/null; then + CONT=docker + elif grep -qa lxc /proc/1/cgroup 2>/dev/null; then + CONT=lxc + fi + fi + if [ "${CONT}" = "none" -a -f /.dockerenv ]; then + CONT=docker + fi + elif [ "${OS}" = "FreeBSD" -o "${OS}" = "OpenBSD" -o "${OS}" = "NetBSD" ]; then + if [ "${OS}" = "FreeBSD" ]; then + tmp=`sysctl -n security.jail.jailed 2>/dev/null` + if [ "${tmp}" = "1" ]; then + CONT=jail + fi + fi + else + CONT="" + fi + if [ "${CONT}" = "none" ]; then + CONT="" + fi + export CONT + return 0 +} + +getvirt() { + VIRT="none" + if [ "${OS}" = "Linux" ]; then + if [ "${VIRT}" = "none" -a -f /usr/bin/systemd-detect-virt ]; then + tmp=`/usr/bin/systemd-detect-virt -v` + # systemd-detect-virt falsely detects "Microsoft" virtualisation + # https://github.com/systemd/systemd/issues/21468 + if [ "${tmp}" = "microsoft" -a -f /sys/devices/virtual/dmi/id/product_name ]; then + tmp2=`cat /sys/devices/virtual/dmi/id/product_name` + if [ "${tmp2}" = "KVM" ]; then + tmp="${tmp2}" + fi + fi + VIRT=`detectvirt "${tmp}"` + fi + if [ "${VIRT}" = "none" -a -f /sys/devices/virtual/dmi/id/product_name ]; then + tmp=`cat /sys/devices/virtual/dmi/id/product_name` + VIRT=`detectvirt "${tmp}"` + fi + if [ "${VIRT}" = "none" ]; then + if [ -f `which dmidecode 2>/dev/null` ]; then + tmp=`dmidecode -s system-product-name 2>/dev/null` + VIRT=`detectvirt "${tmp}"` + fi + fi + if [ "${VIRT}" = "none" ]; then + if [ -f /proc/cpuinfo ]; then + tmp=`grep 'model name' /proc/cpuinfo | cut -d\ -f3-` + VIRT=`detectvirt "${tmp}"` + fi + fi + elif [ "${OS}" = "FreeBSD" -o "${OS}" = "OpenBSD" -o "${OS}" = "NetBSD" ]; then + if [ "${OS}" = "FreeBSD" ]; then + tmp=`sysctl -n hw.hv_vendor 2>/dev/null` + VIRT=`detectvirt "${tmp}"` + if [ "${VIRT}" = "none" ]; then + tmp=`sysctl -n machdep.dmi.system-vendor 2>/dev/null` + VIRT=`detectvirt "${tmp}"` + fi + if [ "${VIRT}" = "none" ]; then + tmp=`sysctl -n machdep.dmi.system-product 2>/dev/null` + VIRT=`detectvirt "${tmp}"` + fi + fi + if [ "${OS}" = "OpenBSD" ]; then + tmp=`dmesg | grep pvbus0 | awk '{print $4}'` + VIRT=`detectvirt "${tmp}"` + fi + if [ "${VIRT}" = "none" ]; then + tmp=`sysctl -n hw.product 2>/dev/null` + VIRT=`detectvirt "${tmp}"` + fi + if [ "${VIRT}" = "none" ]; then + tmp=`sysctl -n hw.model 2>/dev/null` + VIRT=`detectvirt "${tmp}"` + fi + else + VIRT="" + fi + if [ "${VIRT}" = "none" ]; then + VIRT="" + fi + export VIRT + return 0 +} + +help() { + cat << EOF +Usage: distro [-f format] [-o out] [-h] [-v] + +Options: + -f Output format: pipe (default), twopipe, json, ini, export + -o Show specific parameter only: os, kernel, arch, distro, + version, virt, cont + -h Show help + -v Show version + +See the distro homepage at https://docs.observium.org/distro_script +and source code at https://github.com/observium/distroscript +EOF +} + +while getopts vho:f: flag +do + case "${flag}" in + v) echo $DISTROSCRIPT; exit;; + h) help; exit;; + o) + getos + getdistro + if [ "${OPTARG}" = "os" ]; then + #getos + echo $OS + elif [ "${OPTARG}" = "kernel" ]; then + getkernel + echo $KERNEL + elif [ "${OPTARG}" = "arch" ]; then + getarch + echo $ARCH + elif [ "${OPTARG}" = "distro" ]; then + #getdistro + echo $DISTRO + elif [ "${OPTARG}" = "version" ]; then + getversion + echo $VERSION + elif [ "${OPTARG}" = "virt" ]; then + getvirt + echo $VIRT + elif [ "${OPTARG}" = "cont" ]; then + getcont + echo $CONT + fi + exit + ;; + f) if [ "${OPTARG}" = "pipe" -o "${OPTARG}" = "twopipe" -o "${OPTARG}" = "json" -o "${OPTARG}" = "export" -o "${OPTARG}" = "ini" ]; then + DISTROFORMAT=${OPTARG} + fi + ;; + esac +done + +if [ -z ${DISTROEXEC+x} ]; then + + getos + getkernel + getarch + getdistro + getversion + getvirt + getcont + + if [ "${AGENT_LIBDIR}" -o "${MK_LIBDIR}" ]; then + echo "<<>>" + fi + if [ "${DISTROFORMAT}" = "twopipe" ]; then + echo "${OS}||${KERNEL}||${ARCH}||${DISTRO}||${VERSION}||${VIRT}||${CONT}" + elif [ "${DISTROFORMAT}" = "ini" ]; then + echo "[distroscript]" + echo " OS = ${OS}" + echo " KERNEL = ${KERNEL}" + echo " ARCH = ${ARCH}" + echo " DISTRO = ${DISTRO}" + echo " VERSION = ${VERSION}" + echo " VIRT = ${VIRT}" + echo " CONT = ${CONT}" + echo " SCRIPTVER = ${DISTROSCRIPT}" + elif [ "${DISTROFORMAT}" = "export" ]; then + echo "OS=${OS}" + echo "KERNEL=${KERNEL}" + echo "ARCH=${ARCH}" + echo "DISTRO=${DISTRO}" + echo "VERSION=${VERSION}" + echo "VIRT=${VIRT}" + echo "CONT=${CONT}" + echo "SCRIPTVER=${DISTROSCRIPT}" + elif [ "${DISTROFORMAT}" = "json" ]; then + echo "{\"os\":\"${OS}\",\"kernel\":\"${KERNEL}\",\"arch\":\"${ARCH}\",\"distro\":\"${DISTRO}\",\"version\":\"${VERSION}\",\"virt\":\"${VIRT}\",\"cont\":\"${CONT}\",\"scriptver\":\"${DISTROSCRIPT}\"}" + else + echo "${OS}|${KERNEL}|${ARCH}|${DISTRO}|${VERSION}|${VIRT}|${CONT}" + fi + exit 0 +fi diff --git a/net-mgmt/net-snmp/src/opnsense/service/templates/OPNsense/Netsnmp/snmpd.conf b/net-mgmt/net-snmp/src/opnsense/service/templates/OPNsense/Netsnmp/snmpd.conf index a04c0a182..71d456f33 100644 --- a/net-mgmt/net-snmp/src/opnsense/service/templates/OPNsense/Netsnmp/snmpd.conf +++ b/net-mgmt/net-snmp/src/opnsense/service/templates/OPNsense/Netsnmp/snmpd.conf @@ -18,6 +18,13 @@ agentxsocket /var/agentx/master agentxperms 777 777 {% endif %} +{% if OPNsense.netsnmp.general.enableobservium == '1' %} +extend .1.3.6.1.4.1.2021.7890.1 distro /usr/local/opnsense/scripts/OPNsense/Netsnmp/distro.sh +extend .1.3.6.1.4.1.2021.7890.2 hardware /bin/kenv smbios.planar.product +extend .1.3.6.1.4.1.2021.7890.3 vendor /bin/kenv smbios.planar.maker +extend .1.3.6.1.4.1.2021.7890.4 serial /bin/kenv smbios.planar.serial +{% endif %} + {% if helpers.exists('OPNsense.netsnmp.general.community') and OPNsense.netsnmp.general.community != '' %} rocommunity {{ OPNsense.netsnmp.general.community }} rocommunity6 {{ OPNsense.netsnmp.general.community }}