diff options
author | Sergey Poznyakoff <gray@nxc.no> | 2018-02-05 20:56:59 +0100 |
---|---|---|
committer | Sergey Poznyakoff <gray@nxc.no> | 2018-02-05 20:56:59 +0100 |
commit | f7677f32b90eea37e54b39a3e26e5437924a2ada (patch) | |
tree | 4112eecd0acecd664e613fd1b66dd177b7ab87ba | |
parent | 027e83b6f5dc6a63ed9c69e534c0b994041df14f (diff) | |
download | varnish-mib-f7677f32b90eea37e54b39a3e26e5437924a2ada.tar.gz varnish-mib-f7677f32b90eea37e54b39a3e26e5437924a2ada.tar.bz2 |
Version 2.0
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | NEWS | 90 | ||||
-rw-r--r-- | README | 34 | ||||
-rw-r--r-- | configure.ac | 12 | ||||
-rw-r--r-- | lib/VarnishMib/HashTable.pm | 16 | ||||
-rw-r--r-- | lib/VarnishMib/MIBTable.pm | 16 | ||||
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/VARNISH-MIB.txt | 6 | ||||
-rw-r--r-- | src/auth.c | 2 | ||||
-rw-r--r-- | src/backend.h | 3 | ||||
-rw-r--r-- | src/ban.c | 2 | ||||
-rw-r--r-- | src/belex.l | 17 | ||||
-rw-r--r-- | src/modconf.c | 17 | ||||
-rw-r--r-- | src/varnish-mib.8 | 85 | ||||
-rw-r--r-- | src/vcli.c | 2 |
15 files changed, 254 insertions, 52 deletions
diff --git a/Makefile.am b/Makefile.am index 30060d5..cea3646 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,3 @@ # This file is part of varnish-mib -*- automake -*- -# Copyright (C) 2014-2015 Sergey Poznyakoff +# Copyright (C) 2014-2018 Sergey Poznyakoff # @@ -1,3 +1,2 @@ -Varnish-mib NEWS -- history of user-visible changes. 2016-04-27 -Copyright (C) 2014-2016 Sergey Poznyakoff +Varnish-mib NEWS -- history of user-visible changes. 2018-02-05 See the end of file for copying conditions. @@ -6,2 +5,87 @@ Please send Varnish-mib bug reports to <gray@gnu.org> +Version 2.0, 2018-02-05 + +This version is written for Varnish 5.2.0. It will definitely not +compile with Varnish 5.2.1 and later. You'll have to use version 3.0 +for that. + +Most important changes: + +New OIDs: + +** VarnishMIB::objects branch + + objectsCount + + Approximate number of HTTP objects (headers + body, + if present) in the cache. + [Varnish variable MAIN.n_object] + + objectsVampire + Number of unresurrected objects. + [MAIN.n_vampireobject] + + objectsCore + Approximate number of object metadata elements in the cache. Each + object needs an objectcore, extra objectcores are for + hit-for-miss, hit-for-pass and busy objects. + [MAIN.n_objectcore] + + objectsHead + Approximate number of different hash entries in the cache. + [MAIN.n_objecthead] + + objectsExpired + Number of objects that expired from cache because of old age. + [MAIN.n_expired] + + objectsLRUNuked + How many objects have been forcefully evicted from + storage to make room for a new object. + [MAIN.n_lru_nuked] + + objectsLRUMoved + Number of move operations done on the LRU list. + [MAIN.n_lru_moved] + + objectsPurges + Number of purge operations executed. + [MAIN.n_purges] + + objectsObjPurged + Number of purged objects. + [MAIN.n_obj_purged] + + objectsGzip + Number of gzip operations. + [MAIN.n_gzip] + + objectsGunzip + Number of gunzip operations. + [MAIN.n_gunzip] + +** VarnishMIB::vcl branch + + vclTotal + Number of loaded VCLs in total. + [MAIN.n_vcl] + + vclAvail + Number of VCLs available. + [MAIN.n_vcl_avail] + + vclDiscard + Number of discarded VCLs. + [MAIN.n_vcl_discard] + + vclFail + Number of VCL failures. + [MAIN.vcl_fail] + +* Removed OIDs + +Several OIDs have been withdrawn due to changes in the Varnish API. +These are: clientRequests411, clientRequests413, and backendConnUnused. + + Version 1.1.90 (Git) @@ -23,3 +107,3 @@ Initial release. -Copyright (C) 2014-2016 Sergey Poznyakoff +Copyright (C) 2014-2018 Sergey Poznyakoff @@ -1,3 +1,2 @@ Varnish-mib README -Copyright (C) 2014-2015 Sergey Poznyakoff See the end of file for copying conditions. @@ -12,2 +11,5 @@ manpage. +If you are building varnish-mib from Git repository, jump to +the section GIT SOURCES, below. + * Overview @@ -18,7 +20,15 @@ MIBs from varnishsnmp project (http://varnishsnmp.sourceforge.net). +This and other versions of Varnish-mib is available for download from +<http://download.gnu.org.ua/release/varnish-mib>. The following table +describes the relation between the release number and the version +of Varnish API version it is written for: + + 1.0 and up to 2.0 Varnish 4.0 and 4.1 + 2.0 (this release) Varnish 5.2.0 + 3.0 Varnish 5.2.1 + * Installation -In order to compile the package you need to have Net-snmp and Varnish -installed. Only Varnish 4.x is supported. The installation sequence -is as usual: +In order to compile the package you need to have Net-SNMP and Varnish +installed. The installation sequence is as usual: @@ -42,2 +52,16 @@ installed in $prefix/share/snmp. +* GIT SOURCES + +If you cloned the sources from GIT, you will need the following +additional tools in order to bootstrap the package: + + + Perl + + mib2c + + Perl module Inline::C + + Flex + +Make sure to check out the branch corresponding to the version of +Varnish you are using. Run ./bootstrap. Then, proceed as discussed +above. + * Bug reporting @@ -49,3 +73,3 @@ Send bug reports and suggestions to <gray@gnu.org> -Copyright (C) 2014 Sergey Poznyakoff +Copyright (C) 2014-2018 Sergey Poznyakoff diff --git a/configure.ac b/configure.ac index 84544b2..917bab5 100644 --- a/configure.ac +++ b/configure.ac @@ -17,3 +17,3 @@ AC_PREREQ(2.69) -AC_INIT([varnish-mib], 1.1.90, [gray@gnu.org]) +AC_INIT([varnish-mib], 2.0, [gray@gnu.org]) AC_CONFIG_SRCDIR(src/varnish_mib.mib2c) @@ -47,6 +47,6 @@ PKG_CHECK_MODULES([VARNISHAPI], [varnishapi >= 5.0]) -varnishapi_version() { - AC_DEFINE_UNQUOTED([VARNISHAPI_MAJOR],[$1],[Varnish API major version number]) - AC_DEFINE_UNQUOTED([VARNISHAPI_MINOR],[$2],[Varnish API minor version number]) - AC_DEFINE_UNQUOTED([VARNISHAPI_PATCH],[$3],[Varnish API patchlevel]) +check_minor_number() { + if [ "$2" -gt 1 ]; then + AC_MSG_ERROR([Unsupported Varnish API version; please try varnish_mib 3.0 or newer]) + fi } @@ -57,3 +57,3 @@ if test -n "$v"; then IFS='.' - varnishapi_version $v + check_minor_number $v IFS=$save_IFS diff --git a/lib/VarnishMib/HashTable.pm b/lib/VarnishMib/HashTable.pm index 1faef96..00224ac 100644 --- a/lib/VarnishMib/HashTable.pm +++ b/lib/VarnishMib/HashTable.pm @@ -1 +1,17 @@ +# This file is part of varnish-mib -*- automake -*- +# Copyright (C) 2018 Sergey Poznyakoff +# +# varnish-mib 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 3, or (at your option) +# any later version. +# +# varnish-mib 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. +# +# You should have received a copy of the GNU General Public License +# along with varnish-mib. If not, see <http://www.gnu.org/licenses/>. + package VarnishMib::HashTable; diff --git a/lib/VarnishMib/MIBTable.pm b/lib/VarnishMib/MIBTable.pm index 6aa959f..da0ca19 100644 --- a/lib/VarnishMib/MIBTable.pm +++ b/lib/VarnishMib/MIBTable.pm @@ -1 +1,17 @@ +# This file is part of varnish-mib -*- automake -*- +# Copyright (C) 2018 Sergey Poznyakoff +# +# varnish-mib 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 3, or (at your option) +# any later version. +# +# varnish-mib 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. +# +# You should have received a copy of the GNU General Public License +# along with varnish-mib. If not, see <http://www.gnu.org/licenses/>. + package VarnishMib::MIBTable; diff --git a/src/Makefile.am b/src/Makefile.am index 55cdb85..5c79dfc 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,3 +1,3 @@ # This file is part of varnish-mib -*- automake -*- -# Copyright (C) 2014-2015 Sergey Poznyakoff +# Copyright (C) 2014-2018 Sergey Poznyakoff # diff --git a/src/VARNISH-MIB.txt b/src/VARNISH-MIB.txt index 6b03f21..b7e77f1 100644 --- a/src/VARNISH-MIB.txt +++ b/src/VARNISH-MIB.txt @@ -22,3 +22,3 @@ IMPORTS varnishMIB MODULE-IDENTITY - LAST-UPDATED "201802020845Z" + LAST-UPDATED "201802052024Z" ORGANIZATION "Shared Autonomous sYstems" @@ -29,3 +29,3 @@ varnishMIB MODULE-IDENTITY "This MIB module defines objects for Varnish reverse web proxy." - REVISION "201802020845Z" + REVISION "201802052024Z" DESCRIPTION @@ -856,3 +856,3 @@ objectsPurges OBJECT-TYPE DESCRIPTION - "Number of purge operations executed" + "Number of purge operations executed." ::= { objects 8 } @@ -1,3 +1,3 @@ /* This file is part of varnish-mib -*- c -*- - Copyright (C) 2014-2015 Sergey Poznyakoff + Copyright (C) 2014-2018 Sergey Poznyakoff diff --git a/src/backend.h b/src/backend.h index d60f613..b13e644 100644 --- a/src/backend.h +++ b/src/backend.h @@ -7,4 +7,3 @@ typedef void (*regfun_t)(be_string_t *, be_string_t *, be_string_t *, void *); -void read_defs(const char *str, size_t len, regfun_t regfun, void *d); -void varnish_backend_table_timeout_parser(const char *token, char *line); +struct vsm; struct VSC_point; @@ -1,3 +1,3 @@ /* This file is part of varnish-mib -*- c -*- - Copyright (C) 2014-2015 Sergey Poznyakoff + Copyright (C) 2014-2018 Sergey Poznyakoff diff --git a/src/belex.l b/src/belex.l index f35f114..bc0bfc0 100644 --- a/src/belex.l +++ b/src/belex.l @@ -1 +1,18 @@ +/* This file is part of varnish-mib + Copyright (C) 2018 Sergey Poznyakoff + + Varnish-mib 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 3, or (at your option) + any later version. + + Varnish-mib 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. + + You should have received a copy of the GNU General Public License + along with varnish-mib. If not, see <http://www.gnu.org/licenses/>. +*/ + %option nounput diff --git a/src/modconf.c b/src/modconf.c index 85b2582..64177c1 100644 --- a/src/modconf.c +++ b/src/modconf.c @@ -1 +1,18 @@ +/* This file is part of varnish-mib + Copyright (C) 2018 Sergey Poznyakoff + + Varnish-mib 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 3, or (at your option) + any later version. + + Varnish-mib 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. + + You should have received a copy of the GNU General Public License + along with varnish-mib. If not, see <http://www.gnu.org/licenses/>. +*/ + #include "varnish_mib.h" diff --git a/src/varnish-mib.8 b/src/varnish-mib.8 index 8d86f18..77912af 100644 --- a/src/varnish-mib.8 +++ b/src/varnish-mib.8 @@ -1,3 +1,3 @@ .\" This file is part of Varnish-mib -*- nroff -*- -.\" Copyright (C) 2014-2016 Sergey Poznyakoff +.\" Copyright (C) 2014-2018 Sergey Poznyakoff .\" @@ -15,5 +15,5 @@ .\" along with Varnish-mib. If not, see <http://www.gnu.org/licenses/>. -.TH VARNISH-MIB 8 "February 2, 2018" "varnish-mib" +.TH VARNISH-MIB 8 "February 5, 2018" "varnish-mib" .SH NAME -varnish\-mib \- net-snmp module for obtaining Varnish Cache statistics +varnish\-mib \- Net-SNMP module for Varnish Cache monitoring .SH SYNOPSIS @@ -29,13 +29,39 @@ loaded into as shown above (actual path can of course differ, depending on how -the package was configured). The module is written for Varnish -version \fB5.\fIX\fR. +the package was configured). This version is written for Varnish +\fB5.2.0\fR. .PP -The module obtains most of the data using Varnish API, and \fBvarnishd\fR -administrative interface. You should make sure that \fBsnmpd\fR is -able to access both data sources. +The values in the OID branches +.BR client , +.BR total , +.BR master , +.BR session , +.BR threads ", and " +.B objects +are obtained from Varnish API. .PP -The user \fBsnmpd\fR runs as should be able to read contents of the -\fB/var/lib/varnish/\fIHOSTNAME\fB/_.vsm_mgt\fR directory and read -files located in it. It must also have read permission on the varnish -secret file. +The OID branches +.BR backend , +.BR bans ", and " +.B vcl +are obtained using \fBvarnishd\fR administrative interface (similar +to +.BR varnishadm (8)). +.PP +To retrieve this information, the module must +have enough permissions to scan the Varnish management directory and +read files located in it. This directory is normally named +\fB/var/lib/varnish/\fIHOSTNAME\fB/_.vsm_mgt\fR, where \fIHOSTNAME\fR +stands for the server's hostname. Unless +.BR snmpd (8) +is run as root, special measures should be undertaken in order to +grant access rights. For example, if the daemon runs as user +\fBsnmp\fR, running the following two commands after starting +\fBvarnishd\fR will do the trick: + +.EX + setfacl -m u:snmp:rx /var/lib/varnish/$(hostname)/_.vsm_mgt + setfacl -m u:snmp:r /var/lib/varnish/$(hostname)/_.vsm_mgt/* +.EE +.PP + .SH CONFIGURATION OPTIONS @@ -45,3 +71,3 @@ must appear in the .B snmpd.conf -file below the +file, after the .B dlmod @@ -66,4 +92,4 @@ Default is 5 seconds. .PP -The following two statements are not normally needed, since -\fBvarnish-mib\fR obtains this information automatically. +The following two statements are not normally needed, but are +provided for completeness sake: .TP @@ -74,3 +100,3 @@ socket. \fBvarnishCLISecretFile\fR \fIFILE\fR -Pathname of the Varnish secret file. +Sets the pathname of the Varnish secret file. .SH DEBUGGING @@ -79,9 +105,9 @@ The module defines the following debugging tokens: .B varnish_mib -General debugging information. +Produces general debugging information. .TP .B varnish_mib:ban -Debug ban table loading. +Outputs verbose report about loading th ban table. .TP .B varnish_mib:vcli -Varnish +Displays additional information regarding varnish .B CLI @@ -90,8 +116,10 @@ interaction. .B varnish_mib:vcli:transcript -Enables full transcript of CLI interaction. +Enables full transcript of varnish CLI session. .TP .B varnish_mib:backend -Debug loading the backend information. +Outputs verbose information about loading the backend information. .SH OIDS -The following OIDs are defined: +The following OIDs are defined in the +.B VARNISH-MIB.txt +file: .SS Branch \(dqclient\(dq @@ -124,5 +152,5 @@ to invalidate caches of all \fBpng\fR images: -.EE -snmpset \fBhostname\fR VARNISH\-MIB::clientBan.0 s 'req.url ~ \(dq\\.png$\(dq' .EX +snmpset \fIhostname\fR VARNISH\-MIB::clientBan.0 s 'req.url ~ \(dq\\.png$\(dq' +.EE .SS Branch \(dqbackend\(dq @@ -260,3 +288,4 @@ Number of sessions closed. .B sessPipeline -Session pipeline. This variable is available only in Varnish version \fR4.0\fR. +This OID was used in Varnish \fR4.1\fR, but disappeared from version +\fB5.0\fR. .TP @@ -275,4 +304,4 @@ Number of session accept failures. .B sessPipeOverflow -Number of session pipe overflows. This variable is available only in -Varnish version \fR4.0\fR. +This OID was used in Varnish \fR4.1\fR, but disappeared in version +\fB5.0\fR. .SS Branch \(dqthreads\(dq @@ -369,3 +398,3 @@ seconds. It can be configured in the \fBsnmpd.conf\fR file .SS Branch \(dqagent\(dq -The \fBagent\fR branch is reserved for OIDs for +The \fBagent\fR branch is reserved for implementation-specific management. It is not used currently. @@ -1,3 +1,3 @@ /* This file is part of varnish-mib -*- c -*- - Copyright (C) 2014-2015 Sergey Poznyakoff + Copyright (C) 2014-2018 Sergey Poznyakoff |