docs-v2/content/telegraf/v1/get-started.md

119 lines
4.0 KiB
Markdown

---
title: Get started
description: Configure and start Telegraf
menu:
telegraf_v1:
name: Get started
weight: 30
aliases:
- /telegraf/v1/introduction/getting-started/
- /telegraf/v1/get_started/
---
After you've [downloaded and installed Telegraf](/telegraf/v1/install/), you're ready to begin collecting and sending data. To collect and send data, do the following:
1. [Configure Telegraf](#configure-telegraf)
2. [Start Telegraf](#start-telegraf)
3. Use [plugins available in Telegraf](/telegraf/v1/plugins/) to gather, transform, and output data.
## Configure Telegraf
Define which plugins Telegraf will use in the configuration file. Each configuration file needs at least one enabled [input plugin](/telegraf/v1/plugins/inputs/) (where the metrics come from) and at least one enabled [output plugin](/telegraf/v1/plugins/outputs/) (where the metrics go).
The following example generates a sample configuration file with all available plugins, then uses `filter` flags to enable specific plugins.
{{% note %}}
For details on `filter` and other flags, see [Telegraf commands and flags](/telegraf/v1/commands/).
{{% /note %}}
1. Run the following command to create a configuration file:
```bash
telegraf --sample-config > telegraf.conf
```
2. Locate the configuration file. The location varies depending on your system:
* macOS [Homebrew](http://brew.sh/): `/usr/local/etc/telegraf.conf`
* Linux debian and RPM packages: `/etc/telegraf/telegraf.conf`
* Standalone Binary: see the next section for how to create a configuration file
> **Note:** You can also specify a remote URL endpoint to pull a configuration file from. See [Configuration file locations](/telegraf/v1/configuration/#configuration-file-locations).
3. Edit the configuration file using `vim` or a text editor. Because this example uses [InfluxDB V2 output plugin](https://github.com/influxdata/telegraf/blob/release-1.21/plugins/outputs/influxdb_v2/README.md), we need to add the InfluxDB URL, authentication token, organization, and bucket details to this section of the configuration file.
> **Note:** For more configuration file options, see [Configuration options](/telegraf/v1/configuration/).
4. For this example, specify two inputs (`cpu` and `mem`) with the `--input-filter` flag.
Specify InfluxDB as the output with the `--output-filter` flag.
```bash
telegraf --sample-config --input-filter cpu:mem --output-filter influxdb_v2 > telegraf.conf
```
The resulting configuration will collect CPU and memory data and sends it to InfluxDB V2.
For an overview of how to configure a plugin, watch the following video:
{{< youtube a0js7wiQEJ4 >}}
## Set environment variables
Add environment variables anywhere in the configuration file by prepending them with `$`.
For strings, variables must be in quotes (for example, `"$STR_VAR"`).
For numbers and Booleans, variables must be unquoted (for example, `$INT_VAR`, `$BOOL_VAR`).
You can also set environment variables using the Linux `export` command: `export password=mypassword`
> **Note:** We recommend using environment variables for sensitive information.
### Example: Telegraf environment variables
In the Telegraf environment variables file (`/etc/default/telegraf`):
```sh
USER="alice"
INFLUX_URL="http://localhost:8086"
INFLUX_SKIP_DATABASE_CREATION="true"
INFLUX_PASSWORD="monkey123"
```
In the Telegraf configuration file (`/etc/telegraf.conf`):
```sh
[global_tags]
user = "${USER}"
[[inputs.mem]]
[[outputs.influxdb]]
urls = ["${INFLUX_URL}"]
skip_database_creation = ${INFLUX_SKIP_DATABASE_CREATION}
password = "${INFLUX_PASSWORD}"
```
The environment variables above add the following configuration settings to Telegraf:
```sh
[global_tags]
user = "alice"
[[outputs.influxdb]]
urls = "http://localhost:8086"
skip_database_creation = true
password = "monkey123"
```
## Start Telegraf
Next, you need to start the Telegraf service and direct it to your configuration file:
### macOS [Homebrew](http://brew.sh/)
```bash
telegraf --config telegraf.conf
```
### Linux (systemd installations)
```bash
systemctl start telegraf
```