Используемые термины: InfluxDB , Linux , CentOS , Ubuntu .
В двух словах, telegraf — агент для передачи метрик в различные базы временных рядов. В данной инструкции мы рассмотрим процесс установки и настройки сервера InfluxDB на Linux (Ubuntu и CentOS) и настройки telegraf для отправки данных в установленную базу. Сам агент для отправки метрик мы установим на Linux и Windows.
InfluxDB — установка и настройка
Подготовка системы
Установка сервера баз данных
Telegraf
Установка на системы RPM
Установка на системы DEB
Установка на системы Windows
Настройка telegraf
Генерирование конфига
Адрес сервера баз данных
Настройка запуска агента
Просмотр данных в базе
Читайте также
Если у нас уже есть сервер баз данных, совместимый с telegraf, можно пропустить данный раздел. В противном случае, рассмотрим процесс подготовки сервера и установки InfluxDB. В данной инструкции мы будем разворачивать сервер баз данных на Linux, но при необходимости, InfluxDB может быть установлен на Windows.
Для любой базы хранения временных рядов важно своевременно обновлять время на сервере.
Задаем временную зону:
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
* в данном примере задаем московское время. В каталоге /usr/share/zoneinfo список всех возможных вариантов.
Устанавливаем и запускаем сервис для автоматической синхронизации времени.
а) в CentOS / Red Hat / Fedora:
yum install chrony
systemctl enable chronyd —now
б) в Ubuntu / Debian:
apt-get install chrony
systemctl enable chrony
Если мы используем фаервол, то необходимо открыть порт 8086, на котором по умолчанию запускается данный сервер баз данных. В зависимости от используемой утилиты управления, команды будут отличаться.
а) Firewalld
По умолчанию, используется в системах на базе RPM. Для открытия нужного нам порта вводим команды:
firewall-cmd —permanent —add-port=8086/tcp
firewall-cmd —reload
б) Iptables
Чаще всего, используется в системах на базе DEB или в ранних версиях RPM. Вводим команду:
iptables -I INPUT 1 -p tcp —dport 8086 -j ACCEPT
… и сохраняем правила:
netfilter-persistent save
* если система вернет ошибку, что программа не установлена, выполним инсталляцию командой apt-get install netfilter-persistent .
По умолчанию, пакет безопасности SELinux установлен на системах RPM. Чаще всего, его выключают командами:
setenforce 0
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
* но если мы хотим настроить SELinux, принцип конфигурирования можно прочитать в инструкции Настройка SELinux в CentOS .
Мы выполним установку базы данных на примере двух различных систем — CentOS и Ubuntu.
Создаем файл с настройками репозитория:
vi /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository — RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
Можно устанавливать InfluxDB:
yum install influxdb
Разрешаем автоматический запуск сервиса и стартуем его:
systemctl enable influxdb —now
Устанавливаем ключ для репозитория:
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add —
Вводим команду для создания переменных в системном окружении, в которых будут храниться данные о версии дистрибутива:
source /etc/lsb-release
Следующей командой мы создадим файл с настройкой репозитория:
echo «deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable» | sudo tee /etc/apt/sources.list.d/influxdb.list
Обновляем список пакетов:
apt-get update
Теперь установим InfluxDB:
apt-get install influxdb
Разрешаем автоматический запуск сервиса и стартуем его:
systemctl enable influxdb
systemctl start influxdb
Выполним установку Telegraf для различных операционных систем. В зависимости от текущей версии агента, команды будут разные. Поэтому мы переходим на страницу загрузки influxdata и кликаем по последней версии telegraf:
* на момент написания инструкции это была v1.14.1 .
В открывшемся окне мы увидим конкретные команды для загрузки и установки Telegraf под различные операционные системы.
Устанавливаем утилиту для загрузки файлов:
yum install wget
Согласно инструкции на сайте influxdata.com, загружаем пакет установки:
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.14.1-1.x86_64.rpm
* напоминаю, что версия может быть другой.
Устанавливаем загруженный пакет:
yum localinstall telegraf-*.rpm
По инструкции на influxdata.com, скачиваем пакет установки:
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.14.1-1_amd64.deb
* обратите внимание, что версия может быть другой.
Устанавливаем скачанный пакет:
dpkg -i telegraf_*.deb
Скачиваем архив по ссылке на сайте. На момент написания инструкции, это было:
Создаем каталог Telegraf в папке Program Files. В моем случае, получился путь C:Program FilesTelegraf . Распаковываем в него содержимое скачанного архива — файлы telegraf.conf и telegraf.exe.
Теперь открываем командную строку от администратора и запускаем установку Telegraf в качестве службы:
«C:Program FilesTelegraftelegraf.exe» —service install
Независимо от операционной системы, создание конфига происходит в командной строке. Рассмотрим процедуры генерирования конфигурационного файла, настройки сервера баз данных и запуска агента по сбору метрик.
В командной строке переходим в каталог с конфигом телеграфа.
а) в Linux:
cd /etc/telegraf
б) в Windows:
cd «c:Program FilesTelegraf»
* если мы установили агент в другой каталог, переходим в него.
Затем генерируем конфигурационный файл. Синтаксис для команды следующий:
telegraf -sample-config —input-filter <плагины сбора метрик через «:»> —output-filter <плагины передачи данных с метрик через «:»> > <имя конфигурационного файла>
* на странице https://docs.influxdata.com/telegraf/latest/plugins/ можно найти список всех доступных плагинов.
Если мы введем команду:
telegraf -sample-config > telegraf.conf
… то мы получим конфигурационный файл telegraf.conf со всеми возможными плагинами.
Лучше создавать конфигурационный файл с нужными нам плагинами. Например, создадим конфиг для получения метрик дисковой системы с помещением данных в InfluxDB:
telegraf -sample-config —input-filter disk:diskio:hddtemp —output-filter influxdb > telegraf.conf
* перечень плагинов для получения метрик идет после ключа —input-filter ; после —output-filter мы перечисляем системы, для отправки в которые будут подготовлены данные — в нашем случае это influxdb . Также это могут быть Elasticsearch, Graphite, OpenTSDB, Prometheus и другие.
Проверить полученный конфигурационный файл можно командой:
telegraf —test
* если путь до конфигурационного файла отличается от стандартного, его можно указать с помощью ключа —config .
Если в настройках telegraf будут ошибки, мы увидим:
[telegraf] Error running agent:
Как правило, сервер баз данных находится на одном сервере, но по умолчанию, в telegtaf создается конфигурационный файл для отправки метрик на локальный сервер баз данных. Чтобы изменить настройку, открываем созданный нами ранее конфиг.
а) в Linux с помощью текстового редактора, например:
vi /etc/telegraf/telegraf.conf
б) в Windows также текстовым редактором, например, обычным блокнотом или Notepad++.
Находим строку в разделе OUTPUT PLUGINS:
# urls = [«http://127.0.0.1:8086»]
Снимаем комментарий и меняем адрес сервера, например:
urls = [«http://192.168.1.16:8086»]
* где 192.168.1.16 — IP-адрес нашего сервера баз данных.
Если наш сервер баз данных требует аутентификации, добавим 2 строки:
username = «username»
password = «userpass»
* где username и password — соответственно, логин и парлоль для подключения к базе.
Процедуры в Linux и Windows немного отличаются.
Разрешаем автозапуск telegraf:
systemctl enable telegraf
Перезапускаем сервис:
systemctl restart telegraf
Открываем службы Windows . Находим службу Telegraf Data Collector Service — открываем ее. Проверяем, чтобы тип запуска был автоматический и кликаем по Запустить :
Также запустить службу можно из командной строки:
net start telegraf
Чтобы завершить настройку, необходимо убедиться, что данные с метрик приходят в нашу базу. Для этого на сервере InfluxDB вводим команду:
influx
Мы подключимся к базе. Смотрим список баз:
> show databases
* если influxdb требует аутентификации, то мы получим ошибку ERR: unable to parse authentication credentials . Необходимо сначала ввести команду auth и последовательно логин и пароль.
Мы должны увидеть базу telegraf:
name: databases
name
—-
_internal
telegraf
Подключаемся к базе и смотрим список таблиц:
> use telegraf
> show measurements
Смотрим список значений для нужной нам метрики, например, для diskio:
> SELECT * FROM diskio ORDER BY time DESC LIMIT 15
* так как значений будет очень много, лучше ограничить вывод — в данном примере последних 15 записей.
Чтобы получить данные для определенного хоста, вводим запрос:
SELECT * FROM diskio WHERE host=’server1′ ORDER BY time DESC LIMIT 15
* в данном примере мы получим данные, которые пришли с компьютера server1 .
Возможно, будут интересны сопутствующие инструкции:
1. Установка Prometheus + Alertmanager + node_exporter на Linux
2. Elasticsearch + Kibana + Logstash на CentOS
3. Установка и настройка сервера Grafana на Linux
4. Установка и настройка сервера мониторинга Zabbix на CentOS и Ubuntu .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…