Smokeping - отрисовка латентности ресурсов

Версия для печатиОтправить другуPDF version

Smokeping - утилита для накопления информации о задержках в передаче и потере пакетов. Результаты отображаются в виде графика (прорисовка при помощи RRDtool). Уже несколько раз устанавливал на клиентские маршрутизаторы, и вот собрался наваять статью по этому поводу.

Установку выполним как всегда, из портов:

# cd /usr/ports/net-mgmt/smokeping && make install clean && rehash

Опции установки отмечены следующим образом:

Options for smokeping 2.4.2_6

[X] FPING     Support for fping probes
[X] ECHOPING  Support for EchoPing probes
[X] CURL      Support for Curl probes
[ ] LDAP      Support for LDAP probes
[ ] LDAPSSL   Support for SSL-enabled LDAP probes
[ ] RADIUS    Support for Radius probes
[X] TELNET    Support for TelnetIOSPing probes
[X] DNS       Support for AnotherDNS probes

После установки, что порадовало, отобразились инструкции по установке:

SmokePing has now been installed in /usr/local/smokeping/.

NOTE: A set of sample configuration files have been installed:

  /usr/local/etc/smokeping/config
  /usr/local/etc/smokeping/smokemail
  /usr/local/etc/smokeping/basepage.html
  /usr/local/etc/smokeping/tmail

You *MUST* edit these to suit your requirements. Please read the
manpages 'smokeping_install' and 'smokeping_config' for further
details on installation and configuration.

If you are upgrading from a previous version of Smokeping, the
manpage 'smokeping_upgrade' may be of help.

Once configured, you can start SmokePing by adding:

  smokeping_enable="YES"

to /etc/rc.conf, and then running, as root:

  /usr/local/etc/rc.d/smokeping start

To enable Apache web access, add something like the following to
your /usr/local/etc/apache/httpd.conf:

  DocumentRoot /usr/local/smokeping/htdocs
  ScriptAlias /smokeping.cgi /usr/local/smokeping/htdocs/smokeping.cgi
  ScriptAlias /tr.cgi /usr/local/smokeping/htdocs/tr.cgi

Enjoy!

Что ж... Приступим к рихтованию конфигурационного файла - /usr/local/etc/smokeping/config. Следует обратить внимание на тот факт, что символы * и + являются служебными, тоесть частью конфигурации. Звездочками выделены разделы, а плюсами - подразделы.

Конфигурационный файл вышел на славу - примеров достаточно. Мониторятся два сервера в Украине и два - в Таиланде (а почему бы и нет? Есть там два офиса...). Отдельно - сервера по всему миру, разбиты на подгрупы по частям света. Отдельно - Украина и Россия.

Собственно, в результате получаем такой /usr/local/etc/smokeping/config:

*** General ***
 
# Указываем владельца
owner    = Companyname Co. ltd.
# Контактный e-mail
contact  = support [at] domain [dot] com
# Адрес почтового сервера для отправки уведомлений
mailhost = relay.domain.com
# Пути к файлам
# Путь изменяем только к Sendmail (так понимаю,
# програма мигрировала на FreeBSD из Linux
sendmail = /usr/sbin/sendmail
imgcache = /usr/local/smokeping/htdocs/img
imgurl   = img
datadir  = /usr/local/var/smokeping
piddir  = /usr/local/var/smokeping
# Указываем URL
cgiurl   = http://192.168.100.26/smokeping/smokeping.cgi
# Шаблон почтового сообщения
smokemail = /usr/local/etc/smokeping/smokemail
tmail = /usr/local/etc/smokeping/tmail
# Номер facility Sysloga, куда будут отправляться сообщения
syslogfacility = local0
 
*** Alerts ***
# Кому и от чьего имени отправлять уведомления
to = support [at] domain [dot] com
from = support [at] domain [dot] com
 
# Описание потерь
+someloss
type = loss
# in percent
pattern = >0%,*12*,>0%,*12*,>0%
comment = loss 3 times  in a row
 
*** Database ***
 
step     = 300
pings    = 20
 
AVERAGE  0.5   1  1008
AVERAGE  0.5  12  4320
    MIN  0.5  12  4320
    MAX  0.5  12  4320
AVERAGE  0.5 144   720
    MAX  0.5 144   720
    MIN  0.5 144   720
 
*** Presentation ***
# Шаблон отображения в браузере
template = /usr/local/etc/smokeping/basepage.html
 
+ charts
menu = Charts
title = The most interesting destinations
# График с наибольшим разбросом значений
++ stddev
sorter = StdDev(entries=>4)
title = Top Standard Deviation
menu = Std Deviation
format = Standard Deviation %f
# График с наибольшей задержкой
++ max
sorter = Max(entries=>5)
title = Top Max Roundtrip Time
menu = by Max
format = Max Roundtrip Time %f seconds
# График с наибольшими потерями
++ loss
sorter = Loss(entries=>5)
title = Top Packet Loss
menu = Loss
format = Packets Lost %f
# График среднего времени
++ median
sorter = Median(entries=>5)
title = Top Median Roundtrip Time
menu = by Median
format = Median RTT %f seconds
# Настройка визуализации графиков
+ overview
width = 600
height = 50
range = 10h
+ detail
width = 600
height = 200
unison_tolerance = 2
"Last 3 Hours"    3h
"Last 30 Hours"   30h
"Last 10 Days"    10d
"Last 400 Days"   400d
 
*** Probes ***
# Виды опросов, которые используются. Необходимо перечислить все.
 
# Пингование с помощью FPing
+ FPing
binary = /usr/local/sbin/fping
 
# FTP и HTTP сервера проверяем с помощью curl
+ Curl
binary = /usr/local/bin/curl
step = 60
 
# SMTP - echoping smtp
+ EchoPingSmtp
# HTTP - echoping http
+ EchoPingHttp
# DNS - echoping dns
+ EchoPingDNS
 
*** Targets ***
# Секция, в которой описываем опрашиваемые ресурсы
 
# Указываем FPing как опрос по умолчанию
probe = FPing
 
# Настройка мониторинга. Корневой раздел.
menu = Top
title = Network Resource
remark = Companyname Co. ltd.
 
# Для начала секция локальных ресурсов.
+  Companyname
menu = Companyname network
title = Companyname network
 
++ UA
menu = Ukrainian network
title = Ukrainian network
 
+++  Relay
menu = Mail Server
title = Mail Server
host = relay.domain.com
 
# Проверка HTTP (Curl)
++++ HTTPCurl
menu = HTTP
title = Web Server / HTTP
probe = Curl
host = relay.domain.com
urlformat = http://%host%/
 
# Проверка HTTP (EchoPing)
++++ HTTPEchoPing
menu = HTTP
title = Web Server / HTTP
probe = EchoPingHttp
host = relay.domain.com
 
# Проверка FTP (Curl)
++++ FTPCurl
menu = FTP
title = FTP Server / FTP
probe = Curl
host = relay.domain.com
urlformat = ftp://%host%/
 
# Проверка SMTP (EchoPing)
++++ SMTP
menu = SMTP
title = SMTP Server
probe = EchoPingSmtp
host = relay.domain.com
 
# Проверка DNS (EchoPing)
++++ DNS
menu = DNS
title = DNS Server
probe = EchoPingDNS
host = relay.domain.com
dns_request = relay.domain.com
 
+++  KievOffice
menu = Kiev Office
title = Kiev Office
host = 192.168.213.130
 
# Проверка HTTP (EchoPing)
++++ HTTPEchoPing
menu = HTTP
title = Web Server / HTTP
probe = EchoPingHttp
host = 192.168.213.130
 
++ TH
menu = Thailand network
title = Thailand network
 
+++ PattayaOffice
menu = Pattaya Office
title = Pattaya Office
host = 192.168.100.18
 
# Проверка FTP (Curl)
++++ FTPCurl
menu = FTP
title = FTP Server / FTP
probe = Curl
host = 192.168.100.18
urlformat = ftp://%host%/
 
# Проверка HTTP (EchoPing)
++++ HTTPEchoPing
menu = HTTP
title = Web Server / HTTP
probe = EchoPingHttp
host = 192.168.100.18
 
+++ PhuketOffice
menu = Phuket Office
title = Phuket Office
host = 192.168.124.177
 
# Проверка HTTP (Curl)
++++ HTTPCurl
menu = HTTP
title = Web Server / HTTP
probe = Curl
host = 192.168.124.177
# Здесь веб-сервер слушает на 88 порту
urlformat = http://%host%:88/
 
+ Ukraine
menu = Ukraine
title = UA-IX
 
++ UarNet_AS3255
title = UarNet_AS3255
host = www.uar.net
++ DonbassNetwork_AS5598
title = DonbassNetwork_AS5598
host = nic.dn.ua
++ UkrNet_AS8856
title = UkrNet_AS8856
host = ukr.net
++ Navigator_AS13121
title = Navigator_AS13121
host = nav.kiev.ua
++ Cyfra_AS25386
title = Cyfra_AS25386
host = www.cyfra.ua
 
+ Russia
menu = Russian
title = Russian resources
 
++ TeliaRussia_AS1299
title = TeliaRussia_AS1299
host = lg.telia.ru
++ RUSNet_AS3277
title = RUSNet_AS3277
host = www.rusnet.ru
++ Relcom_AS2118
title = Relcom_AS2118
host = www.relcom.ru
++ Zenon_AS6903
title = Zenon_AS6903
host = zenon.net
++ MAcomnet_AS8470
title = MAcomnet_AS8470
host = www.macomnet.net
 
+ Europa
menu = Europa
title = European resources
 
++ BelNet-Belgium_AS2611
title = BelNet-Belgium_AS2611
host = www.belnet.be
++ CoreTecIT-Austria_AS3248
title = CoreTecIT-Austria_AS3248
host = www.coretec.at
++ SonnIT-Denmark_AS8807
title = SonnIT-Denmark_AS8807
host = www.area51.dk
++ SpaceNet-Germany_AS5539
title = SpaceNet-Germany_AS5539
host = www.space.net
++ ZonePro-France_AS29351
title = ZonePro-France_AS29351
host = www.zonepro.net
 
+ Asia
menu = Asia
title = Asian resources
 
++ InstituteHighEnergy-China_AS7497
title = InstituteHighEnergy-China_AS7497
host = v-www.ihep.ac.cn
++ SingNet-Singapore_AS3758
title = SingNet-Singapore_AS3758
host = networktools.singnet.com.sg
++ Linkwan_Taiwan_AS4808
title = Linkwan_Taiwan_AS4808
host = www.linkwan.com
++ BoraNet-Korea-AS3786
title = BoraNet-Korea-AS3786
host = www.bora.net
++ Nexlinx-Pakistan_AS17563
title = Nexlinx-Pakistan_AS17563
host = lg.nexlinx.net.pk
 
+ America
menu = Amerika
title = American resources
 
++ University_Washington-USA-AS73
title = University_Washington-USA-AS73
host = www.washington.edu
++ Neoclan-Mexico_AS11172
title = Neoclan-Mexico_AS11172
host = www.neoclan.net.mx
++ Telmex-Chile_AS6429
title = Telmex-Chile_AS6429
host = lg.telmexchile.cl
++ InternetDirect-Canada_AS7271
title = InternetDirect-Canada_AS7271
host = www.direct.ca
++ RedeRioDeComputadores-Brasil_AS2715
title = RedeRioDeComputadores-Brasil_AS2715
host = guanabara.rederio.br
 

С конфигурационным файлом разобрались. Добавим загрузку smokeping при запуске системы:

# echo '# Smokeping' >> /etc/rc.conf
# echo 'smokeping_enable="YES"' >> /etc/rc.conf

Собственно, сам запуск:

# sh /usr/local/etc/rc.d/smokeping start

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

Теперь дело за малым - добавить в Apache поддержку Smokeping. Добавим в /usr/local/etc/apache22/httpd.conf такой блок:

Alias /smokeping/ /usr/local/smokeping/htdocs/

<Directory /usr/local/smokeping/htdocs>
	Options Includes ExecCGI
	DirectoryIndex smokeping.cgi
	AddHandler cgi-script .cgi
	AllowOverride All
	Order allow,deny
	Allow from All
</Directory>

Перезапускаем Apache, чтобы изменения вступили в силу:

# apachectl graceful

В браузере набираем URL http://IP-SERVERA/smokeping/ и попадаем на главную страницу Smokeping:

smokeping

Необходимо время, чтобы собрать статистику. В результате будем иметь следующие графики (пример с другого сервера, где мониторятся только доступность серверов):

smokeping

smokeping

smokeping

 

Ваша оценка: Нет Средняя: 5 (3 голоса)

Вставай, Україно!

Литература