Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help

       gdnsd-plugin-extfile - gdnsd plugin for importing monitor data via file

       Example service_types config:

	 service_types => {
	   ext1	=> {
	     plugin => "extfile",
	     file => "/var/tmp/ext1data", # required
	     direct => true, # default false
	     def_down => false,	# default false
	     def_ttl =>	600, # default max (limited by zonefile	RRs)
	   ext2	=> {
	     plugin => "extfile",
	     file => "ext2data", # def dir: /var/db/gdnsd/extfile/

       Example plugin config using these service_types:

	 plugins => {
	   multifo => {
	     www1 => {
	       service_types =>	ext2,
	       lb01 =>,
	       lb02 =>,
	       lb03 =>,
	     www2 => {
	       service_types =>	[ ext1,	http_status ],
	       lb01 =>,
	       lb02 =>,
	       lb03 =>,
	   weighted => {
	     wwwcn => {
	       service_types =>	ext1,
	       lb01 = [, 99 ],
	       lb02 = [, 15 ],
	       lb03 = [	lb03, 1	],
	     wwwz => {
	       service_types =>	ext1,
	       lb01 => [, 10 ],
	       lb02 => [, 15 ],
	       lb03 => [, 20 ],

       Example extfile data defining the resource + service_types specified

	 /var/tmp/ext1data: => UP/300 => DOWN/242 => DOWN/102 =>	UP/60 =>	UP/30
	   lb03	=> UP/45

	 /var/db/gdnsd/extfile/ext2data: => DOWN => UP => UP

       gdnsd-plugin-extfile is a monitor plugin	that imports monitor results
       from an external	file (which is probably	populated by some script/tool
       from some other monitoring software).

       An extfile service_type can operate in one of two basic modes:

       Monitor Mode (default)
	   In monitor mode, the	standard parameter "interval" is used as a
	   repeating timer.  At	each interval, the file	is loaded for state
	   updates (but	any direct TTL values in the file are ignored).

	   The updates from the	file are fed into the standard core monitoring
	   system by the same mechanisms as normal monitoring plugins (e.g.
	   http_status).  This means they will be subject to the standard
	   anti-flap measures via the standard threshold parameters
	   ("up_thresh", "down_thresh",	"ok_thresh") before affecting the
	   final status	seen by	resolution plugins.

	   This	mode is	appropriate if the updates being processed are
	   relatively-raw updates from individual monitor checks.

       Direct Mode
	   In direct mode, the standard	parameter "interval" is	used only as a
	   hint	to the filesystem-watching code	to try to check	for updates no
	   less	often than the supplied	interval.  However in many cases
	   (especially e.g. Linux with "inotify()" support) updates to the
	   file	may be picked up much sooner, perhaps nearly instantly.

	   There will be a short (~1 second) settling delay after detecting
	   any update in order to coalesce any rapid-fire updates into a
	   single transaction.

	   The results contained in the	file (state and/or TTL per-resource)
	   are applied directly	as final monitoring results and	made
	   immediately available to resolution plugins for decision-making.

	   This	mode is	appropriate if the updates are from processed
	   monitoring results that have	already	been through e.g. anti-flap
	   measures before reaching gdnsd.

       The file	is formatted using the same "vscf" language that's used	for
       the main	config file and	the geoip nets databases.  The expected	data
       format is a simple key-value hash at the	top level, where the keys are
       the monitored IP	address	or CNAME values	from the monitor plugins and
       the values are of the form form "state[/ttl]", where state is either
       "UP" or "DOWN" and the optional ttl is an integer ttl value.  TTL
       values are only used for	"direct"-mode service_types; the TTL is
       calculated in the normal	fashion	based on intervals and thresholds for

       The universal, plugin-neutral service_type parameters all apply in
       their usual sense: "up_thresh", "ok_thresh", "down_thresh", and
       "interval" (keeping in mind the notes above about how each mode uses
       "interval").  "timeout" is ignored.  extfile-specific parameters:

	   Boolean, default false.  Sets the monitoring	mode to	"direct" if
	   true, otherwise mode	defaults to "monitor".

	   String filename, required.  This sets the name of the file to load
	   results from.  If the pathname is not absolute, it will be
	   considered relative to /var/db/gdnsd/extfile/.

	   Integer TTL,	default	is max (which will be limited by zonefile RR
	   TTL values).	 In "direct" mode this will be set as the monitored
	   TTL if no optional TTL is supplied in the file data for a given
	   resource.  It is ignored in "monitor" mode.

	   Boolean, default false.  This sets the default disposition of
	   configured resources	which are missing from the file	data (which
	   will	generate warnings).  If	true, these resources behave as	if the
	   file	data marked them "DOWN", otherwise they	default	to "UP".

       gdnsd.config(5),	gdnsd(8)

       The gdnsd manual.

       Copyright (c) 2012 Brandon L Black <>

       This file is part of gdnsd.

       gdnsd 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 of	the License, or	(at your
       option) any later version.

       gdnsd 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 gdnsd.  If not, see	<>.

gdnsd 3.7.0			  2021-11-06	       GDNSD-PLUGIN-EXTFILE(8)


Want to link to this manual page? Use this URL:

home | help