summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile.am2
-rw-r--r--NEWS90
-rw-r--r--README34
-rw-r--r--configure.ac12
-rw-r--r--lib/VarnishMib/HashTable.pm16
-rw-r--r--lib/VarnishMib/MIBTable.pm16
-rw-r--r--src/Makefile.am2
-rw-r--r--src/VARNISH-MIB.txt6
-rw-r--r--src/auth.c2
-rw-r--r--src/backend.h3
-rw-r--r--src/ban.c2
-rw-r--r--src/belex.l17
-rw-r--r--src/modconf.c17
-rw-r--r--src/varnish-mib.885
-rw-r--r--src/vcli.c2
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
#
diff --git a/NEWS b/NEWS
index f12c539..e447533 100644
--- a/NEWS
+++ b/NEWS
@@ -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
diff --git a/README b/README
index 8e68d6a..1917254 100644
--- a/README
+++ b/README
@@ -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 }
diff --git a/src/auth.c b/src/auth.c
index e9abbe4..2ff6aba 100644
--- a/src/auth.c
+++ b/src/auth.c
@@ -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;
diff --git a/src/ban.c b/src/ban.c
index 1f4583b..a50b5a3 100644
--- a/src/ban.c
+++ b/src/ban.c
@@ -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.
diff --git a/src/vcli.c b/src/vcli.c
index 7d6c2b9..94f0eef 100644
--- a/src/vcli.c
+++ b/src/vcli.c
@@ -1,3 +1,3 @@
/* This file is part of varnish-mib -*- c -*-
- Copyright (C) 2014-2015 Sergey Poznyakoff
+ Copyright (C) 2014-2018 Sergey Poznyakoff

Return to:

Send suggestions and report system problems to the System administrator.