github.com/netdata/go.d.plugin@v0.58.1/modules/unbound/integrations/unbound.md (about)

     1  <!--startmeta
     2  custom_edit_url: "https://github.com/netdata/go.d.plugin/edit/master/modules/unbound/README.md"
     3  meta_yaml: "https://github.com/netdata/go.d.plugin/edit/master/modules/unbound/metadata.yaml"
     4  sidebar_label: "Unbound"
     5  learn_status: "Published"
     6  learn_rel_path: "Data Collection/DNS and DHCP Servers"
     7  most_popular: False
     8  message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE"
     9  endmeta-->
    10  
    11  # Unbound
    12  
    13  
    14  <img src="https://netdata.cloud/img/unbound.png" width="150"/>
    15  
    16  
    17  Plugin: go.d.plugin
    18  Module: unbound
    19  
    20  <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
    21  
    22  ## Overview
    23  
    24  This collector monitors Unbound servers.
    25  
    26  
    27  
    28  
    29  This collector is supported on all platforms.
    30  
    31  This collector supports collecting metrics from multiple instances of this integration, including remote instances.
    32  
    33  
    34  ### Default Behavior
    35  
    36  #### Auto-Detection
    37  
    38  This integration doesn't support auto-detection.
    39  
    40  #### Limits
    41  
    42  The default configuration for this integration does not impose any limits on data collection.
    43  
    44  #### Performance Impact
    45  
    46  The default configuration for this integration is not expected to impose a significant performance impact on the system.
    47  
    48  
    49  ## Metrics
    50  
    51  Metrics grouped by *scope*.
    52  
    53  The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
    54  
    55  
    56  
    57  ### Per Unbound instance
    58  
    59  These metrics refer to the entire monitored application.
    60  
    61  This scope has no labels.
    62  
    63  Metrics:
    64  
    65  | Metric | Dimensions | Unit |
    66  |:------|:----------|:----|
    67  | unbound.queries | queries | queries |
    68  | unbound.queries_ip_ratelimited | ratelimited | queries |
    69  | unbound.dnscrypt_queries | crypted, cert, cleartext, malformed | queries |
    70  | unbound.cache | hits, miss | events |
    71  | unbound.cache_percentage | hits, miss | percentage |
    72  | unbound.prefetch | prefetches | prefetches |
    73  | unbound.expired | expired | replies |
    74  | unbound.zero_ttl_replies | zero_ttl | replies |
    75  | unbound.recursive_replies | recursive | replies |
    76  | unbound.recursion_time | avg, median | milliseconds |
    77  | unbound.request_list_usage | avg, max | queries |
    78  | unbound.current_request_list_usage | all, users | queries |
    79  | unbound.request_list_jostle_list | overwritten, dropped | queries |
    80  | unbound.tcpusage | usage | buffers |
    81  | unbound.uptime | time | seconds |
    82  | unbound.cache_memory | message, rrset, dnscrypt_nonce, dnscrypt_shared_secret | KB |
    83  | unbound.mod_memory | iterator, respip, validator, subnet, ipsec | KB |
    84  | unbound.mem_streamwait | streamwait | KB |
    85  | unbound.cache_count | infra, key, msg, rrset, dnscrypt_nonce, shared_secret | items |
    86  | unbound.type_queries | a dimension per query type | queries |
    87  | unbound.class_queries | a dimension per query class | queries |
    88  | unbound.opcode_queries | a dimension per query opcode | queries |
    89  | unbound.flag_queries | qr, aa, tc, rd, ra, z, ad, cd | queries |
    90  | unbound.rcode_answers | a dimension per reply rcode | replies |
    91  
    92  ### Per thread
    93  
    94  These metrics refer to threads.
    95  
    96  This scope has no labels.
    97  
    98  Metrics:
    99  
   100  | Metric | Dimensions | Unit |
   101  |:------|:----------|:----|
   102  | unbound.thread_queries | queries | queries |
   103  | unbound.thread_queries_ip_ratelimited | ratelimited | queries |
   104  | unbound.thread_dnscrypt_queries | crypted, cert, cleartext, malformed | queries |
   105  | unbound.thread_cache | hits, miss | events |
   106  | unbound.thread_cache_percentage | hits, miss | percentage |
   107  | unbound.thread_prefetch | prefetches | prefetches |
   108  | unbound.thread_expired | expired | replies |
   109  | unbound.thread_zero_ttl_replies | zero_ttl | replies |
   110  | unbound.thread_recursive_replies | recursive | replies |
   111  | unbound.thread_recursion_time | avg, median | milliseconds |
   112  | unbound.thread_request_list_usage | avg, max | queries |
   113  | unbound.thread_current_request_list_usage | all, users | queries |
   114  | unbound.thread_request_list_jostle_list | overwritten, dropped | queries |
   115  | unbound.thread_tcpusage | usage | buffers |
   116  
   117  
   118  
   119  ## Alerts
   120  
   121  There are no alerts configured by default for this integration.
   122  
   123  
   124  ## Setup
   125  
   126  ### Prerequisites
   127  
   128  #### Enable remote control interface
   129  
   130  Set `control-enable` to yes in [unbound.conf](https://nlnetlabs.nl/documentation/unbound/unbound.conf).
   131  
   132  
   133  #### Check permissions and adjust if necessary
   134  
   135  If using unix socket:
   136  
   137  - socket should be readable and writeable by `netdata` user
   138  
   139  If using ip socket and TLS is disabled:
   140  
   141  - socket should be accessible via network
   142  
   143  If TLS is enabled, in addition:
   144  
   145  - `control-key-file` should be readable by `netdata` user
   146  - `control-cert-file` should be readable by `netdata` user
   147  
   148  For auto-detection parameters from `unbound.conf`:
   149  
   150  - `unbound.conf` should be readable by `netdata` user
   151  - if you have several configuration files (include feature) all of them should be readable by `netdata` user
   152  
   153  
   154  
   155  ### Configuration
   156  
   157  #### File
   158  
   159  The configuration file name for this integration is `go.d/unbound.conf`.
   160  
   161  
   162  You can edit the configuration file using the `edit-config` script from the
   163  Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).
   164  
   165  ```bash
   166  cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
   167  sudo ./edit-config go.d/unbound.conf
   168  ```
   169  #### Options
   170  
   171  The following options can be defined globally: update_every, autodetection_retry.
   172  
   173  
   174  <details><summary>Config options</summary>
   175  
   176  | Name | Description | Default | Required |
   177  |:----|:-----------|:-------|:--------:|
   178  | update_every | Data collection frequency. | 5 | no |
   179  | autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |
   180  | address | Server address in IP:PORT format. | 127.0.0.1:8953 | yes |
   181  | timeout | Connection/read/write/ssl handshake timeout. | 1 | no |
   182  | conf_path | Absolute path to the unbound configuration file. | /etc/unbound/unbound.conf | no |
   183  | cumulative_stats | Statistics collection mode. Should have the same value as the `statistics-cumulative` parameter in the unbound configuration file. | /etc/unbound/unbound.conf | no |
   184  | use_tls | Whether to use TLS or not. | yes | no |
   185  | tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | yes | no |
   186  | tls_ca | Certificate authority that client use when verifying server certificates. |  | no |
   187  | tls_cert | Client tls certificate. | /etc/unbound/unbound_control.pem | no |
   188  | tls_key | Client tls key. | /etc/unbound/unbound_control.key | no |
   189  
   190  </details>
   191  
   192  #### Examples
   193  
   194  ##### Basic
   195  
   196  An example configuration.
   197  
   198  <details><summary>Config</summary>
   199  
   200  ```yaml
   201  jobs:
   202    - name: local
   203      address: 127.0.0.1:8953
   204  
   205  ```
   206  </details>
   207  
   208  ##### Unix socket
   209  
   210  Connecting through Unix socket.
   211  
   212  <details><summary>Config</summary>
   213  
   214  ```yaml
   215  jobs:
   216    - name: socket
   217      address: /var/run/unbound.sock
   218  
   219  ```
   220  </details>
   221  
   222  ##### Multi-instance
   223  
   224  > **Note**: When you define multiple jobs, their names must be unique.
   225  
   226  Local and remote instances.
   227  
   228  
   229  <details><summary>Config</summary>
   230  
   231  ```yaml
   232  jobs:
   233    - name: local
   234      address: 127.0.0.1:8953
   235  
   236    - name: remote
   237      address: 203.0.113.11:8953
   238  
   239  ```
   240  </details>
   241  
   242  
   243  
   244  ## Troubleshooting
   245  
   246  ### Debug Mode
   247  
   248  To troubleshoot issues with the `unbound` collector, run the `go.d.plugin` with the debug option enabled. The output
   249  should give you clues as to why the collector isn't working.
   250  
   251  - Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
   252    your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
   253  
   254    ```bash
   255    cd /usr/libexec/netdata/plugins.d/
   256    ```
   257  
   258  - Switch to the `netdata` user.
   259  
   260    ```bash
   261    sudo -u netdata -s
   262    ```
   263  
   264  - Run the `go.d.plugin` to debug the collector:
   265  
   266    ```bash
   267    ./go.d.plugin -d -m unbound
   268    ```
   269  
   270