diff --git a/telegraf/content.md b/telegraf/content.md index fd957c337..9a6d20d28 100644 --- a/telegraf/content.md +++ b/telegraf/content.md @@ -207,3 +207,42 @@ $ docker run -d --name=telegraf \ ``` Refer to the docker [plugin documentation](https://github.com/influxdata/telegraf/blob/master/plugins/inputs/docker/README.md) for more information. + +### Install Additional Packages + +Some plugins require additional packages to be installed. For example, the `ntpq` plugin requires `ntpq` command. It is recommended to create a custom derivative image to install any needed commands. + +As an example this Dockerfile add the `mtr-tiny` image to the stock image and save it as `telegraf-mtr.docker`: +```dockerfile +FROM telegraf:1.12.3 + +RUN DEBIAN_FRONTEND=noninteractive \ + apt-get update && apt-get install -y --no-install-recommends mtr-tiny && \ + rm -rf /var/lib/apt/lists/* +``` + +Build the derivative image: +```console +$ docker build -t telegraf-mtr:1.12.3 - < telegraf-mtr.docker +``` + +Create a `telegraf.conf` configuration file: +```toml +[[inputs.exec]] + interval = "60s" + commands=["mtr -C -n example.org"] + timeout = "40s" + data_format = "csv" + csv_skip_rows = 1 + csv_column_names=["", "", "status", "dest", "hop", "ip", "loss", "snt", "", "", "avg", "best", "worst", "stdev"] + name_override = "mtr" + csv_tag_columns = ["dest", "hop", "ip"] + +[[outputs.file]] + files = ["stdout"] +``` + +Run your derivative image: +```console +$ docker run --name telegraf --rm -v $PWD/telegraf.conf:/etc/telegraf/telegraf.conf telegraf-mtr:1.12.3 +```