| 1 | # Bind9 collector |
| 2 | |
| 3 | [`Bind9`](https://www.isc.org/bind/) (or named) is a very flexible, full-featured DNS system. |
| 4 | |
| 5 | This module will monitor one or more `Bind9` servers, depending on your configuration. |
| 6 | |
| 7 | ## Requirements |
| 8 | |
| 9 | - `bind` version 9.9+ with configured `statistics-channels` |
| 10 | |
| 11 | For detail information on how to get your bind installation ready, please refer to the following articles: |
| 12 | |
| 13 | - [bind statistics channel developer comments](http://jpmens.net/2013/03/18/json-in-bind-9-s-statistics-server/) |
| 14 | - [bind documentation](https://ftp.isc.org/isc/bind/9.10.3/doc/arm/Bv9ARM.ch06.html#statistics) |
| 15 | - [bind Knowledge Base article AA-01123](https://kb.isc.org/article/AA-01123/0). |
| 16 | |
| 17 | Normally, you will need something like this in your `named.conf.options`: |
| 18 | |
| 19 | ``` |
| 20 | statistics-channels { |
| 21 | inet 127.0.0.1 port 8653 allow { 127.0.0.1; }; |
| 22 | inet ::1 port 8653 allow { ::1; }; |
| 23 | }; |
| 24 | ``` |
| 25 | |
| 26 | ## Charts |
| 27 | |
| 28 | It produces the following charts: |
| 29 | |
| 30 | - Global Received Requests by IP version (IPv4, IPv6) in `requests/s` |
| 31 | - Global Successful Queries in `queries/s` |
| 32 | - Global Recursive Clients in `clients` |
| 33 | - Global Queries by IP Protocol (TCP, UDP) in `queries/s` |
| 34 | - Global Queries Analysis in `queries/s` |
| 35 | - Global Received Updates in `updates/s` |
| 36 | - Global Query Failures in `failures/s` |
| 37 | - Global Query Failures Analysis in `failures/s` |
| 38 | - Global Server Statistics in `operations/s` |
| 39 | - Global Incoming Requests by OpCode in `requests/s` |
| 40 | - Global Incoming Requests by Query Type in `requests/s` |
| 41 | |
| 42 | Per View Statistics (the following set will be added for each bind view): |
| 43 | |
| 44 | - Resolver Active Queries in `queries` |
| 45 | - Resolver Statistics in `operations/s` |
| 46 | - Resolver Round Trip Time in `queries/s` |
| 47 | - Resolver Requests by Query Type in `requests/s` |
| 48 | - Resolver Cache Hits in `operations/s` |
| 49 | |
| 50 | ## Configuration |
| 51 | |
| 52 | Edit the `go.d/bind.conf` configuration file using `edit-config` from the |
| 53 | Netdata [config directory](/docs/netdata-agent/configuration/README.md), which is typically at `/etc/netdata`. |
| 54 | |
| 55 | ```bash |
| 56 | cd /etc/netdata # Replace this path with your Netdata config directory |
| 57 | sudo ./edit-config go.d/bind.conf |
| 58 | ``` |
| 59 | |
| 60 | Needs only `url`. Here is an example for several servers: |
| 61 | |
| 62 | ```yaml |
| 63 | jobs: |
| 64 | - name: local |
| 65 | url: http://127.0.0.1:8653/json/v1 |
| 66 | |
| 67 | - name: local |
| 68 | url: http://127.0.0.1:8653/xml/v3 |
| 69 | |
| 70 | - name: remote |
| 71 | url: http://203.0.113.10:8653/xml/v3 |
| 72 | |
| 73 | - name: local_with_views |
| 74 | url: http://127.0.0.1:8653/json/v1 |
| 75 | permit_view: '!_* *' |
| 76 | ``` |
| 77 | |
| 78 | View filter syntax: [simple patterns](https://docs.netdata.cloud/libnetdata/simple_pattern/). |
| 79 | |
| 80 | For all available options please see |
| 81 | module [configuration file](https://github.com/netdata/netdata/blob/master/src/go/plugin/go.d/config/go.d/bind.conf). |
| 82 | |
| 83 | ## Troubleshooting |
| 84 | |
| 85 | To troubleshoot issues with the `bind` collector, run the `go.d.plugin` with the debug option enabled. The output should |
| 86 | give you clues as to why the collector isn't working. |
| 87 | |
| 88 | - Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on |
| 89 | your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`. |
| 90 | |
| 91 | ```bash |
| 92 | cd /usr/libexec/netdata/plugins.d/ |
| 93 | ``` |
| 94 | |
| 95 | - Switch to the `netdata` user. |
| 96 | |
| 97 | ```bash |
| 98 | sudo -u netdata -s |
| 99 | ``` |
| 100 | |
| 101 | - Run the `go.d.plugin` to debug the collector: |
| 102 | |
| 103 | ```bash |
| 104 | ./go.d.plugin -d -m bind |
| 105 | ``` |
| 106 | |
| 107 |