Как отследить задержку в сети с помощью SmokePing на FreeBSD 11

Вступление

SmokePing - инструмент отслеживания латентности сети. Отслеживание задержек в сети вашего сервера может дать вам полезную картину общего состояния и доступности вашего сервера. Например, он может помочь вам определить, перегружена ли ваша сеть, или предупредить вас о потере пакетов, что может указывать на неправильную конфигурацию маршрутизатора или сбой устройства.

Создатель SpokePing, Тобиас Отикер, также создал утилиту регистрации данных и построения временных рядов под названием RDDtool. SmokePing использует RDDtool, поэтому у вас есть доступ к его сложным графическим возможностям.

Из этого туториала вы узнаете, как установить и настроить SmokePing с Apache на FreeBSD.

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

  • Один сервер FreeBSD 11 с пользователем * root *. На DigitalOcean по умолчанию пользователь * freebsd * подходит.

Шаг 1 - Установка Apache с поддержкой FastCGI

Для начала мы установим веб-сервер Apache и его модуль FastCGI, который SmokePing использует для питания своего веб-интерфейса.

Сначала обновите информацию о хранилище вашего сервера.

sudo pkg update

Чтобы установить Apache с поддержкой FastCGI, вы можете просто указать + pkg + для установки модуля FastCGI. + pkg + будет обрабатывать все зависимости, необходимые для самого модуля, поэтому он также автоматически установит основной пакет Apache.

sudo pkg install ap24-mod_fcgid

Подтвердите установку, нажав + Y +. После установки Apache нам нужно настроить его, чтобы он работал.

Шаг 2 - Настройка Apache

В Apache нужно внести два небольших изменения: обновить некоторую информацию о сервере в + httpd.conf + и включить модуль FastCGI.

Во-первых, откройте + / usr / local / etc / apache24 / httpd.conf + для редактирования.

sudo ee /usr/local/etc/apache24/httpd.conf

Отредактируйте две директивы ниже. Установите + ServerAdmin + на свой адрес электронной почты и раскомментируйте (удалив предыдущий + # +) и измените + ServerName + на IP-адрес вашего сервера.

httpd.conf

. . .
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. [email protected]
#
ServerAdmin

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName
. . .

Сохраните и закройте файл.

FastCGI не является модулем по умолчанию, поэтому мы должны добавить его в конфигурацию Apache, чтобы загрузить его. Чтобы загрузить модуль, нам нужно создать новый файл конфигурации в + / usr / local / etc / apache24 / modules.d / + и добавить информацию о модуле.

Модуль README, находящийся в + / usr / local / etc / apache24 / modules.d / README_modules.d +, говорит, что «файлы включаются автоматически, если имя начинается с трехзначного числа, за которым следует` + _ + и заканчивается в `+ .conf + ”. Для этого мы создадим файл с именем + 001_fcgid.conf +.

sudo ee /usr/local/etc/apache24/modules.d/001_fcgid.conf

Вставьте следующее в файл, который сообщает Apache, чтобы загрузить модуль и где его найти.

/usr/local/etc/apache24/modules.d/001_fcgid.conf

LoadModule  fcgid_module            libexec/apache24/mod_fcgid.so

Сохраните и закройте файл.

Теперь, когда Apache с FastCGI настроен, мы можем установить SmokePing.

Шаг 3 - Установка и настройка SmokePing

Установка SmokePing проста, потому что она находится в хранилище пакетов.

sudo pkg install smokeping

Конфигурация SmokePing находится в + / usr / local / etc / smokeping / config + по умолчанию. Вам нужно отредактировать этот файл, чтобы настроить несколько полей.

sudo ee /usr/local/etc/smokeping/config

Вам нужно будет отредактировать четыре поля в разделе * General *:

  • + владелец +, который должен иметь ваше имя

  • + contact +, который должен иметь ваш адрес электронной почты

  • + imgurl +, который следует обновить, чтобы использовать IP-адрес вашего сервера

  • + cgiurl +, который также должен быть обновлен для использования IP-адреса вашего сервера

Вот как будет выглядеть файл, когда вы закончите:

/ USR / местные / и т.д. / smokeping / конфигурации

*** General ***

owner    =
contact  =
mailhost = my.mail.host
. . .
imgcache = /usr/local/smokeping/htdocs/img
imgurl   = http:///smokeping/img
datadir  = /usr/local/var/smokeping
piddir  = /usr/local/var/smokeping
cgiurl   = http:///smokeping.fcgi
. . .

SmokePing имеет поддержку главной / подчиненной архитектуры, чтобы использовать их терминологию. В этом уроке мы настраиваем SmokePing только на одном компьютере. Следовательно, закомментируйте секцию * Slaves * конфигурации, предварительно обратив каждую строку с помощью + # +.

/ USR / местные / и т.д. / smokeping / конфигурации

. . .
*** Slaves ***
secrets=/usr/local/etc/smokeping/smokeping_secrets
+boomer
display_name=boomer
color=0000ff

+slave2
display_name=another
color=00ff00
. . .

Оставьте этот файл открытым, так как мы продолжим редактировать его на следующем шаге, чтобы установить цели SmokePing.

Шаг 4 - Определение целей

Последнее, что мы добавим в файл конфигурации SmokePing - это цели. Перефразируя объяснение SmokePing, targets - это иерархический список хостов, которые отмечают конечные точки сетевых подключений, которые должна отслеживать система. Каждая цель будет указывать, какой probe использовать, который интегрирует внешнюю команду ping в SmokePing (например, http://fping.org/ [+ fping +]).

В этом руководстве мы настроим конфигурацию, которая отслеживает задержку между вашим сервером и двумя зеркалами FreeBSD + pkg +. Мы создадим три графика: два, которые показывают задержку для каждого из двух зеркальных серверов независимо, и один, который показывает задержку обоих зеркальных серверов одновременно.

Цели настраиваются в разделе * Targets * файла конфигурации SmokePing. Есть много переменных, которые вы можете использовать для настройки ваших целей, но здесь мы просто будем использовать следующее:

  • * probe *: команда ping, используемая для проверки задержки.

  • * menu *: меню по умолчанию для отображения в графическом интерфейсе.

  • * title *: заголовок соответствующей страницы SmokePing.

  • * примечание *: текст, который появится на странице.

  • * хост *: IP-адрес или конечная точка имени хоста.

Сначала удалите существующий пример конфигурации, чтобы конец вашего файла выглядел следующим образом:

  • Цели ** Раздел в / usr / local / etc / smokeping / config

. . .
*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
        Here you will learn all about the latency of our network

Затем скопируйте и вставьте следующую конфигурацию в существующие настройки по умолчанию.

  • Цели ** Раздел в / usr / local / etc / smokeping / config

. . .
*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
        Here you will learn all about the latency of our network

Давайте объясним, что это делает.

Цели являются иерархическими, то есть вы можете вкладывать уровни целей, чтобы помочь с организацией. Каждый вложенный уровень целей будет создавать новое подменю в графическом интерфейсе SmokePing, отображающее различные графики.

В нашей конфигурации строка + означает, что мы определяем вложенный уровень целей. Вложенным целям будут присваиваться значения их родительской конфигурации, поэтому нам не нужно снова добавлять строку + probe = FPing +, если мы хотим, чтобы эти цели использовали один и тот же зонд. Однако мы обновили переменные + title + и + menu + для нового подраздела, поэтому страница на сайте будет иметь другой заголовок и меню.

Строки +++ pkgmir_ + означают, что мы определяем второй вложенный уровень, который включает в себя две цели. У них есть переменная * host * для адреса конечной точки, которая является двумя нашими зеркальными серверами FreeBSD + pkg +.

Приведенная выше конфигурация создаст один график на цель. Под ним добавьте еще один раздел, чтобы объединить несколько целей в один график.

  • Цели ** Раздел в / usr / local / etc / smokeping / config

. . .
   ++ pkgmir_ydx
   menu = FreeBSD pkg Mirror (YDX)
   title = FreeBSD pkg Mirror Hosted by Yandex, Russia
   host = pkg0.ydx.freebsd.org

Обратите внимание, что в этом разделе используются две цели, которые мы уже настроили (+ / target / pkgmir_nyi + и + / target / pkgmir_ydx +).

Наконец, сохраните и закройте файл. Конфигурация SmokePing полностью настроена, поэтому давайте подключим Apache и SmokePing и запустим соответствующие сервисы.

Шаг 5 - Подключение и включение сервисов

Создайте файл конфигурации для Apache в + / usr / local / etc / apache24 / Includes / + с именем + smokeping.conf +.

sudo ee /usr/local/etc/apache24/Includes/smokeping.conf

Здесь мы добавим информацию, необходимую Apache для обработки запросов, в веб-интерфейс SmokePing. Скопируйте и вставьте следующее в новый файл:

/usr/local/etc/apache24/Includes/smokeping.conf

ScriptAlias /smokeping.fcgi /usr/local/smokeping/htdocs/smokeping.fcgi
Alias       /smokeping      /usr/local/smokeping/htdocs/
<Directory "/usr/local/smokeping/htdocs/">
       AddHandler      fcgid-script .fcgi
       AllowOverride   None
       DirectoryIndex  index.html smokeping.fcgi
       Options         FollowSymLinks ExecCGI
       Require         all granted
</Directory>

Это сообщает Apache, где искать файлы SmokePing, и гарантирует, что он использует FastCGI.

Конфигурация службы по умолчанию для Apache и SmokePing не запускает процессы при загрузке. Чтобы изменить это, выполните следующие две команды.

sudo sysrc apache24_enable="YES"
sudo sysrc smokeping_enable="YES"

Вывод вышеупомянутых двух команд должен выглядеть следующим образом:

Outputapache24_enable:  -> YES
smokeping_enable:  -> YES

Теперь вы можете запустить службу Apache.

sudo service apache24 start

Если он начнется успешно, вы увидите:

OutputPerforming sanity check on apache24 configuration:
Syntax OK
Starting apache24.

Если нет, вы увидите ошибку, которую вы можете использовать для устранения проблем в файле конфигурации. Наконец, запустите сервис SmokePing.

sudo service smokeping start
OutputStarting smokeping.
Note: logging to syslog as local0/info.
Daemonizing /usr/local/bin/smokeping ...

Все работает, поэтому давайте посмотрим на наши графики в действии.

Шаг 6 - Доступ к веб-интерфейсу SmokePing

Вы можете получить доступ к веб-интерфейсу SmokePing, посетив + http: /// smokeping + в вашем любимом браузере. Вы увидите страницу с заголовком и примечанием, указанными в шаге 5. Если вы не изменили ни одно из значений, это будет выглядеть так:

изображение: https: //assets.digitalocean.com/articles/smokeping/GVyPSgX.png [домашняя страница SmokePing]

Вы можете увидеть свои графики, перемещаясь по меню слева. Обратите внимание на опции * Targets * и * Multi Targets * в меню; это те цели, которые мы определили в https://www.digitalocean.com/community/tutorials/how-to-track-network-latency-with-smokeping-on-freebsd-11#step-5-%E2%80% 94-подключение-и-включение-услуги [Шаг 5].

Нажмите на * Цели *. Вы увидите первые два графика, которые мы определили, по одному для каждого зеркального сервера. Слева вы увидите вложенный список целей, который отражает наш файл конфигурации.

изображение: https: //assets.digitalocean.com/articles/smokeping/x4HUZdh.png [Целевые графики SmokePing]

Далее нажмите на * Multi Targets *. Вы увидите комбинированный график здесь.

изображение: https: //assets.digitalocean.com/articles/smokeping/J46es5e.png [Многоцелевой график SmokePing]

Если у вас возникли проблемы, вы можете проверить журналы для помощи в диагностике проблемы. Apache записывает свои журналы в два файла: + / var / log / httpd-access.log + и + / var / log / httpd-error.log +. SmokePing имеет один файл журнала, который называется + / var / log / smokeping.log +. Помните, что если вы измените конфигурацию SmokePing, вам необходимо перезагрузить демон с помощью + sudo service smokeping reload +.

Заключение

В этом руководстве вы настроили SmokePing с Apache и создали несколько примеров зондов для тестирования журналирования и построения графиков. Отсюда вы можете настроить свои зонды и графики так, как вам нравится. SmokePing имеет много других функций, таких как ведомые устройства, оповещения и поддержка вашего собственного почтового сервера. Ознакомьтесь с SmokePing официальной документацией для получения более подробной информации.

Related