plugin_name: python.d.plugin modules: - meta: plugin_name: python.d.plugin module_name: nsd monitored_instance: name: Name Server Daemon link: https://nsd.docs.nlnetlabs.nl/en/latest/# categories: - data-collection.dns-and-dhcp-servers icon_filename: "nsd.svg" related_resources: integrations: list: [] info_provided_to_referring_integrations: description: "" keywords: - nsd - name server daemon most_popular: false overview: data_collection: metrics_description: | This collector monitors NSD statistics like queries, zones, protocols, query types and more. method_description: | It uses the `nsd-control stats_noreset` command to gather metrics. supported_platforms: include: [] exclude: [] multi_instance: false additional_permissions: description: "" default_behavior: auto_detection: description: If permissions are satisfied, the collector will be able to run `nsd-control stats_noreset`, thus collecting metrics. limits: description: "" performance_impact: description: "" setup: prerequisites: list: - title: NSD version description: | The version of `nsd` must be 4.0+. - title: Provide Netdata the permissions to run the command description: | Netdata must have permissions to run the `nsd-control stats_noreset` command. You can: - Add "netdata" user to "nsd" group: ``` usermod -aG nsd netdata ``` - Add Netdata to sudoers 1. Edit the sudoers file: ``` visudo -f /etc/sudoers.d/netdata ``` 2. Add the entry: ``` Defaults:netdata !requiretty netdata ALL=(ALL) NOPASSWD: /usr/sbin/nsd-control stats_noreset ``` > Note that you will need to set the `command` option to `sudo /usr/sbin/nsd-control stats_noreset` if you use this method. configuration: file: name: "python.d/nsd.conf" options: description: | This particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior. There are 2 sections: * Global variables * One or more JOBS that can define multiple different instances to monitor. The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. folding: title: "Config options" enabled: true list: - name: update_every description: Sets the default data collection frequency. default_value: 30 required: false - name: priority description: Controls the order of charts at the netdata dashboard. default_value: 60000 required: false - name: autodetection_retry description: Sets the job re-check interval in seconds. default_value: 0 required: false - name: penalty description: Indicates whether to apply penalty to update_every in case of failures. default_value: yes required: false - name: name description: > Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. default_value: "" required: false - name: command description: The command to run default_value: "nsd-control stats_noreset" required: false examples: folding: enabled: true title: "Config" list: - name: Basic description: A basic configuration example. folding: enabled: false config: | local: name: 'nsd_local' command: 'nsd-control stats_noreset' troubleshooting: problems: list: [] alerts: [] metrics: folding: title: Metrics enabled: false description: "" availability: [] scopes: - name: global description: "These metrics refer to the entire monitored application." labels: [] metrics: - name: nsd.queries description: queries unit: "queries/s" chart_type: line dimensions: - name: queries - name: nsd.zones description: zones unit: "zones" chart_type: stacked dimensions: - name: master - name: slave - name: nsd.protocols description: protocol unit: "queries/s" chart_type: stacked dimensions: - name: udp - name: udp6 - name: tcp - name: tcp6 - name: nsd.type description: query type unit: "queries/s" chart_type: stacked dimensions: - name: A - name: NS - name: CNAME - name: SOA - name: PTR - name: HINFO - name: MX - name: NAPTR - name: TXT - name: AAAA - name: SRV - name: ANY - name: nsd.transfer description: transfer unit: "queries/s" chart_type: stacked dimensions: - name: NOTIFY - name: AXFR - name: nsd.rcode description: return code unit: "queries/s" chart_type: stacked dimensions: - name: NOERROR - name: FORMERR - name: SERVFAIL - name: NXDOMAIN - name: NOTIMP - name: REFUSED - name: YXDOMAIN