Мониторинг Telegraf, InfluxDB, Grafana

Материал из darklurker wiki
Перейти к: навигация, поиск

Подготовка

Предполагается что:

  • На Raspberry Pi установлен Raspbian
  • Настроен SSH-сервер
  • Установлен docker.io

InfluxDB

Для удобства InfluxDB будет установлена в качестве docker-контейнера c пробросом порта до хоста.

docker pull influxdb
docker container create --name influx --hostname influx -p 8086:8086 --tty --restart always influxdb
docker container start influx

Чтобы попасть в контейнер (должен быть running) используй команду: docker exec -it influx bash

Я привел пример минимальной конфигурации контейнера, в котором нет авторизации по имени пользователя/паролю. Если необходима кастомная конфигурация, можно почитать документацию.

Документация docker-образа InfluxDB на Docker Hub

Telegraf

Скачиваем последнюю версию Telegraf с оф. сайта InfluxData

wget https://dl.influxdata.com/telegraf/releases/telegraf_1.12.4-1_armhf.deb

Устанавливаем пакет

sudo dpkg -i telegraf_1.12.4-1_armhf.deb

Конфигурируем агента:

sudo vim /etc/telegraf/telegraf.conf

Доступные плагины и их опции можно посмотреть на github influx

Файлы конфигураций можно найти у меня на github (кроме малины, там же есть конфигурации для докера и винды)

Скрипты для сбора температуры, частоты и ip здесь (их необходимо скопировать по пути /usr/local/bin)


Добавим telegraf в автозагрузку и запустим его:

sudo systemctl enable telegraf
sudo systemctl start telegraf

Посмотреть статус можно командой:

sudo systemctl status telegraf

Если по какой-то причине telegraf не пишет данные в influxDB, можно посмотреть статус агента telegraf командой выше, а также логи InfluxDB командой docker logs influx.

При необходимости собирать метрики по snmp, потребуются следующие пакеты:

  • snmp
  • snmpd
  • snmp-mibs-downloader

Если также необходимо собирать метрики с Windows, скачиваем пакет здесь

Статья о настройке на Windows здесь

Grafana

Grafana можно установить как на саму малину, так и в докер контейнере.

Установка на Raspbian

Я решил установить на саму малину, поэтому опишу только этот вариант реализации.

Скачиваем последнюю версию с оф. сайта grafana

wget https://dl.grafana.com/oss/release/grafana_6.4.3_armhf.deb

Устанавливаем пакет:

sudo dpkg -i grafana_6.4.3_armhf.deb

Добавим в автозагрузку и запустим:

sudo systemctl enable grafana-server
sudo systemctl start grafana-server

При необходимости изменить конфигурацию:

sudo vim /etc/grafana/grafana.ini

По умолчанию grafana работает на 3000 порту, если необходимо изменить, читаем доку

Для проверки можно открыть веб-интерфейс по адресу: http://localhost:3000 или http://<IP малины>:3000

Логин/пароль по умолчанию: admin/admin

Если по IP-адресу малины не открывается веб-интерфейс, убедись, что нужный порт прослушивается, а также в iptables разрешены соединения для него:

sudo netstat -tulpn
sudo iptables -L

Визуализируем метрики

Теперь, когда установлены все необходимые компоненты, можно перейти к подключению datasource grafana и настройке дашбордов.

  • Добавляем источник данных InfluxDB
  • Импортируем или создаем свои дашборды

Скрины есть ниже в разделе «Вложения».

Чтобы не настраивать все вручную, можно воспользоваться моими дашбордами, которые доступны на github

Если решил импортировать дашборды из моего github, не забудь изменить SQL-запрос, указав нужный хост WHERE host = "your_host"

Заключение

Если мониторинг будет работать только в рамках локальной сети, то не обязательно включать авторизацию для InfluxDB, включать credentials для HTTP запросов, и прочее. Если же планируется доступ извне, авторизация обязательна, кроме того рекомендуется использовать защищенное соединение TLS/HTTPS.

Полезные ссылки:


Вложения