# NLnet Labs Name Server Daemon Input Plugin This plugin gathers statistics from a [NLnet Labs Name Server Daemon][nsd], an authoritative DNS name server. ⭐ Telegraf v1.0.0 🏷️ server 💻 all [nsd]: https://www.nlnetlabs.nl/projects/nsd/about ## Global configuration options In addition to the plugin-specific configuration settings, plugins support additional global and plugin configuration settings. These settings are used to modify metrics, tags, and field or create aliases and configure ordering, etc. See the [CONFIGURATION.md][CONFIGURATION.md] for more details. [CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins ## Configuration ```toml @sample.conf # A plugin to collect stats from the NSD DNS resolver [[inputs.nsd]] ## Address of server to connect to, optionally ':port'. Defaults to the ## address in the nsd config file. server = "127.0.0.1:8953" ## If running as a restricted user you can prepend sudo for additional access: # use_sudo = false ## The default location of the nsd-control binary can be overridden with: # binary = "/usr/sbin/nsd-control" ## The default location of the nsd config file can be overridden with: # config_file = "/etc/nsd/nsd.conf" ## The default timeout of 1s can be overridden with: # timeout = "1s" ``` ### Permissions It's important to note that this plugin references nsd-control, which may require additional permissions to execute successfully. Depending on the user/group permissions of the telegraf user executing this plugin, you may need to alter the group membership, set facls, or use sudo. **Group membership (Recommended)**: ```bash $ groups telegraf telegraf : telegraf $ usermod -a -G nsd telegraf $ groups telegraf telegraf : telegraf nsd ``` **Sudo privileges**: If you use this method, you will need the following in your telegraf config: ```toml [[inputs.nsd]] use_sudo = true ``` You will also need to update your sudoers file: ```bash $ visudo # Add the following line: Cmnd_Alias NSDCONTROLCTL = /usr/sbin/nsd-control telegraf ALL=(ALL) NOPASSWD: NSDCONTROLCTL Defaults!NSDCONTROLCTL !logfile, !syslog, !pam_session ``` Please use the solution you see as most appropriate. ## Metrics This is the full list of stats provided by nsd-control. In the output, the dots in the nsd-control stat name are replaced by underscores (see for details). - nsd - fields: - num_queries - time_boot - time_elapsed - size_db_disk - size_db_mem - size_xfrd_mem - size_config_disk - size_config_mem - num_type_TYPE0 - num_type_A - num_type_NS - num_type_MD - num_type_MF - num_type_CNAME - num_type_SOA - num_type_MB - num_type_MG - num_type_MR - num_type_NULL - num_type_WKS - num_type_PTR - num_type_HINFO - num_type_MINFO - num_type_MX - num_type_TXT - num_type_RP - num_type_AFSDB - num_type_X25 - num_type_ISDN - num_type_RT - num_type_NSAP - num_type_SIG - num_type_KEY - num_type_PX - num_type_AAAA - num_type_LOC - num_type_NXT - num_type_SRV - num_type_NAPTR - num_type_KX - num_type_CERT - num_type_DNAME - num_type_OPT - num_type_APL - num_type_DS - num_type_SSHFP - num_type_IPSECKEY - num_type_RRSIG - num_type_NSEC - num_type_DNSKEY - num_type_DHCID - num_type_NSEC3 - num_type_NSEC3PARAM - num_type_TLSA - num_type_SMIMEA - num_type_CDS - num_type_CDNSKEY - num_type_OPENPGPKEY - num_type_CSYNC - num_type_SPF - num_type_NID - num_type_L32 - num_type_L64 - num_type_LP - num_type_EUI48 - num_type_EUI64 - num_type_TYPE252 - num_type_TYPE253 - num_type_TYPE255 - num_opcode_QUERY - num_opcode_NOTIFY - num_class_CLASS0 - num_class_IN - num_class_CH - num_rcode_NOERROR - num_rcode_FORMERR - num_rcode_SERVFAIL - num_rcode_NXDOMAIN - num_rcode_NOTIMP - num_rcode_REFUSED - num_rcode_YXDOMAIN - num_rcode_NOTAUTH - num_edns - num_ednserr - num_udp - num_udp6 - num_tcp - num_tcp6 - num_tls - num_tls6 - num_answer_wo_aa - num_rxerr - num_txerr - num_raxfr - num_truncated - num_dropped - zone_master - zone_slave - nsd_servers - tags: - server - fields: - queries ## Example Output