dhcpd-pools - ISC dhcpd pools usage analysis
The program analyses ISC dhcpd shared network and pool usage and outputs the
results in a format selected by user.
- shared net name
- Name of the shared-network for the range.
- first ip
- First IP in lease pool range.
- last ip
- Last IP in lease pool range.
- Number of IPs which exist in a pool, shared network or all
- Number of leases currently in use.
- Percent of IPs currently in use compared to max.
- Number of IP's which appear in the lease file, but who's
leases have expired. A touched IP is either expired or abandoned. The
touched IP count is somewhat misleading when you try to determine if an IP
pool is big enough; it is a better indicator of whether a pool is too
- The sum of Touched and Currently in-use leases.
- t+c perc
- Percent of IPs either touched or currently in use, compared
- Failover pair can allocate these addresses. The count
appears only if there is failover configuration.
- bu perc
- Percent of addresses that failover pair can allocate. The
percent appears only if there is failover configuration.
- -c, --config=FILE
- Path to the dhcpd.conf file. If the dhcpd.conf has include
files they can be analysed separately, that can be useful when trying to
understand or monitor subset of data.
- -l, --leases=FILE
- Path to the dhcpd.leases file.
- -s, --sort=[nimcptTe]
- Sort ranges by chosen fields as a sorting keys. Keys weight
from left to right, i.e., if more weighting keys are equal next one is
used. The IP field is default sort key.
- -r, --reverse
- Sort results in reverse order.
- -f, --format=[thHcxXjJ]
- Output format. Text (t). Full-html (H) page
output. The (c) stands for comma-separated values. Output format
xml (x) is similar to the dhcpstatus Perl module output. The
extended xml (X) format will print ethernet address details. The
(j) will output in json format, which can be extended with
(J) to include ethernet address.
- The default format is text.
- -o, --output=FILE
- File where output is written. Default is
- -L, --limit=NR
- The NR will limit what will be printed. Syntax is
similar to chmod(1) permission string. The NR limit string
uses two digits which vary between 0 to 7. The
first digit determines which headers to display, and the second digit
determines which numeric analysis tables to include in the output. The
following values are "OR'd" together to create the desired
output. The default is 77.
- Print ranges
- Print shared networks
- Print total summary
- Print range header
- Print shared network header
- Print total summary header
- The output limit for total summary has special meaning in
--warning and --critical alarming context. When the alarming
is in use, and total is not wanted to be seen then in the case of alarming
returning success nothing is printed.
- Turn on alarm output format, and specify percentage number
which will cause an alarm. If either a range or shared network will exceed
warning level return value of the command is 1. If only range
monitoring is needed one can use limit option for scoping, for example
-L10. To monitor shared network only the limit would be
-L20. If warning percentage is not specified it defaults to
80. The percent argument allows fractions, e.g., 88.8, to be
- The option is similar to warning, with exception of return
value which is 2. If critical percentage is not specified it
defaults to 90.
- A number of free leases before alarm is raised. When
specified both --warning percent and count number are
required to be exceeded in order to alarm criteria being fulfilled.
- This option is intented to be used in setup where very
large and small shared-networks and ranges co-exists. In such environments
percent based alarming can lead to either flood of alarms about small
ranges, or way too great overhead of free addresses in large
shared-networks. Suggested usage is to set percentage to a level that
makes small ranges to ring, and set the count to match level when an
enormous shared-network is too few free leases.
- Defaults to 2^32, that is size of entire IPv4 address
- Same as --warn-count, but for critical alarms.
- Suppress range alarms that are part of shared networks. Use
of this option will keep alarm criteria applied to ranges that are not
part of shared-net along with shared-net alarms. This option may help
reducing alarm noise for configurations that has lots of small ranges in
- Ignore ranges and shared networks that are smaller or equal
to the defined size. This option is meaningful only in context of
alarming, and will intented to supress for example single host ranges. By
default this option is not in use.
- -v, --version
- Print version information to standard output and exit
- -h, --help
- Print help to standard output and exit successfully.
- Print ranges header, and analysis.
- $ dhcpd-pools -L 11 -c dhcpd.conf -l dhcpd.leases
shared net name [...]
- Print shared networks and totals, both headers and
- $ dhcpd-pools -L 66 -c dhcpd.conf -l dhcpd.leases shared
- $ dhcpd-pools -c dhcpd.conf -l dhcpd.leases --critical 80.1
CRITICAL: dhcpd-pools: Ranges; crit: 14 warn: 22 ok: 220 Shared nets; crit:
1 warn: 0 ok: 4
- $ dhcpd-pools -c dhcpd.conf -l dhcpd.leases -L 22
--critical 70 --warning 50
Supress printing OK, and make alarm only to go off if shared networks exceed
critial or warning levels.
- ISC dhcpd configuration file.
- ISC dhcpd lease file.
Original design by Sami Kerola.
XML support by Dominic Germain, Sogetel inc.
IPv6 support by Cheer Xiao.
The software has FreeBSD License.
Report bugs to Sami