Отслеживание латентности сети с помощью SmokePing в FreeBSD 11

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

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

В этом учебнике рассказывается, как установить и настроить SmokePing на Apache в FreeBSD.

Требования

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

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

Обновите индекс пакетов:

sudo pkg update

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

sudo pkg install ap24-mod_fcgid

Чтобы подтвердить установку, нажмите Y.

2: Настройка Apache

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

Откройте файл /usr/local/etc/apache24/httpd.conf:

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

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

. . .
# 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. admin@your-domain.com
#
ServerAdmin your_email_address
#
# 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 your_server_ip
. . .

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

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

Вставьте в файл такие строки:

LoadModule  fcgid_module            libexec/apache24/mod_fcgid.so

Это запустит модуль и укажет путь к нему.

3: Установка и настройка SmokePing

Пакет SmokePing есть в репозитории системы, потому его легко установить.

sudo pkg install smokeping

Конфигурационный файл SmokePing находится в /usr/local/etc/smokeping/config. В нем нужно изменить пару параметров:

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

В разделе ***General*** нужно отредактировать 4 строки:

  • owner: здесь нужно указать ваше имя.
  • contact: ваш адрес электронной почты.
  • imgurl: IP-адрес сервера.
  • cgiurl: тоже IP-адрес сервера.

Так файл будет выглядеть в результате:

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

SmokePing поддерживает архитектуру master/slave. Но в этом мануале SmokePing устанавливается только на одну машину. Следовательно, раздел *** Slaves *** нужно закомментировать, поставив # в начале каждой строки.

. . .
# *** Slaves ***
# secrets=/usr/local/etc/smokeping/smokeping_secrets
# +boomer
# display_name=boomer
# color=0000ff
#
# +slave2
# display_name=another
# color=00ff00
. . .

Пока что не закрывайте файл.

4: Настройка целей SmokePing

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

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

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

  • probe: команда ping для проверки латентности.
  • menu: меню GUI по умолчанию.
  • title: заголовок соответствующей страницы SmokePing.
  • remark: текст, который будет отображаться на этой странице.
  • host: IP-адрес или имя хоста конечной точки.

Сначала нужно удалить из файла образец конфигурации целей. Теперь файл будет заканчиваться так:

. . .
*** 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

Скопируйте и вставьте следующие параметры:

. . .
*** 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
+ targets
menu = Targets
title = Targets' Latency Probed with fping
++ pkgmir_nyi
menu = FreeBSD pkg Mirror (NYI)
title = FreeBSD pkg Mirror Hosted by New York Internet, USA
host = pkg0.nyi.freebsd.org
++ pkgmir_ydx
menu = FreeBSD pkg Mirror (YDX)
title = FreeBSD pkg Mirror Hosted by Yandex, Russia
host = pkg0.ydx.freebsd.org

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

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

Строки ++ pkgmir_xxx определяют второй вложенный уровень, который включает две цели. Здесь переменная host определяет адрес конечных точек – зеркал pkg.

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

. . .
++ pkgmir_ydx
menu = FreeBSD pkg Mirror (YDX)
title = FreeBSD pkg Mirror Hosted by Yandex, Russia
host = pkg0.ydx.freebsd.org
+ multi
menu = Multi Targets
title = Multi Targets
++ multi_pkgmir
menu = FreeBSD pkg Mirrors
title = FreeBSD pkg Mirrors
host = /targets/pkgmir_nyi /targets/pkgmir_ydx

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

Сохраните и закройте файл. Теперь можно настроить взаимодействие Apache и SmokePing и запустить все требуемые сервисы.

5: Включение сервисов

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

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

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

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»

Команды вернут:

apache24_enable:  -> YES
smokeping_enable:  -> YES

Теперь можно запустить Apache:

sudo service apache24 start
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.

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

Запустите SmokePing.

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

Теперь нужно проверить графики.

6: Веб-интерфейс SmokePing

Вы можете получить доступ к веб-интерфейсу SmokePing в браузере по ссылке:

http://your_server_ip/smokeping

Вы увидите страницу с заголовком и примечанием, указанным в разделе 5. Например:

Network Latency Grapher
Welcome to the SmokePing website of xxx Company. Here you will learn all about the latency of our network.

Вы можете просмотреть графики с помощью меню слева. Обратите внимание на параметры Targets и Multi Targets; это цели, которые вы определили в разделе 5.

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

Затем выберите Multi Targets. Вы увидите общий график.

Если у вас возникли проблемы, вы можете проверить логи, чтобы получить справку по диагностике проблемы. 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.

Tags: , , ,