dnsmasq_dhcp

package
v0.0.0-...-6ade924 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2022 License: GPL-3.0 Imports: 15 Imported by: 0

README

Dnsmasq DHCP monitoring with Netdata

Dnsmasq is a lightweight, easy to configure, DNS forwarder and DHCP server.

This module monitors Dnsmasq DHCP leases database.

Metrics

All metrics have "dnsmasq_dhcp." prefix.

Metric Scope Dimensions Units
dhcp_ranges global ipv4, ipv6 ranges
dhcp_hosts global ipv4, ipv6 hosts
dhcp_range_utilization dhcp_range used percentage
dhcp_range_allocated_leases dhcp_range allocated leases

Auto-detection

Module automatically detects all configured dhcp-ranges reading dnsmasq configuration files.

By default it uses:

  • /var/lib/misc/dnsmasq.leases to read leases.
  • /etc/dnsmasq.conf to detect dhcp-ranges.
  • /etc/dnsmasq.d to find additional configurations.

Configuration

Edit the go.d/dnsmasq_dhcp.conf configuration file using edit-config from the Netdata config directory, which is typically at /etc/netdata.

cd /etc/netdata # Replace this path with your Netdata config directory
sudo ./edit-config go.d/dnsmasq_dhcp.conf

Here is an example:

jobs:
  - name: dnsmasq_dhcp
    leases_path: /var/lib/misc/dnsmasq.leases
    conf_path: /etc/dnsmasq.conf
    conf_dir: /etc/dnsmasq.d

For all available options please see module configuration file.

Troubleshooting

To troubleshoot issues with the dnsmasq_dhcp collector, run the go.d.plugin with the debug option enabled. The output should give you clues as to why the collector isn't working.

  • Navigate to the plugins.d directory, usually at /usr/libexec/netdata/plugins.d/. If that's not the case on your system, open netdata.conf and look for the plugins setting under [directories].

    cd /usr/libexec/netdata/plugins.d/
    
  • Switch to the netdata user.

    sudo -u netdata -s
    
  • Run the go.d.plugin to debug the collector:

    ./go.d.plugin -d -m dnsmasq_dhcp
    

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	LeasesPath string `yaml:"leases_path"`
	ConfPath   string `yaml:"conf_path"`
	ConfDir    string `yaml:"conf_dir"`
}

type ConfigFinder

type ConfigFinder struct {
	// contains filtered or unexported fields
}

type DnsmasqDHCP

type DnsmasqDHCP struct {
	module.Base
	Config `yaml:",inline"`
	// contains filtered or unexported fields
}

func New

func New() *DnsmasqDHCP

func (*DnsmasqDHCP) Charts

func (d *DnsmasqDHCP) Charts() *module.Charts

func (*DnsmasqDHCP) Check

func (d *DnsmasqDHCP) Check() bool

func (*DnsmasqDHCP) Cleanup

func (d *DnsmasqDHCP) Cleanup()

func (*DnsmasqDHCP) Collect

func (d *DnsmasqDHCP) Collect() map[string]int64

func (*DnsmasqDHCP) Init

func (d *DnsmasqDHCP) Init() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL