FreeBSD

Smokeping

Smokeping – утилита мониторинга состояния каналов. Удобна она тем, что отображает все состояния в виде графиков. А графики – это как все отлично понимают, самая наглядная вещь. Помимо мониторинга задержек, с помощью Smokeping можно контролировать скорость реакции сервисов на запросы. Это тоже довольно интересная тема. По возрастанию времени ответа, допустим, вебсервера, можно судить о скорости генерации страниц и о том, насколько он эффективно работает и коственным путем отмечать повышение нагрузки на него. То же самое можно делать и с почтовым сервером и с ДНС, в общем практически с любым сервисом.

Ставится Smokeping из портов:

cd /usr/ports/net-mgmt/smokeping/
make install clean

В начале будет диалог конфигурации:

---------------------------------------------------------------------¬
¦                  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              ¦ ¦
+-L------------------------------------------------------------------+
¦                       [  OK  ]       Cancel                        ¦
L---------------------------------------------------------------------

После того, как мы собрали и поставили Smokeping можно приступать к настройке. Настройка состоит из 2-х частей. Сначала настроим саму пинговалку. Настройки хранятся в файле /usr/local/etc/smokeping/config А содержимое у него такое:

#Основная секция 
#То что выделено * и + - это составные части конфига
#Звезды это я так понимаю разделы, а + -ми выделены секции.
#Достаточно удобно сделано, можно создавать иерархию, свитчи к свитчам,
#cервера к серверам, клиентов в отдельную секцию, сервисы в отдельную
*** General ***
#Общие параметры
owner    = NOC xxx
#Контактный емейл
contact  = noc@xxx.org.ua
#Почтовый сервер, через который отправлять уведомления
mailhost = mail.xxx.org.ua
#Основные пути. Ничего менять не пришлось, только сендмейл оказался по неправильному пути
sendmail = /usr/sbin/sendmail
imgcache = /usr/local/smokeping/htdocs/img
imgurl   = img
datadir  = /usr/local/var/smokeping
piddir  = /usr/local/var/smokeping
#Урл сервера
cgiurl   = http://smokeping.xxx.org.ua/smokeping.cgi
#Шаблон почтового сообщения
smokemail = /usr/local/etc/smokeping/smokemail
tmail = /usr/local/etc/smokeping/tmail
#Syslog фасилити от которого выдаются сообщения
syslogfacility = local0

#Секция уведомлений, настраиваются адрес отправителя и получателя.
*** Alerts ***
to = noc@xxx.org.ua
from = noc@xxx.org.ua

# Описание потерь
+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 - это секция наиболее интересных графиков
+ charts

menu = Charts
title = The most interesting destinations
#Раздел интересных графиков, stddev - тут будет отображаться график с наибольшим разбросом значений. 
++ stddev
sorter = StdDev(entries=>4)
title = Top Standard Deviation
menu = Std Deviation
format = Standard Deviation %f
# max - с максимальной задержкой
++ 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
+ FPing

binary = /usr/local/sbin/fping

# Проверка с помощью утилиты curl, с ее помощью можно проверять FTP и HTTP сервера 
+ Curl
binary = /usr/local/bin/curl
step = 60

# Проверка с помощью утилиты echoping smtp серверов
+ EchoPingSmtp
# Проверка с помощью утилиты echoping веб серверов
+ EchoPingHttp
# Проверка с помощью утилиты echoping днс серверов
+ EchoPingDNS

# Теперь секция, что же мы будем опрашивать 
*** Targets ***
#Fping устанавливаем как опрос по умолчанию
probe = FPing

# Тут мы начинаем настраивать мониторинг - это корневой раздел меню
menu = Top
title = Our Network Probes
remark = Welcome to the our Net.
#Поскольку мы мониторим только один сервер, делаем его корневым
#А подразделами будут сервисы которые на нем живут.
#В описании сервера не указываем type проверки, будет использоваться тип по умолчанию
#а именно FPing
#Если корневой раздел не пройдет проверки FPing, опрос сервисов
#проводится не будет.
+ xxx
menu = xxxServer
title = xxxServer
host = xxx.org.ua
#Проверка работы вебсервера с помощью CURL
++ xxxWebCurl
 menu = xxxWebCurl
 title = Web Server xxx.org.ua / HTTP
 probe = Curl
 host = www.xxx.org.ua
#Если вебсервер живет не на порту 80, а к примеру на 8080,
#то нужно указать urlformat=urlformat = http://%host%:8089/
 urlformat = http://%host%/
#Проверка FTP сервера
++ xxxFTP
 menu = xxxFTP
 title = FTP Server xxx.org.ua / FTP
 probe = Curl
 host = xxx.org.ua
 urlformat = ftp://%host%/
#Проверка работы вебсервера с помощью EchoPing
++ xxxWithEchoPing
 menu = xxxEchoPing
 title = Web Server xxx.org.ua / HTTP
 probe = EchoPingHttp
 host = www.xxx.org.ua
#Проверка работы почтового с помощью EchoPing
++ xxxMail
 menu = xxxMail
 title = Mail Server xxx.org.ua
 probe = EchoPingSmtp
 host = xxx.org.ua
#Проверка работы DNS сервера с помощью EchoPing
++ xxxDNS
 menu = xxxDNS
 title = DNS Server xxx.org.ua
 probe = EchoPingDNS
 host = xxx.org.ua
 dns_request = xxx.org.ua

На этом настройка Smokeping завершена, нужнщ ему разрешить запускаться.

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

А теперь запустить его:

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

Сам демон сбора статистики запущен. Теперь нужно настроить отображение. Для этого нам нужен установленый Apache, а в нем я настроил виртуальный хост smokeping.xxx.org.ua:

<VirtualHost *:80>
    ServerAdmin noc@xxx.org.ua
  DocumentRoot /usr/local/smokeping/htdocs
  ScriptAlias /smokeping.cgi /usr/local/smokeping/htdocs/smokeping.cgi
  ScriptAlias /tr.cgi /usr/local/smokeping/htdocs/tr.cgi
  ServerName smokeping.xxx.org.ua
  DirectoryIndex smokeping.cgi
</VirtualHost>

Насколько полезным был этот пост?

Нажмите на звезду, чтобы оценить!

Средний рейтинг 5 / 5. Голосов: 1

Пока оценок нет! Будьте первым, поставь свою оценку этому посту.

Мы сожалеем, что этот пост не был полезен для вас!

Давайте улучшим этот пост!

Расскажите, как мы можем улучшить этот пост?

Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments
Back to top button
0
Would love your thoughts, please comment.x
()
x