Telegraf это агент, написанный на Go для сбора метрик производительности из системы и сервисов, где он запущен. Собираемые метрики отправляются в InfluxD или в другие поддерживаемые хранилища. Из InfluxDB можно визуализировать данные и производительность используя Grafana. Github
Базовый способ использования Telegraf следующий:
- Агент Telegraf устанавливается на все сервера, откуда нужно собирать метрики (Ubuntu, Debian, Windows, CentOS и прочие)
- Метрики собираются и отправляются в InfluxDB
- Источник данных InfluxDB добавляется в Grafana
- Созданы графики Grafana - они получают данные из источника данных InfluxDB.
Установка Telegraf на Ubuntu 22.04 производится из репозитория Influxdata. После добавления репозитория пакет можно установить с помощью диспетчера пакетов apt. Добавьте репозиторий InfluxData в файл /etc/apt/sources.list.d/influxdata.list
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
Обновить apt индекс и установить Telegraf
sudo apt update && sudo apt install telegraf -y
Запустить и включить сервис, для запуска при загрузке
sudo systemctl enable --now telegraf
sudo systemctl is-enabled telegraf
Проверить статус сервиса
systemctl status telegraf
Решение проблем
S.M.A.R.T. Input плагин
You will need the following in your telegraf config:
[[inputs.smart]] use_sudo = true
You will also need to update your sudoers file:
$ visudo
For smartctl add the following lines:
Cmnd_Alias SMARTCTL = /usr/bin/smartctl telegraf ALL=(ALL) NOPASSWD: SMARTCTL Defaults!SMARTCTL !logfile, !syslog, !pam_session
For nvme-cli add the following lines:
Cmnd_Alias NVME = /path/to/nvme telegraf ALL=(ALL) NOPASSWD: NVME Defaults!NVME !logfile, !syslog, !pam_session
https://github.com/influxdata/telegraf/tree/master/plugins/inputs/smart