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

FreeBSD Manual Pages

  
 
  

home | help
GDNSD-PLUGIN-EXTFILE(8) 	      gdnsd		 GDNSD-PLUGIN-EXTFILE(8)

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

SYNOPSIS
     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 => 192.0.2.200,
	     lb02 => 192.0.2.201,
	     lb03 => 192.0.2.202,
	   }
	   www2 => {
	     service_types => [ ext1, http_status ],
	     lb01 => 192.0.2.203,
	     lb02 => 192.0.2.204,
	     lb03 => 192.0.2.205,
	   }
	 },
	 weighted => {
	   wwwcn => {
	     service_types => ext1,
	     lb01 = [ lb01.example.com., 99 ],
	     lb02 = [ lb02.example.com., 15 ],
	     lb03 = [ lb03, 1 ],
	   }
	   wwwz => {
	     service_types => ext1,
	     lb01 => [ 192.0.2.203, 10 ],
	     lb02 => [ 192.0.2.204, 15 ],
	     lb03 => [ 192.0.2.205, 20 ],
	   }
	 }
       }

     Example extfile data defining the resource + service_types specified above:

       /var/tmp/ext1data:
	 192.0.2.203 => UP/300
	 192.0.2.204 => DOWN/242
	 192.0.2.205 => DOWN/102
	 lb01.example.com. => UP/60
	 lb02.example.com. => UP/30
	 lb03 => UP/45

       /var/db/gdnsd/extfile/ext2data:
	 192.0.2.200 => DOWN
	 192.0.2.201 => UP
	 192.0.2.202 => UP

DESCRIPTION
     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).

MODES
     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 repeat-
	 ing 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 rela-
	 tively-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 (espe-
	 cially 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 trans-
	 action.

	 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.

FILE FORMAT
     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 "di-
     rect"-mode service_types; the TTL is calculated in the normal fashion based
     on intervals and thresholds for "monitor"-mode.

CONFIGURATION - PER-SERVICE-TYPE
     The universal, plugin-neutral service_type parameters all apply in their
     usual sense: "up_thresh", "ok_thresh", "down_thresh", and "interval" (keep-
     ing in mind the notes above about how each mode uses "interval").	"time-
     out" is ignored.  extfile-specific parameters:

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

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

     def_ttl
	 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.

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

SEE ALSO
     gdnsd.config(5), gdnsd(8)

     The gdnsd manual.

COPYRIGHT AND LICENSE
     Copyright (c) 2012 Brandon L Black <blblack@gmail.com>

     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 de-
     tails.

     You should have received a copy of the GNU General Public License along
     with gdnsd.  If not, see <http://www.gnu.org/licenses/>.

gdnsd 3.8.0			   2026-08-01		 GDNSD-PLUGIN-EXTFILE(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gdnsd-plugin-extfile&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help