355 lines
15 KiB
Markdown
355 lines
15 KiB
Markdown
# Telegraf [![Circle CI](https://circleci.com/gh/influxdata/telegraf.svg?style=svg)](https://circleci.com/gh/influxdata/telegraf) [![Docker pulls](https://img.shields.io/docker/pulls/library/telegraf.svg)](https://hub.docker.com/_/telegraf/)
|
|
|
|
Telegraf is an agent for collecting, processing, aggregating, and writing metrics.
|
|
|
|
Design goals are to have a minimal memory footprint with a plugin system so
|
|
that developers in the community can easily add support for collecting
|
|
metrics.
|
|
|
|
Telegraf is plugin-driven and has the concept of 4 distinct plugin types:
|
|
|
|
1. [Input Plugins](#input-plugins) collect metrics from the system, services, or 3rd party APIs
|
|
2. [Processor Plugins](#processor-plugins) transform, decorate, and/or filter metrics
|
|
3. [Aggregator Plugins](#aggregator-plugins) create aggregate metrics (e.g. mean, min, max, quantiles, etc.)
|
|
4. [Output Plugins](#output-plugins) write metrics to various destinations
|
|
|
|
New plugins are designed to be easy to contribute, we'll eagerly accept pull
|
|
requests and will manage the set of plugins that Telegraf supports.
|
|
|
|
## Contributing
|
|
|
|
There are many ways to contribute:
|
|
- Fix and [report bugs](https://github.com/influxdata/telegraf/issues/new)
|
|
- [Improve documentation](https://github.com/influxdata/telegraf/issues?q=is%3Aopen+label%3Adocumentation)
|
|
- [Review code and feature proposals](https://github.com/influxdata/telegraf/pulls)
|
|
- Answer questions and discuss here on github and on the [Community Site](https://community.influxdata.com/)
|
|
- [Contribute plugins](CONTRIBUTING.md)
|
|
|
|
## Installation:
|
|
|
|
You can download the binaries directly from the [downloads](https://www.influxdata.com/downloads) page
|
|
or from the [releases](https://github.com/influxdata/telegraf/releases) section.
|
|
|
|
### Ansible Role:
|
|
|
|
Ansible role: https://github.com/rossmcdonald/telegraf
|
|
|
|
### From Source:
|
|
|
|
Telegraf requires golang version 1.9 or newer, the Makefile requires GNU make.
|
|
|
|
1. [Install Go](https://golang.org/doc/install) >=1.9 (1.10 recommended)
|
|
2. [Install dep](https://golang.github.io/dep/docs/installation.html) ==v0.5.0
|
|
3. Download Telegraf source:
|
|
```
|
|
go get -d github.com/influxdata/telegraf
|
|
```
|
|
4. Run make from the source directory
|
|
```
|
|
cd "$HOME/go/src/github.com/influxdata/telegraf"
|
|
make
|
|
```
|
|
|
|
### Changelog
|
|
|
|
View the [changelog](/CHANGELOG.md) for the latest updates and changes by
|
|
version.
|
|
|
|
### Nightly Builds
|
|
|
|
These builds are generated from the master branch:
|
|
- [telegraf_nightly_amd64.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_amd64.deb)
|
|
- [telegraf_nightly_arm64.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_arm64.deb)
|
|
- [telegraf-nightly.arm64.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.arm64.rpm)
|
|
- [telegraf_nightly_armel.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_armel.deb)
|
|
- [telegraf-nightly.armel.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.armel.rpm)
|
|
- [telegraf_nightly_armhf.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_armhf.deb)
|
|
- [telegraf-nightly.armv6hl.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.armv6hl.rpm)
|
|
- [telegraf-nightly_freebsd_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_freebsd_amd64.tar.gz)
|
|
- [telegraf-nightly_freebsd_i386.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_freebsd_i386.tar.gz)
|
|
- [telegraf_nightly_i386.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_i386.deb)
|
|
- [telegraf-nightly.i386.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.i386.rpm)
|
|
- [telegraf-nightly_linux_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_amd64.tar.gz)
|
|
- [telegraf-nightly_linux_arm64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_arm64.tar.gz)
|
|
- [telegraf-nightly_linux_armel.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_armel.tar.gz)
|
|
- [telegraf-nightly_linux_armhf.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_armhf.tar.gz)
|
|
- [telegraf-nightly_linux_i386.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_i386.tar.gz)
|
|
- [telegraf-nightly_linux_s390x.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_linux_s390x.tar.gz)
|
|
- [telegraf_nightly_s390x.deb](https://dl.influxdata.com/telegraf/nightlies/telegraf_nightly_s390x.deb)
|
|
- [telegraf-nightly.s390x.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.s390x.rpm)
|
|
- [telegraf-nightly_windows_amd64.zip](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_windows_amd64.zip)
|
|
- [telegraf-nightly_windows_i386.zip](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly_windows_i386.zip)
|
|
- [telegraf-nightly.x86_64.rpm](https://dl.influxdata.com/telegraf/nightlies/telegraf-nightly.x86_64.rpm)
|
|
- [telegraf-static-nightly_linux_amd64.tar.gz](https://dl.influxdata.com/telegraf/nightlies/telegraf-static-nightly_linux_amd64.tar.gz)
|
|
|
|
## How to use it:
|
|
|
|
See usage with:
|
|
|
|
```
|
|
telegraf --help
|
|
```
|
|
|
|
#### Generate a telegraf config file:
|
|
|
|
```
|
|
telegraf config > telegraf.conf
|
|
```
|
|
|
|
#### Generate config with only cpu input & influxdb output plugins defined:
|
|
|
|
```
|
|
telegraf --input-filter cpu --output-filter influxdb config
|
|
```
|
|
|
|
#### Run a single telegraf collection, outputing metrics to stdout:
|
|
|
|
```
|
|
telegraf --config telegraf.conf --test
|
|
```
|
|
|
|
#### Run telegraf with all plugins defined in config file:
|
|
|
|
```
|
|
telegraf --config telegraf.conf
|
|
```
|
|
|
|
#### Run telegraf, enabling the cpu & memory input, and influxdb output plugins:
|
|
|
|
```
|
|
telegraf --config telegraf.conf --input-filter cpu:mem --output-filter influxdb
|
|
```
|
|
|
|
## Documentation
|
|
|
|
[Latest Release Documentation][release docs].
|
|
|
|
For documentation on the latest development code see the [documentation index][devel docs].
|
|
|
|
[release docs]: https://docs.influxdata.com/telegraf
|
|
[devel docs]: docs
|
|
|
|
## Input Plugins
|
|
|
|
* [activemq](./plugins/inputs/activemq)
|
|
* [aerospike](./plugins/inputs/aerospike)
|
|
* [amqp_consumer](./plugins/inputs/amqp_consumer) (rabbitmq)
|
|
* [apache](./plugins/inputs/apache)
|
|
* [aurora](./plugins/inputs/aurora)
|
|
* [aws cloudwatch](./plugins/inputs/cloudwatch)
|
|
* [bcache](./plugins/inputs/bcache)
|
|
* [beanstalkd](./plugins/inputs/beanstalkd)
|
|
* [bond](./plugins/inputs/bond)
|
|
* [burrow](./plugins/inputs/burrow)
|
|
* [cassandra](./plugins/inputs/cassandra) (deprecated, use [jolokia2](./plugins/inputs/jolokia2))
|
|
* [ceph](./plugins/inputs/ceph)
|
|
* [cgroup](./plugins/inputs/cgroup)
|
|
* [chrony](./plugins/inputs/chrony)
|
|
* [conntrack](./plugins/inputs/conntrack)
|
|
* [consul](./plugins/inputs/consul)
|
|
* [couchbase](./plugins/inputs/couchbase)
|
|
* [couchdb](./plugins/inputs/couchdb)
|
|
* [cpu](./plugins/inputs/cpu)
|
|
* [DC/OS](./plugins/inputs/dcos)
|
|
* [diskio](./plugins/inputs/diskio)
|
|
* [disk](./plugins/inputs/disk)
|
|
* [disque](./plugins/inputs/disque)
|
|
* [dmcache](./plugins/inputs/dmcache)
|
|
* [dns query time](./plugins/inputs/dns_query)
|
|
* [docker](./plugins/inputs/docker)
|
|
* [dovecot](./plugins/inputs/dovecot)
|
|
* [elasticsearch](./plugins/inputs/elasticsearch)
|
|
* [exec](./plugins/inputs/exec) (generic executable plugin, support JSON, influx, graphite and nagios)
|
|
* [fail2ban](./plugins/inputs/fail2ban)
|
|
* [fibaro](./plugins/inputs/fibaro)
|
|
* [file](./plugins/inputs/file)
|
|
* [filestat](./plugins/inputs/filestat)
|
|
* [filecount](./plugins/inputs/filecount)
|
|
* [fluentd](./plugins/inputs/fluentd)
|
|
* [graylog](./plugins/inputs/graylog)
|
|
* [haproxy](./plugins/inputs/haproxy)
|
|
* [hddtemp](./plugins/inputs/hddtemp)
|
|
* [httpjson](./plugins/inputs/httpjson) (generic JSON-emitting http service plugin)
|
|
* [http_listener](./plugins/inputs/influxdb_listener) (deprecated, renamed to [influxdb_listener](/plugins/inputs/influxdb_listener))
|
|
* [http_listener_v2](./plugins/inputs/http_listener_v2)
|
|
* [http](./plugins/inputs/http) (generic HTTP plugin, supports using input data formats)
|
|
* [http_response](./plugins/inputs/http_response)
|
|
* [icinga2](./plugins/inputs/icinga2)
|
|
* [influxdb](./plugins/inputs/influxdb)
|
|
* [influxdb_v2](./plugins/inputs/influxdb_v2)
|
|
* [influxdb_listener](./plugins/inputs/influxdb_listener)
|
|
* [internal](./plugins/inputs/internal)
|
|
* [interrupts](./plugins/inputs/interrupts)
|
|
* [ipmi_sensor](./plugins/inputs/ipmi_sensor)
|
|
* [ipset](./plugins/inputs/ipset)
|
|
* [iptables](./plugins/inputs/iptables)
|
|
* [ipvs](./plugins/inputs/ipvs)
|
|
* [jenkins](./plugins/inputs/jenkins)
|
|
* [jolokia2](./plugins/inputs/jolokia2) (java, cassandra, kafka)
|
|
* [jolokia](./plugins/inputs/jolokia) (deprecated, use [jolokia2](./plugins/inputs/jolokia2))
|
|
* [jti_openconfig_telemetry](./plugins/inputs/jti_openconfig_telemetry)
|
|
* [kafka_consumer](./plugins/inputs/kafka_consumer)
|
|
* [kapacitor](./plugins/inputs/kapacitor)
|
|
* [kernel](./plugins/inputs/kernel)
|
|
* [kernel_vmstat](./plugins/inputs/kernel_vmstat)
|
|
* [kibana](./plugins/inputs/kibana)
|
|
* [kubernetes](./plugins/inputs/kubernetes)
|
|
* [leofs](./plugins/inputs/leofs)
|
|
* [linux_sysctl_fs](./plugins/inputs/linux_sysctl_fs)
|
|
* [logparser](./plugins/inputs/logparser)
|
|
* [lustre2](./plugins/inputs/lustre2)
|
|
* [mailchimp](./plugins/inputs/mailchimp)
|
|
* [mcrouter](./plugins/inputs/mcrouter)
|
|
* [memcached](./plugins/inputs/memcached)
|
|
* [mem](./plugins/inputs/mem)
|
|
* [mesos](./plugins/inputs/mesos)
|
|
* [minecraft](./plugins/inputs/minecraft)
|
|
* [mongodb](./plugins/inputs/mongodb)
|
|
* [mqtt_consumer](./plugins/inputs/mqtt_consumer)
|
|
* [mysql](./plugins/inputs/mysql)
|
|
* [nats_consumer](./plugins/inputs/nats_consumer)
|
|
* [nats](./plugins/inputs/nats)
|
|
* [net](./plugins/inputs/net)
|
|
* [net_response](./plugins/inputs/net_response)
|
|
* [netstat](./plugins/inputs/net)
|
|
* [nginx](./plugins/inputs/nginx)
|
|
* [nginx_plus](./plugins/inputs/nginx_plus)
|
|
* [nginx_plus_api](./plugins/inputs/nginx_plus_api)
|
|
* [nginx_vts](./plugins/inputs/nginx_vts)
|
|
* [nsq_consumer](./plugins/inputs/nsq_consumer)
|
|
* [nginx_vts](./plugins/inputs/nginx_vts)
|
|
* [nsq](./plugins/inputs/nsq)
|
|
* [nstat](./plugins/inputs/nstat)
|
|
* [ntpq](./plugins/inputs/ntpq)
|
|
* [nvidia_smi](./plugins/inputs/nvidia_smi)
|
|
* [openldap](./plugins/inputs/openldap)
|
|
* [opensmtpd](./plugins/inputs/opensmtpd)
|
|
* [pf](./plugins/inputs/pf)
|
|
* [pgbouncer](./plugins/inputs/pgbouncer)
|
|
* [phpfpm](./plugins/inputs/phpfpm)
|
|
* [phusion passenger](./plugins/inputs/passenger)
|
|
* [ping](./plugins/inputs/ping)
|
|
* [postfix](./plugins/inputs/postfix)
|
|
* [postgresql_extensible](./plugins/inputs/postgresql_extensible)
|
|
* [postgresql](./plugins/inputs/postgresql)
|
|
* [powerdns](./plugins/inputs/powerdns)
|
|
* [processes](./plugins/inputs/processes)
|
|
* [procstat](./plugins/inputs/procstat)
|
|
* [prometheus](./plugins/inputs/prometheus) (can be used for [Caddy server](./plugins/inputs/prometheus/README.md#usage-for-caddy-http-server))
|
|
* [puppetagent](./plugins/inputs/puppetagent)
|
|
* [rabbitmq](./plugins/inputs/rabbitmq)
|
|
* [raindrops](./plugins/inputs/raindrops)
|
|
* [redis](./plugins/inputs/redis)
|
|
* [rethinkdb](./plugins/inputs/rethinkdb)
|
|
* [riak](./plugins/inputs/riak)
|
|
* [salesforce](./plugins/inputs/salesforce)
|
|
* [sensors](./plugins/inputs/sensors)
|
|
* [smart](./plugins/inputs/smart)
|
|
* [snmp_legacy](./plugins/inputs/snmp_legacy)
|
|
* [snmp](./plugins/inputs/snmp)
|
|
* [socket_listener](./plugins/inputs/socket_listener)
|
|
* [solr](./plugins/inputs/solr)
|
|
* [sql server](./plugins/inputs/sqlserver) (microsoft)
|
|
* [statsd](./plugins/inputs/statsd)
|
|
* [swap](./plugins/inputs/swap)
|
|
* [syslog](./plugins/inputs/syslog)
|
|
* [sysstat](./plugins/inputs/sysstat)
|
|
* [system](./plugins/inputs/system)
|
|
* [tail](./plugins/inputs/tail)
|
|
* [temp](./plugins/inputs/temp)
|
|
* [tcp_listener](./plugins/inputs/socket_listener)
|
|
* [teamspeak](./plugins/inputs/teamspeak)
|
|
* [tengine](./plugins/inputs/tengine)
|
|
* [tomcat](./plugins/inputs/tomcat)
|
|
* [twemproxy](./plugins/inputs/twemproxy)
|
|
* [udp_listener](./plugins/inputs/socket_listener)
|
|
* [unbound](./plugins/inputs/unbound)
|
|
* [varnish](./plugins/inputs/varnish)
|
|
* [vsphere](./plugins/inputs/vsphere) VMware vSphere
|
|
* [webhooks](./plugins/inputs/webhooks)
|
|
* [filestack](./plugins/inputs/webhooks/filestack)
|
|
* [github](./plugins/inputs/webhooks/github)
|
|
* [mandrill](./plugins/inputs/webhooks/mandrill)
|
|
* [papertrail](./plugins/inputs/webhooks/papertrail)
|
|
* [particle](./plugins/inputs/webhooks/particle)
|
|
* [rollbar](./plugins/inputs/webhooks/rollbar)
|
|
* [win_perf_counters](./plugins/inputs/win_perf_counters) (windows performance counters)
|
|
* [win_services](./plugins/inputs/win_services)
|
|
* [wireless](./plugins/inputs/wireless)
|
|
* [zfs](./plugins/inputs/zfs)
|
|
* [zipkin](./plugins/inputs/zipkin)
|
|
* [zookeeper](./plugins/inputs/zookeeper)
|
|
|
|
## Parsers
|
|
|
|
- [InfluxDB Line Protocol](/plugins/parsers/influx)
|
|
- [Collectd](/plugins/parsers/collectd)
|
|
- [CSV](/plugins/parsers/csv)
|
|
- [Dropwizard](/plugins/parsers/dropwizard)
|
|
- [Graphite](/plugins/parsers/graphite)
|
|
- [Grok](/plugins/parsers/grok)
|
|
- [JSON](/plugins/parsers/json)
|
|
- [Logfmt](/plugins/parsers/logfmt)
|
|
- [Nagios](/plugins/parsers/nagios)
|
|
- [Value](/plugins/parsers/value), ie: 45 or "booyah"
|
|
- [Wavefront](/plugins/parsers/wavefront)
|
|
|
|
## Serializers
|
|
|
|
- [InfluxDB Line Protocol](/plugins/serializers/influx)
|
|
- [JSON](/plugins/serializers/json)
|
|
- [Graphite](/plugins/serializers/graphite)
|
|
- [SplunkMetric](/plugins/serializers/splunkmetric)
|
|
|
|
## Processor Plugins
|
|
|
|
* [converter](./plugins/processors/converter)
|
|
* [enum](./plugins/processors/enum)
|
|
* [override](./plugins/processors/override)
|
|
* [parser](./plugins/processors/parser)
|
|
* [printer](./plugins/processors/printer)
|
|
* [regex](./plugins/processors/regex)
|
|
* [rename](./plugins/processors/rename)
|
|
* [strings](./plugins/processors/strings)
|
|
* [topk](./plugins/processors/topk)
|
|
|
|
## Aggregator Plugins
|
|
|
|
* [basicstats](./plugins/aggregators/basicstats)
|
|
* [minmax](./plugins/aggregators/minmax)
|
|
* [histogram](./plugins/aggregators/histogram)
|
|
* [valuecounter](./plugins/aggregators/valuecounter)
|
|
|
|
## Output Plugins
|
|
|
|
* [influxdb](./plugins/outputs/influxdb)
|
|
* [amon](./plugins/outputs/amon)
|
|
* [amqp](./plugins/outputs/amqp) (rabbitmq)
|
|
* [application_insights](./plugins/outputs/application_insights)
|
|
* [aws kinesis](./plugins/outputs/kinesis)
|
|
* [aws cloudwatch](./plugins/outputs/cloudwatch)
|
|
* [azure_monitor](./plugins/outputs/azure_monitor)
|
|
* [cratedb](./plugins/outputs/cratedb)
|
|
* [datadog](./plugins/outputs/datadog)
|
|
* [discard](./plugins/outputs/discard)
|
|
* [elasticsearch](./plugins/outputs/elasticsearch)
|
|
* [file](./plugins/outputs/file)
|
|
* [graphite](./plugins/outputs/graphite)
|
|
* [graylog](./plugins/outputs/graylog)
|
|
* [http](./plugins/outputs/http)
|
|
* [instrumental](./plugins/outputs/instrumental)
|
|
* [kafka](./plugins/outputs/kafka)
|
|
* [librato](./plugins/outputs/librato)
|
|
* [mqtt](./plugins/outputs/mqtt)
|
|
* [nats](./plugins/outputs/nats)
|
|
* [nsq](./plugins/outputs/nsq)
|
|
* [opentsdb](./plugins/outputs/opentsdb)
|
|
* [prometheus](./plugins/outputs/prometheus_client)
|
|
* [riemann](./plugins/outputs/riemann)
|
|
* [riemann_legacy](./plugins/outputs/riemann_legacy)
|
|
* [socket_writer](./plugins/outputs/socket_writer)
|
|
* [stackdriver](./plugins/outputs/stackdriver)
|
|
* [tcp](./plugins/outputs/socket_writer)
|
|
* [udp](./plugins/outputs/socket_writer)
|
|
* [wavefront](./plugins/outputs/wavefront)
|