Skip to main content

Установка и настройка Telegraf на Ubuntu

Пошаговая настройка Telegraf с отправкой метрик в InfluxDB: подключение репозитория, установка, конфиг, автозапуск, проверка и известный фикс ошибки с GPG-ключом.

Каждый блок кода ниже рассчитан на копирование целиком.

1. Подключение репозитория InfluxData

Ключ репозитория (актуальный, .gpg-формат вместо устаревшего apt-key):

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repos.influxdata.com/influxdata-archive.key | sudo gpg --dearmor -o /etc/apt/keyrings/influxdata.gpg

Проверка, что ключ действительно скачался и не битый (необязательно, но полезно):

gpg --show-keys /etc/apt/keyrings/influxdata.gpg

В выводе должен быть отпечаток DA61 C26A 0585 BD3B.

Сам источник APT:

echo "deb [signed-by=/etc/apt/keyrings/influxdata.gpg] https://repos.influxdata.com/ubuntu stable main" | sudo tee /etc/apt/sources.list.d/influxdata.list

2. Установка

sudo apt update && sudo apt install telegraf influxdata-archive-keyring -y

Если при обновлении пакет спросит про изменённый конфиг — выбрать install the package maintainer's version (первый пункт). Свои настройки всё равно пишем заново на шаге 3, так что перезаписывать конфиг безопасно.

3. Конфигурация

Открываем конфиг:

sudo nano /etc/telegraf/telegraf.conf

Содержимое (заменить hostname, urls, database, username, password на свои):

[global_tags]

# Configuration for telegraf agent
[agent]
    interval = "10s"
    debug = false
    hostname = "server1.domain.sas"
    round_interval = true
    flush_interval = "10s"
    flush_jitter = "0s"
    collection_jitter = "0s"
    metric_batch_size = 1000
    metric_buffer_limit = 40000
    quiet = false
    logfile = ""
    omit_hostname = false

###############################################################################
#                                  OUTPUTS                                    #
###############################################################################

[[outputs.influxdb]]
    urls = [ "https://influx.domain.sas" ]
    database = "db"
    username = "user"
    password = "password"

###############################################################################
#                                  INPUTS                                     #
###############################################################################

[[inputs.cpu]]
[[inputs.disk]]
[[inputs.diskio]]
[[inputs.mem]]
[[inputs.system]]
[[inputs.swap]]
[[inputs.net]]
[[inputs.nstat]]
[[inputs.netstat]]
[[inputs.processes]]
[[inputs.kernel]]

###############################################################################
#                                  PROCESSORS                                 #
###############################################################################


###############################################################################
#                                  AGGREGATORS                                #
###############################################################################

Проверка синтаксиса перед перезапуском — обязательна, чтобы не запускать сервис на битом конфиге:

telegraf --config /etc/telegraf/telegraf.conf --test

4. Запуск и автозапуск

sudo systemctl restart telegraf && sudo systemctl enable telegraf

5. Проверка

Статус сервиса:

sudo systemctl status telegraf --no-pager

Логи в реальном времени — там же будет видно, если InfluxDB отвергает метрики (неверный пароль, недоступный хост и т. п.):

sudo journalctl -u telegraf -f

6. Фикс ошибки с GPG-ключом

Если apt update выдаёт:

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY DA61C26A0585BD3B

— значит InfluxData сменили ключ подписи, а на сервере лежит старый. Решение:

sudo rm -f /etc/apt/keyrings/influxdata-archive_compat.key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repos.influxdata.com/influxdata-archive.key | sudo gpg --dearmor -o /etc/apt/keyrings/influxdata.gpg
echo "deb [signed-by=/etc/apt/keyrings/influxdata.gpg] https://repos.influxdata.com/ubuntu stable main" | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt update && sudo apt install telegraf influxdata-archive-keyring -y

По сути это шаги 1–2 заново, но со старым ключом, удалённым перед перевыпуском нового.

Что стоит сделать дополнительно

  • Проверить, что порт InfluxDB (обычно 8086 для v1 API или 443, если он за Caddy/nginx) открыт в файрволе только там, где нужно.
  • Ограничить набор [[inputs.*]] под задачу — включённые по умолчанию nstat/netstat/processes не всегда нужны и добавляют лишние метрики.
  • Через день работы проверить объём отправляемых данных (metric_batch_size / flush_interval), чтобы не упереться в лимиты InfluxDB.