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

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  "direct"-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" (keeping in mind the notes above about how  each  mode  uses
       "interval").  "timeout" is ignored.  extfile-specific parameters:

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

       file
	   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/.

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

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

       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			  2025-04-13	       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+14.3.quarterly>

home | help