Установка и настройка 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
Источник APT (перезаписываем на всякий случай, вдруг там осталась старая ссылка на influxdata-archive_compat.key):
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.