Июн 27 2010

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              │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

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

#Основная секция 
#То что выделено * и + - это составные части конфига
#Звезды это я так понимаю разделы, а + -ми выделены секции.
#Достаточно удобно сделано, можно создавать иерархию, свитчи к свитчам,
#cервера к серверам, клиентов в отдельную секцию, сервисы в отдельную
*** General ***
#Общие параметры
owner    = NOC Hilik
#Контактный емейл
contact  = noc@hilik.org.ua
#Почтовый сервер, через который отправлять уведомления
mailhost = mail.hilik.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.hilik.org.ua/smokeping.cgi
#Шаблон почтового сообщения
smokemail = /usr/local/etc/smokeping/smokemail
tmail = /usr/local/etc/smokeping/tmail
#Syslog фасилити от которого выдаются сообщения
syslogfacility = local0
 
#Секция уведомлений, настраиваются адрес отправителя и получателя.
*** Alerts ***
to = noc@hilik.org.ua
from = noc@hilik.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, опрос сервисов
#проводится не будет.
+ Hilik
menu = HilikServer
title = HilikServer
host = hilik.org.ua
#Проверка работы вебсервера с помощью CURL
++ HilikWebCurl
 menu = HilikWebCurl
 title = Web Server hilik.org.ua / HTTP
 probe = Curl
 host = www.hilik.org.ua
#Если вебсервер живет не на порту 80, а к примеру на 8080,
#то нужно указать urlformat=urlformat = http://%host%:8089/
 urlformat = http://%host%/
#Проверка FTP сервера
++ HilikFTP
 menu = HilikFTP
 title = FTP Server hilik.org.ua / FTP
 probe = Curl
 host = hilik.org.ua
 urlformat = ftp://%host%/
#Проверка работы вебсервера с помощью EchoPing
++ HilikWithEchoPing
 menu = HilikEchoPing
 title = Web Server hilik.org.ua / HTTP
 probe = EchoPingHttp
 host = www.hilik.org.ua
#Проверка работы почтового с помощью EchoPing
++ HilikMail
 menu = HilikMail
 title = Mail Server hilik.org.ua
 probe = EchoPingSmtp
 host = hilik.org.ua
#Проверка работы DNS сервера с помощью EchoPing
++ HilikDNS
 menu = HilikDNS
 title = DNS Server hilik.org.ua
 probe = EchoPingDNS
 host = hilik.org.ua
 dns_request = hilik.org.ua

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

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

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

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

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

<VirtualHost *:80>
    ServerAdmin noc@hilik.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.hilik.org.ua
  DirectoryIndex smokeping.cgi
</VirtualHost>
 
После того, как рестартанете или HUPните Apache, можно открывать в браузере и наблюдать статистику задержек по вашему серверу или сети.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть