97 lines
2.7 KiB
Markdown
97 lines
2.7 KiB
Markdown
# OpenNTPD Input Plugin
|
||
|
||
Get standard NTP query metrics from OpenNTPD ([OpenNTPD - a FREE, easy to use
|
||
implementation of the Network Time Protocol](http://www.openntpd.org/)).
|
||
|
||
Below is the documentation of the various headers returned from the NTP query
|
||
command when running `ntpctl -s peers`.
|
||
|
||
- remote – The remote peer or server being synced to.
|
||
- wt – the peer weight
|
||
- tl – the peer trust level
|
||
- st (stratum) – The remote peer or server Stratum
|
||
- next – number of seconds until the next poll
|
||
- poll – polling interval in seconds
|
||
- delay – Round trip communication delay to the remote peer
|
||
or server (milliseconds);
|
||
- offset – Mean offset (phase) in the times reported between this local host and
|
||
the remote peer or server (RMS, milliseconds);
|
||
- jitter – Mean deviation (jitter) in the time reported for that remote peer or
|
||
server (RMS of difference of multiple time samples, milliseconds);
|
||
|
||
### Configuration:
|
||
|
||
```toml
|
||
# Get standard NTP query metrics, requires ntpctls executable
|
||
# provided by openntpd packages
|
||
[[inputs.openntpd]]
|
||
## If running as a restricted user you can prepend sudo for additional access:
|
||
#use_sudo = false
|
||
|
||
## The default location of the ntpctl binary can be overridden with:
|
||
binary = "/usr/sbin/ntpctl"
|
||
|
||
## The default timeout of 1000ms can be overriden with (in milliseconds):
|
||
#timeout = 1000
|
||
```
|
||
|
||
### Measurements & Fields:
|
||
|
||
- ntpctl
|
||
- delay (float, milliseconds)
|
||
- jitter (float, milliseconds)
|
||
- offset (float, milliseconds)
|
||
- poll (int, seconds)
|
||
- next (int,,seconds)
|
||
- wt (int)
|
||
- tl (int)
|
||
|
||
### Tags:
|
||
|
||
- All measurements have the following tags:
|
||
- remote
|
||
- stratum
|
||
|
||
### Permissions:
|
||
|
||
It's important to note that this plugin references ntpctl, 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 ntpd telegraf
|
||
|
||
$ groups telegraf
|
||
telegraf : telegraf ntpd
|
||
```
|
||
|
||
**Sudo privileges**:
|
||
If you use this method, you will need the following in your telegraf config:
|
||
```toml
|
||
[[inputs.openntpd]]
|
||
use_sudo = true
|
||
```
|
||
|
||
You will also need to update your sudoers file:
|
||
```bash
|
||
$ visudo
|
||
# Add the following line:
|
||
telegraf ALL=(ALL) NOPASSWD: /usr/sbin/ntpctl
|
||
```
|
||
|
||
Please use the solution you see as most appropriate.
|
||
|
||
### Example Output:
|
||
|
||
```
|
||
$ telegraf --config ~/ws/telegraf.conf --input-filter openntpd --test
|
||
* Plugin: openntpd, Collection 1
|
||
> openntpd,remote=194.57.169.1,stratum=2,host=localhost tl=10i,poll=1007i,
|
||
offset=2.295,jitter=3.896,delay=53.766,next=266i,wt=1i 1514454299000000000
|
||
```
|