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,5 +1,5 @@
# This file is part of varnish-mib -*- automake -*-
-# Copyright (C) 2014-2015 Sergey Poznyakoff
+# Copyright (C) 2014-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
diff --git a/NEWS b/NEWS
index f12c539..e447533 100644
--- a/NEWS
+++ b/NEWS
@@ -1,9 +1,93 @@
-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.
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)
* Support for Varnish 4.1
@@ -21,7 +105,7 @@ Initial release.
* Copyright information:
-Copyright (C) 2014-2016 Sergey Poznyakoff
+Copyright (C) 2014-2018 Sergey Poznyakoff
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/README b/README
index 8e68d6a..1917254 100644
--- a/README
+++ b/README
@@ -1,5 +1,4 @@
Varnish-mib README
-Copyright (C) 2014-2015 Sergey Poznyakoff
See the end of file for copying conditions.
* Introduction
@@ -10,17 +9,28 @@ for the documentation, and is provided as a brief reference only.
For a detailed documentation, please see the varnish-mib(8)
manpage.
+If you are building varnish-mib from Git repository, jump to
+the section GIT SOURCES, below.
+
* Overview
Varnish-mib is a dynamically loadable object module for net-snmp
snmpd, that provides access to Varnish Cache statistics. It uses
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:
./configure [options]
make
@@ -40,6 +50,20 @@ $PREFIX/lib/snmp, where $PREFIX stands for the installation prefix.
Install MIBs (the file VARNISH-MIB.txt in DIR. By default it is
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
Send bug reports and suggestions to <gray@gnu.org>
@@ -47,7 +71,7 @@ Send bug reports and suggestions to <gray@gnu.org>
* Copyright information:
-Copyright (C) 2014 Sergey Poznyakoff
+Copyright (C) 2014-2018 Sergey Poznyakoff
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
diff --git a/configure.ac b/configure.ac
index 84544b2..917bab5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@
# along with Varnish-mib. If not, see <http://www.gnu.org/licenses/>.
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)
AM_CONFIG_HEADER(config.h)
AC_CONFIG_AUX_DIR([build-aux])
@@ -45,17 +45,17 @@ PKG_PROG_PKG_CONFIG
# Checks for Varnish
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
}
v=$($PKG_CONFIG --modversion varnishapi)
if test -n "$v"; then
save_IFS=$IFS
IFS='.'
- varnishapi_version $v
+ check_minor_number $v
IFS=$save_IFS
fi
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,3 +1,19 @@
+# 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;
use strict;
use warnings;
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,3 +1,19 @@
+# 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;
use strict;
use warnings;
diff --git a/src/Makefile.am b/src/Makefile.am
index 55cdb85..5c79dfc 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,5 @@
# This file is part of varnish-mib -*- automake -*-
-# Copyright (C) 2014-2015 Sergey Poznyakoff
+# Copyright (C) 2014-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
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
@@ -20,14 +20,14 @@ IMPORTS
FROM SNMPv2-CONF;
varnishMIB MODULE-IDENTITY
- LAST-UPDATED "201802020845Z"
+ LAST-UPDATED "201802052024Z"
ORGANIZATION "Shared Autonomous sYstems"
CONTACT-INFO "Morten Hermanrud <mhe@say.no>
Sergey Poznyakoff <gray@gnu.org>
"
DESCRIPTION
"This MIB module defines objects for Varnish reverse web proxy."
- REVISION "201802020845Z"
+ REVISION "201802052024Z"
DESCRIPTION
"Second revision."
::= { varnish 0 }
@@ -854,7 +854,7 @@ objectsPurges OBJECT-TYPE
MAX-ACCESS read-only
STATUS current
DESCRIPTION
- "Number of purge operations executed"
+ "Number of purge operations executed."
::= { objects 8 }
objectsObjPurged OBJECT-TYPE
diff --git a/src/auth.c b/src/auth.c
index e9abbe4..2ff6aba 100644
--- a/src/auth.c
+++ b/src/auth.c
@@ -1,5 +1,5 @@
/* This file is part of varnish-mib -*- c -*-
- Copyright (C) 2014-2015 Sergey Poznyakoff
+ Copyright (C) 2014-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
diff --git a/src/backend.h b/src/backend.h
index d60f613..b13e644 100644
--- a/src/backend.h
+++ b/src/backend.h
@@ -5,8 +5,7 @@ typedef struct be_string {
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;
void backend_register(char const *name, size_t len, char const *param,
const struct VSC_point *vpt);
diff --git a/src/ban.c b/src/ban.c
index 1f4583b..a50b5a3 100644
--- a/src/ban.c
+++ b/src/ban.c
@@ -1,5 +1,5 @@
/* This file is part of varnish-mib -*- c -*-
- Copyright (C) 2014-2015 Sergey Poznyakoff
+ Copyright (C) 2014-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
diff --git a/src/belex.l b/src/belex.l
index f35f114..bc0bfc0 100644
--- a/src/belex.l
+++ b/src/belex.l
@@ -1,3 +1,20 @@
+/* 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
%option noinput
diff --git a/src/modconf.c b/src/modconf.c
index 85b2582..64177c1 100644
--- a/src/modconf.c
+++ b/src/modconf.c
@@ -1,3 +1,20 @@
+/* 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"
#include <ctype.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,5 +1,5 @@
.\" This file is part of Varnish-mib -*- nroff -*-
-.\" Copyright (C) 2014-2016 Sergey Poznyakoff
+.\" Copyright (C) 2014-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
@@ -13,9 +13,9 @@
.\"
.\" You should have received a copy of the GNU General Public License
.\" 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
In \fBsnmpd.conf\fR(5):
.PP
@@ -27,23 +27,49 @@ that provides access to Varnish Cache statistics. The module is
loaded into
.BR snmpd (8)
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
Configuration statements specific to
.B varnish\-mib
must appear in the
.B snmpd.conf
-file below the
+file, after the
.B dlmod
statement that loads the module.
.PP
@@ -64,36 +90,38 @@ Update interval for \fBbackendTable\fR. Default is 5 seconds.
Sets timeout for I/O operations with Varnish administrative port.
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
\fBvarnishCLISocket\fR \fIADDRESS\fR[:\fIPORT\fR]
Sets the address of Varnish administrative interface
socket.
.TP
\fBvarnishCLISecretFile\fR \fIFILE\fR
-Pathname of the Varnish secret file.
+Sets the pathname of the Varnish secret file.
.SH DEBUGGING
The module defines the following debugging tokens:
.TP
.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
interaction.
.TP
.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
.TP
.B clientAcceptedConnections
@@ -122,9 +150,9 @@ A write-only OID. When set, invalidates the cache using the supplied
value as argument to ban. When read, returns an empty string. E.g.,
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
.TP
.B backendConnSuccess
@@ -258,7 +286,8 @@ Number of sessions dropped because session queue was full.
Number of sessions closed.
.TP
.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
.B sessReadAhead
Session read-ahead.
@@ -273,8 +302,8 @@ Number of sessions dropped for thread.
Number of session accept failures.
.TP
.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
.TP
.B threadsPools
@@ -367,7 +396,7 @@ of \fBbansTotal\fR variable. The default update interval is 60
seconds. It can be configured in the \fBsnmpd.conf\fR file
(see the \fBvarnishBanTableTimeout\fR statement above).
.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.
.SH NOTES
The following OIDs were used in Varnish 4. They are no longer
diff --git a/src/vcli.c b/src/vcli.c
index 7d6c2b9..94f0eef 100644
--- a/src/vcli.c
+++ b/src/vcli.c
@@ -1,5 +1,5 @@
/* This file is part of varnish-mib -*- c -*-
- Copyright (C) 2014-2015 Sergey Poznyakoff
+ Copyright (C) 2014-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

Return to:

Send suggestions and report system problems to the System administrator.