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



