我正在尝试使用 snmp 监控 keepalived。以下是配置的相关部分:/etc/snmp/snmp.conf
# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loading them by commenting out the following line.
#mibs :
mibs +KEEPALIVED-MIB
/etc/snmp/snmpd.conf
master agentx
#agentXSocket udp:127.0.0.1:705
#agentAddress udp:127.0.0.1:161
rocommunity public 127.0.0.1
trapcommunity public
trap2sink 127.0.0.1
/etc/keepalived/keepalived.conf
global_defs {
notification_email {
enable_snmp_checker [email protected]
}
notification_email_from [email protected]
smtp_server localhost
smtp_connect_timeout 60
#snmp_socket udp:127.0.0.1:705
#enable_snmp_checker
#enable_snmp_rfcv3
#enable_snmp_rfcv2
#enable_snmp_vrrp
#enable_snmp_rfc
#enable_traps
}
...
...
ll /usr/share/snmp/mibs/
total 216
drwxr-xr-x 2 user user 4096 Sep 12 10:56 ./
drwxr-xr-x 5 root root 4096 Sep 12 10:55 ../
-rw-r--r-- 1 root root 143802 Sep 12 10:56 KEEPALIVED-MIB.txt
-rw-r--r-- 1 root root 26693 Sep 12 10:56 VRRP-MIB.txt
-rw-r--r-- 1 root root 34959 Sep 12 10:56 VRRPv3-MIB.txt
-x
keepalived 现在已经在 中工作并运行了一段时间/etc/default/keepalived
。但是 snmp 不起作用。我正在使用 mibs 文件acassen/keepalived。当我运行以下命令时:
# snmpwalk -v 2c -c public 127.0.0.1 KEEPALIVED-MIB
我得到:
MIB search path: /root/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (SNMPv2-MIB): At line 0 in (none)
Cannot find module (IF-MIB): At line 0 in (none)
Cannot find module (IP-MIB): At line 0 in (none)
Cannot find module (TCP-MIB): At line 0 in (none)
Cannot find module (UDP-MIB): At line 0 in (none)
Cannot find module (HOST-RESOURCES-MIB): At line 0 in (none)
Cannot find module (NOTIFICATION-LOG-MIB): At line 0 in (none)
Cannot find module (DISMAN-EVENT-MIB): At line 0 in (none)
Cannot find module (DISMAN-SCHEDULE-MIB): At line 0 in (none)
Cannot find module (HOST-RESOURCES-TYPES): At line 0 in (none)
Cannot find module (MTA-MIB): At line 0 in (none)
Cannot find module (NETWORK-SERVICES-MIB): At line 0 in (none)
Cannot find module (UCD-DISKIO-MIB): At line 0 in (none)
Cannot find module (UCD-DLMOD-MIB): At line 0 in (none)
Cannot find module (LM-SENSORS-MIB): At line 0 in (none)
Cannot find module (UCD-SNMP-MIB): At line 0 in (none)
Cannot find module (UCD-DEMO-MIB): At line 0 in (none)
Cannot find module (SNMP-TARGET-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-AGENT-MIB): At line 0 in (none)
Cannot find module (SNMP-MPD-MIB): At line 0 in (none)
Cannot find module (SNMP-USER-BASED-SM-MIB): At line 0 in (none)
Cannot find module (SNMP-FRAMEWORK-MIB): At line 0 in (none)
Cannot find module (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none)
Cannot find module (SNMP-COMMUNITY-MIB): At line 0 in (none)
Cannot find module (IPV6-ICMP-MIB): At line 0 in (none)
Cannot find module (IPV6-MIB): At line 0 in (none)
Cannot find module (IPV6-TCP-MIB): At line 0 in (none)
Cannot find module (IPV6-UDP-MIB): At line 0 in (none)
Cannot find module (IP-FORWARD-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-PASS-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-EXTEND-MIB): At line 0 in (none)
Cannot find module (SNMP-NOTIFICATION-MIB): At line 0 in (none)
Cannot find module (SNMPv2-TM): At line 0 in (none)
Cannot find module (NET-SNMP-VACM-MIB): At line 0 in (none)
Cannot find module (SNMPv2-SMI): At line 13 in /usr/share/snmp/mibs/KEEPALIVED-MIB.txt
Cannot find module (INET-ADDRESS-MIB): At line 18 in /usr/share/snmp/mibs/KEEPALIVED-MIB.txt
Cannot find module (IF-MIB): At line 20 in /usr/share/snmp/mibs/KEEPALIVED-MIB.txt
Cannot find module (SNMPv2-TC): At line 22 in /usr/share/snmp/mibs/KEEPALIVED-MIB.txt
Did not find 'enterprises' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Did not find 'InetAddressType' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Did not find 'InetAddress' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Did not find 'InetPortNumber' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Did not find 'InetAddressPrefixLength' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Did not find 'InetScopeType' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Did not find 'InterfaceIndex' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Did not find 'ifIndex' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Did not find 'DisplayString' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Did not find 'TruthValue' in module #-1 (/usr/share/snmp/mibs/KEEPALIVED-MIB.txt)
Unlinked OID in KEEPALIVED-MIB: debian ::= { enterprises 9586 }
Undefined identifier: enterprises near line 149 of /usr/share/snmp/mibs/KEEPALIVED-MIB.txt
Cannot adopt OID in KEEPALIVED-MIB: vrrpRouteEntry ::= { vrrpRouteTable 1 }
Cannot adopt OID in KEEPALIVED-MIB: vrrpTrapControl ::= { vrrpTrap 1 }
Cannot adopt OID in KEEPALIVED-MIB: vrrpTraps ::= { vrrpTrap 0 }
Cannot adopt OID in KEEPALIVED-MIB: vrrpSyncTrackedScriptEntry ::= { vrrpSyncTrackedScriptTable 1 }
Cannot adopt OID in KEEPALIVED-MIB: vrrpTrackedBfdWgtRev ::= { vrrpTrackedBfdEntry 4 }
Cannot adopt OID in KEEPALIVED-MIB: vrrpTrackedBfdWeight ::= { vrrpTrackedBfdEntry 3 }
Cannot adopt OID in KEEPALIVED-MIB: vrrpTrackedBfdName ::= { vrrpTrackedBfdEntry 2 }
Cannot adopt OID in KEEPALIVED-MIB: vrrpTrackedBfdIndex ::= { vrrpTrackedBfdEntry 1 }
...
...
KEEPALIVED-MIB: Unknown Object Identifier (Sub-id not found: (top) -> KEEPALIVED-MIB)
我尝试了 keepalived 和 snmpd 的不同配置,但不幸的是,都没有奏效。这是运行 Ubuntu Xenial 的 Linux 主机:uname -a
Linux vgw01 4.20.0-custom #45 SMP Tue Dec 25 13:33:11 CET 2018 x86_64 x86_64 x86_64 GNU/Linux
snmpd-v
NET-SNMP version: 5.7.3
Web: http://www.net-snmp.org/
Email: [email protected]
Keepalived -v
Keepalived v2.0.12 (unknown)
Copyright(C) 2001-2019 Alexandre Cassen, <[email protected]>
Built with kernel headers for Linux 4.4.162
Running on Linux 4.20.0-custom #45 SMP Tue Dec 25 13:33:11 CET 2018
configure options: --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-snmp --enable-sha1 --enable-snmp-rfcv2 --enable-snmp-rfcv3 --enable-dbus --enable-dbus-create-instance --enable-json --enable-bfd --enable-nftables build_alias=x86_64-linux-gnu CFLAGS=-g -O2 -fstack-protector-strong -Wformat -Werror=format-security LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2
Config options: LIBIPTC LIBIPSET_DYNAMIC NFTABLES LVS VRRP VRRP_AUTH JSON BFD OLD_CHKSUM_COMPAT FIB_ROUTING SNMP_V3_FOR_V2 SNMP_VRRP SNMP_CHECKER SNMP_RFCV2 SNMP_RFCV3 DBUS DBUS_CREATE_INSTANCE
System options: PIPE2 SIGNALFD INOTIFY_INIT1 VSYSLOG EPOLL_CREATE1 IPV4_DEVCONF IPV6_ADVANCED_API LIBNL3 RTA_ENCAP RTA_NEWDST RTA_PREF FRA_SUPPRESS_PREFIXLEN FRA_SUPPRESS_IFGROUP FRA_TUN_ID RTAX_CC_ALGO RTAX_QUICKACK RTEXT_FILTER_SKIP_STATS RTA_VIA FRA_OIFNAME IFA_FLAGS IP_MULTICAST_ALL LWTUNNEL_ENCAP_MPLS LWTUNNEL_ENCAP_ILA LIBIPTC LIBIPSET_PRE_V7 NET_LINUX_IF_H_COLLISION LIBIPVS_NETLINK IPVS_DEST_ATTR_ADDR_FAMILY IPVS_SYNCD_ATTRIBUTES IPVS_64BIT_STATS VRRP_VMAC CN_PROC SOCK_NONBLOCK SOCK_CLOEXEC O_PATH GLOB_BRACE INET6_ADDR_GEN_MODE VRF SO_MARK SCHED_RT SCHED_RESET_ON_FORK
稍后我将使用 check_mk 对其进行监控。您知道我该如何让它工作吗?
多谢。
答案1
Ubuntu Xenial 上的 snmpd 似乎有一个错误,即使在 中指定了 agentx,它也无法启动snmpd.conf
。我不得不在 中指定它/etc/default/snmpd
,但我完全可以省略它,/etc/snmp/snmpd.conf
这样文件中就只有一行。以下是我的工作配置:
/etc/default/snmpd
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -p /run/snmpd.pid --master=agentx --agentXSocket=tcp:localhost:705'
/etc/snmp/snmpd.conf
rocommunity public monitoring.server
/etc/keepalived/keepalived.conf
global_defs {
notification_email {
enable_snmp_checker [email protected]
}
notification_email_from [email protected]
smtp_server localhost
smtp_connect_timeout 60
snmp_socket tcp:localhost:705
enable_snmp_checker
enable_snmp_rfcv3
enable_snmp_rfcv2
enable_snmp_vrrp
enable_snmp_rfc
#enable_traps
}
/etc/default/keepalived
DAEMON_ARGS="-D --snmp"`
感谢 Lenniey 的建议