为什么不是我的haproxy net-snmp插件工作?

我有一个haproxy 1.7.7安装,我试图与snmp集成。 我已经安装并启用了snmp,但haproxy.pl打包的haproxy.pl插件运行不正常。

首先,我在Ubuntu 16.04 LTS中安装了以下软件包:

 sudo apt-get install snmp snmpd snmp-mibs-downloader libsnmp-perl 

然后我按照haproxy-1.7.7/contrib/netsnmp-perl/README

 Install: cp haproxy.pl /etc/snmp/ grep -q "disablePerl false" /etc/snmp/snmpd.conf || echo "disablePerl false" >> /etc/snmp/snmpd.conf echo "perl do '/etc/snmp/haproxy.pl';" >> /etc/snmp/snmpd.conf 

这是我的/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 : defSecurityName demo defSecurityLevel authPriv defAuthType SHA defPrivType AES defAuthPassphrase my_password defPrivPassphrase my_password 

这是我的/etc/snmp/snmpd.conf

 ############################################################################### # # EXAMPLE.conf: # An example configuration file for configuring the Net-SNMP agent ('snmpd') # See the 'snmpd.conf(5)' man page for details # # Some entries are deliberately commented out, and will need to be explicitly activated # ############################################################################### # # AGENT BEHAVIOUR # # Listen for connections from the local system only #agentAddress udp:127.0.0.1:161 # Listen for connections on all interfaces (both IPv4 *and* IPv6) agentAddress udp:161,udp6:[::1]:161 ############################################################################### # # SNMPv3 AUTHENTICATION # # Note that these particular settings don't actually belong here. # They should be copied to the file /var/lib/snmp/snmpd.conf # and the passwords changed, before being uncommented in that file *only*. # Then restart the agent # createUser bootstrap SHA temp_password AES # createUser authOnlyUser MD5 "remember to change this password" # createUser authPrivUser SHA "remember to change this one too" DES # createUser internalUser MD5 "this is only ever used internally, but still change the password" # If you also change the usernames (which might be sensible), # then remember to update the other occurances in this example config file to match. ############################################################################### # # ACCESS CONTROL # # system + hrSystem groups only view systemonly included .1.3.6.1.2.1.1 view systemonly included .1.3.6.1.2.1.25.1 view systemonly included .1.3.6.1.4.1.29385.106 # Full access from the local host #rocommunity public localhost # Default access to basic system info rocommunity public default -V systemonly # rocommunity6 is for IPv6 rocommunity6 public default -V systemonly # Full access from an example network # Adjust this network address to match your local # settings, change the community string, # and check the 'agentAddress' setting above #rocommunity secret 10.0.0.0/16 # Full read-only access for SNMPv3 rouser authOnlyUser # Full write access for encrypted requests # Remember to activate the 'createUser' lines above #rwuser authPrivUser priv #rwuser bootstrap priv rwuser demo priv # It's no longer typically necessary to use the full 'com2sec/group/access' configuration # r[ow]user and r[ow]community, together with suitable views, should cover most requirements ############################################################################### # # SYSTEM INFORMATION # # Note that setting these values here, results in the corresponding MIB objects being 'read-only' # See snmpd.conf(5) for more details sysLocation Sitting on the Dock of the Bay sysContact Me <[email protected]> # Application + End-to-End layers sysServices 72 # # Process Monitoring # # At least one 'mountd' process proc mountd # No more than 4 'ntalkd' processes - 0 is OK proc ntalkd 4 # At least one 'sendmail' process, but no more than 10 proc sendmail 10 1 # Walk the UCD-SNMP-MIB::prTable to see the resulting output # Note that this table will be empty if there are no "proc" entries in the snmpd.conf file # # Disk Monitoring # # 10MBs required on root disk, 5% free on /var, 10% free on all other disks disk / 10000 disk /var 5% includeAllDisks 10% # Walk the UCD-SNMP-MIB::dskTable to see the resulting output # Note that this table will be empty if there are no "disk" entries in the snmpd.conf file # # System Load # # Unacceptable 1-, 5-, and 15-minute load averages load 12 10 5 # Walk the UCD-SNMP-MIB::laTable to see the resulting output # Note that this table *will* be populated, even without a "load" entry in the snmpd.conf file ############################################################################### # # ACTIVE MONITORING # # send SNMPv1 traps trapsink localhost public # send SNMPv2c traps #trap2sink localhost public # send SNMPv2c INFORMs #informsink localhost public # Note that you typically only want *one* of these three lines # Uncommenting two (or all three) will result in multiple copies of each notification. # # Event MIB - automatically generate alerts # # Remember to activate the 'createUser' lines above iquerySecName internalUser rouser internalUser # generate traps on UCD error conditions #defaultMonitors yes # generate traps on linkUp/Down #linkUpDownNotifications yes ############################################################################### # # EXTENDING THE AGENT # # # Arbitrary extension commands # extend test1 /bin/echo Hello, world! extend-sh test2 echo Hello, world! ; echo Hi there ; exit 35 #extend-sh test3 /bin/sh /tmp/shtest # Note that this last entry requires the script '/tmp/shtest' to be created first, # containing the same three shell commands, before the line is uncommented # Walk the NET-SNMP-EXTEND-MIB tables (nsExtendConfigTable, nsExtendOutput1Table # and nsExtendOutput2Table) to see the resulting output # Note that the "extend" directive supercedes the previous "exec" and "sh" directives # However, walking the UCD-SNMP-MIB::extTable should still returns the same output, # as well as the fuller results in the above tables. # # "Pass-through" MIB extension command # #pass .1.3.6.1.4.1.8072.2.255 /bin/sh PREFIX/local/passtest #pass .1.3.6.1.4.1.8072.2.255 /usr/bin/perl PREFIX/local/passtest.pl # Note that this requires one of the two 'passtest' scripts to be installed first, # before the appropriate line is uncommented. # These scripts can be found in the 'local' directory of the source distribution, # and are not installed automatically. # Walk the NET-SNMP-PASS-MIB::netSnmpPassExamples subtree to see the resulting output # # AgentX Sub-agents # # Run as an AgentX master agent master agentx # Listen for network connections (from localhost) # rather than the default named socket /var/agentx/master #agentXSocket tcp:localhost:705 disablePerl false perl do '/etc/snmp/haproxy.pl'; 

当我尝试运行sudo perl /etc/snmp/haproxy.pl ,这是输出:

 /etc/snmp/snmpd.conf: line 46: Warning: Unknown token: view. /etc/snmp/snmpd.conf: line 47: Warning: Unknown token: view. /etc/snmp/snmpd.conf: line 48: Warning: Unknown token: view. /etc/snmp/snmpd.conf: line 53: Warning: Unknown token: rocommunity. /etc/snmp/snmpd.conf: line 55: Warning: Unknown token: rocommunity6. /etc/snmp/snmpd.conf: line 64: Warning: Unknown token: rouser. /etc/snmp/snmpd.conf: line 69: Warning: Unknown token: rwuser. /etc/snmp/snmpd.conf: line 83: Warning: Unknown token: sysLocation. /etc/snmp/snmpd.conf: line 84: Warning: Unknown token: sysContact. /etc/snmp/snmpd.conf: line 86: Warning: Unknown token: sysServices. /etc/snmp/snmpd.conf: line 93: Warning: Unknown token: proc. /etc/snmp/snmpd.conf: line 95: Warning: Unknown token: proc. /etc/snmp/snmpd.conf: line 97: Warning: Unknown token: proc. /etc/snmp/snmpd.conf: line 107: Warning: Unknown token: disk. /etc/snmp/snmpd.conf: line 108: Warning: Unknown token: disk. /etc/snmp/snmpd.conf: line 109: Warning: Unknown token: includeAllDisks. /etc/snmp/snmpd.conf: line 119: Warning: Unknown token: load. /etc/snmp/snmpd.conf: line 132: Warning: Unknown token: trapsink. /etc/snmp/snmpd.conf: line 146: Warning: Unknown token: iquerySecName. /etc/snmp/snmpd.conf: line 147: Warning: Unknown token: rouser. /etc/snmp/snmpd.conf: line 163: Warning: Unknown token: extend. /etc/snmp/snmpd.conf: line 164: Warning: Unknown token: extend-sh. /etc/snmp/snmpd.conf: line 196: Warning: Unknown token: master. /var/lib/snmp/snmpd.conf: line 32: Warning: Unknown token: usmUser. /var/lib/snmp/snmpd.conf: line 33: Warning: Unknown token: setserialno. /var/lib/snmp/snmpd.conf: line 45: Warning: Unknown token: ifXTable. /var/lib/snmp/snmpd.conf: line 46: Warning: Unknown token: ifXTable. /var/lib/snmp/snmpd.conf: line 50: Warning: Unknown token: engineBoots. /var/lib/snmp/snmpd.conf: line 51: Warning: Unknown token: oldEngineID. NET-SNMP version 5.7.3 AgentX subagent connected registering pdu failed: 263! registering pdu failed: 263! Usage: NetSNMP::OID::newptr(initstring). 

而当我运行snmpwalk -u demo -l authPriv remote_host 1.3.6.1.4.1.29385.106 ,我得到:

 SNMPv2-SMI::enterprises.29385.106 = No Such Object available on this agent at this OID 

我如何得到这个haproxy插件使用snmp?