Pyng: DNSL check
Description
DNSL check provides flexible facilities to query DNS-based lists.
DNSL requires drill command to be
present in $PATH.
Options
DNSL supports following options, which may be used upon creation
of a new check object:
- qaddr
-
Address to look up (required)
- qzone
-
DNS zone for the search
- qtype
-
Query type
- reverse
-
Set to True to cause the check to fail if lookup
returns nothing (useful for DNS whitelists)
- dnssec
-
Set to True to enable DNSSEC in the query
- server
-
Target server for the query
- port
-
Port to connect to instead of the default of 53
- proto
-
TCP or UDP transport for the connection
- ipv
-
IP version to use when resolving addresses (IPv6 or IPv4)
In addition, DNSL supports following generic check settings:
- desc
-
Check description
- silent
-
Information about check runs is not output by certain runners
- interval
-
Number of seconds between check runs
- result
-
Require that check output matches result in order to
consider check successful. During the matching, check output is
evaluated as a list of lines of output without
newlines. result may be provided in multiple
ways:
-
None: always succeeds
-
string: succeeds if any line in the check's output
is equal to, or contains, result
-
list or a tuple: succeeds if all
elements of result are present in the check's
output (i.e. set of result items is a subset of
check output items)
-
set: succeeds if all lines in the check's
output are present in result (i.e. check output
is a subset of the set of result items)
-
Compiled regular expression object: succeeds if any
line in the check's output matches result
- alert
-
Callable (or a list of callables) to run in order to alert of
check status changes
- notify
-
Callable (or a list of callables) to run in order to notify of
changes in check's output
- run_condition
-
Callable to run to decide if check run should be skipped
- run_threshold
-
Threshold for mean run time in order to consider check to be
degraded
- result_filter
-
Callable to run to filter check command output lines prior to
matching check results
- on_result
- on_first
- on_up
- on_down
- on_degrade
- on_restore
- on_change
-
Callable to run with the result of the check on the specified
events
Example
# check DNS blacklist: address should not be listed
DNSL(
'1.2.3.4', 'zen.spamhaus.org',
server='localhost',
)
# check DNS whitelist: address should be listed
DNSL(
'1.2.3.4', 'list.dnswl.org',
reverse=True,
server='localhost',
)
Return to Pyng