Install influx & telegraf with docker

Install InfluxDB

  • Create network for dockers, it's better you create network for the dockers, then you can access docker with name
docker network create IoT
  • Create /data and /data/influx dir for docker volume
mkdir /data
mkdir /data/influx
  • Start influxDB with docker, The official docker image here
docker run -p 8086:8086 \
    -v /data/influx/influxdb:/var/lib/influxdb \
    -v /data/influx/influxdb2:/var/lib/influxdb2 \
    -v /data/influx/influxdb2-config:/etc/influxdb2 \
    -v /data/influx/influxdb.conf:/etc/influxdb/influxdb.conf \
    -e DOCKER_INFLUXDB_INIT_USERNAME=admin \
    -e DOCKER_INFLUXDB_INIT_PASSWORD=ConST \
    -e DOCKER_INFLUXDB_INIT_ORG=ConST \
    -e DOCKER_INFLUXDB_INIT_BUCKET=bucket \
    -e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=123 \
    --network=IoT \
    -d \
    --restart always \
    --name influx \
    influxdb
  • Now access https://ourdark.org:8086

Install telegraf

  • Create telegraf dir
mkdir /data/telegraf
  • Switch to /data/telegraf folder
cd /data/telegraf
  • Before you can mount local config file to telegraf, make sure there is telegraf.conf exists
docker run --rm telegraf telegraf config > telegraf.conf

       telegraf.conf is auto generated under /data/telegraf/ folder, then edit the config you want, mine will like this.

vim telegraf.conf
# Configuration
[agent]
  interval = "10s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "10s"
  flush_jitter = "0s"
  precision = ""
  hostname = ""
  omit_hostname = false
[[outputs.influxdb_v2]]
  urls = ["http://link1.const.cc:8086"]
  token = "yDLG7pUZbX5uCTMf6Qnopd62yOkhazUMeRco3sP3m6syHnn0nGS1xyj-vA3f7YinUYWH6J5pwH7_YMOu0HaKiQ=="
  organization = "ConST"
  bucket = "Default"
[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false
[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
[[inputs.mem]]
[[inputs.net]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]

       You can get information from https://ourdark.org:8086, navigate to data->telegraf, then create configuration with system plugin

  • Now you can start telegraf docker
docker run -v $PWD/telegraf.conf:/etc/telegraf/telegraf.conf:ro \
    --restart always \
    --name=telegraf \
    -d  \
    telegraf

      It should say "connected" after a little while, the system monitor dashboard will auto created and loaded.