sugi / net-snmp-lvs

NetSNMP plugin module for lvs
2 stars 0 forks source link

net-snmp-lvs-module

GENERAL

net-snmp-lvs-module is a dynamicaly loadable shared object to get the configuration and some statistical information from the Linux kernel with IP virtual server support (also known as Linux Virtual Server).

INSTALLATION

Build


Install net-snmp and its development headers and libraries.
Install netlink and its development headers and libraries.
Invoke 'make', this should build 'lvs.so'.

Install MIBs

Copy LVS-MIB.txt and OC.txt to /usr/share/snmp/mibs/ Check that the new MIB is visible by invoking


shell> snmptranslate -m LVS-MIB -On -IR lvsServiceEntry

This should return .1.3.6.1.4.1.8225.4711.18.1.

Configure snmpd


Copy lvs.so to /usr/lib/libnetsnmplvs.so and add the following line to 
/etc/snmp/snmpd.conf and restart your snmpd.

---------------------------------------
dlmod lvs /usr/lib/libnetsnmplvs.so
---------------------------------------

[NOTE]
=================================================================
You may need to change to run snmpd as root to get ipvs information.
=================================================================

Test

Try if everything works invoking:


shell> snmpwalk -c public -v 2c -m LVS-MIB localhost 1.3.6.1.4.1.8225.4711

LVS-MIB::lvsVersion.0 = STRING: "1.2.0" LVS-MIB::lvsNumServices.0 = INTEGER: 2 LVS-MIB::lvsHashTableSize.0 = INTEGER: 4096 LVS-MIB::lvsTcpTimeOut.0 = INTEGER: 900 LVS-MIB::lvsTcpFinTimeOut.0 = INTEGER: 120 LVS-MIB::lvsUdpTimeOut.0 = INTEGER: 300 LVS-MIB::lvsDaemonState.0 = INTEGER: none(0) ...

In case you want to add additional snmp-values to your MIB: Set export MIBS=ALL and create skeleton with


shell> mib2c -c mib2c.interate.conf lvsRealTable

or


shell> mib2c -c mib2c.interate.conf lvsServiceTable

this should create a file lvsRealTable.c and/or lvsServiceTable.c. Use the generated code as a template for lvs.c and populate the missing parts.

CREDITS / HISTORY

The code for this module is based on ucd-snmpd-lvs written by Romeo Benzoni in 2002 and never modified since. As that code did not compile with the newer net-snmp headers, I decided to rewrite the complete code. The only unchanged parts from the ucd-snmpd-lvs project are LVS-MIB.txt and OC.txt.

On 2014, updates for 64bit environments, ipvsadm 1.26 (nl-3 patched) and net-snmp 5.7.2 by Tatsuk Sugiura.

You can get original source code from LVS wiki; http://kb.linuxvirtualserver.org/wiki/Net-SNMP-LVS-Module

AUTHOR

LICENSE

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.