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

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  = [email protected]
# Адрес почтового сервера для отправки уведомлений
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 = [email protected]
from = [email protected]

# Описание потерь
+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/


	Options Includes ExecCGI
	DirectoryIndex smokeping.cgi
	AddHandler cgi-script .cgi
	AllowOverride All
	Order allow,deny
	Allow from All

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

# apachectl graceful

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

smokeping

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

smokeping

smokeping

smokeping

Источник http://muff.kiev.ua/content/smokeping-otrisovka-latentnosti-resursov

Запись опубликована в рубрике *Unix,*Linux, FreeBSD. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91