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

  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:a3d872b2684e8ce16801ea17d94dfc0c' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\"><strong>Smokeping</strong> - утилита для накопления информации о задержках в передаче и потере пакетов. Результаты отображаются в виде графика (прорисовка при помощи RRDtool). Уже несколько раз устанавливал на клиентские маршрутизаторы,&nbsp;и вот собрался наваять статью по этому поводу.</p>\n<p class=\"rtejustify\">Установку выполним как всегда,&nbsp;из портов:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cd /usr/ports/net-mgmt/smokeping &amp;&amp; make install clean &amp;&amp; rehash</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Опции установки отмечены следующим образом:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p class=\"rtecenter\"><strong>Options for smokeping 2.4.2_6</strong></p>\n<pre>\n[X] FPING Support for fping probes\n[X] ECHOPING Support for EchoPing probes\n[X] CURL Support for Curl probes\n[ ] LDAP Support for LDAP probes\n[ ] LDAPSSL Support for SSL-enabled LDAP probes\n[ ] RADIUS Support for Radius probes\n[X] TELNET Support for TelnetIOSPing probes\n[X] DNS Support for AnotherDNS probes</pre></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">После установки,&nbsp;что порадовало,&nbsp;отобразились инструкции по установке:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<pre>\nSmokePing has now been installed in /usr/local/smokeping/.\n\n</pre><pre>\nNOTE: A set of sample configuration files have been installed:\n\n</pre><pre>\n /usr/local/etc/smokeping/config\n /usr/local/etc/smokeping/smokemail\n /usr/local/etc/smokeping/basepage.html\n /usr/local/etc/smokeping/tmail\n\n</pre><pre>\nYou *MUST* edit these to suit your requirements. Please read the\nmanpages \'smokeping_install\' and \'smokeping_config\' for further\ndetails on installation and configuration.\n\n</pre><pre>\nIf you are upgrading from a previous version of Smokeping, the\nmanpage \'smokeping_upgrade\' may be of help.\n\n</pre><pre>\nOnce configured, you can start SmokePing by adding:\n\n</pre><pre>\n smokeping_enable=&quot;YES&quot;\n\n</pre><pre>\nto /etc/rc.conf, and then running, as root:\n\n</pre><pre>\n /usr/local/etc/rc.d/smokeping start\n\n</pre><pre>\nTo enable Apache web access, add something like the following to\nyour /usr/local/etc/apache/httpd.conf:\n\n</pre><pre>\n DocumentRoot /usr/local/smokeping/htdocs\n ScriptAlias /smokeping.cgi /usr/local/smokeping/htdocs/smokeping.cgi\n ScriptAlias /tr.cgi /usr/local/smokeping/htdocs/tr.cgi\n\n</pre><pre>\nEnjoy!\n</pre></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Что ж... Приступим к рихтованию конфигурационного файла - <strong>/usr/local/etc/smokeping/config</strong>. Следует обратить внимание на тот факт,&nbsp;что символы <strong>*</strong> и <strong>+</strong>&nbsp;являются служебными,&nbsp;тоесть частью конфигурации. Звездочками выделены разделы,&nbsp;а плюсами - подразделы.</p>\n<p class=\"rtejustify\">Конфигурационный файл вышел на славу - примеров достаточно. Мониторятся два сервера в Украине и два - в Таиланде (а почему бы и нет? Есть там два офиса...). Отдельно - сервера по всему миру,&nbsp;разбиты на подгрупы по частям света. Отдельно - Украина и Россия.</p>\n<p class=\"rtejustify\">Собственно,&nbsp;в результате получаем такой <strong>/usr/local/etc/smokeping/config</strong>:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<div>*** General ***</div>\n<div>&nbsp;</div>\n<div># Указываем владельца<br />\n owner&nbsp;&nbsp;&nbsp; = Companyname Co. ltd.<br />\n # Контактный e-mail<br />\n contact&nbsp; = <span class=\"spamspan\"><span class=\"u\">support</span> [at] <span class=\"d\">domain [dot] com</span></span><br />\n # Адрес почтового сервера для отправки уведомлений<br />\n mailhost = relay.domain.com<br />\n # Пути к файлам<br />\n # Путь изменяем только к Sendmail (так понимаю,<br />\n # програма мигрировала на FreeBSD из Linux<br />\n sendmail = /usr/sbin/sendmail<br />\n imgcache = /usr/local/smokeping/htdocs/img<br />\n imgurl&nbsp;&nbsp; = img<br />\n datadir&nbsp; = /usr/local/var/smokeping<br />\n piddir&nbsp; = /usr/local/var/smokeping<br />\n # Указываем URL<br />\n cgiurl&nbsp;&nbsp; = <a href=\"http://192.168.100.26/smokeping/smokeping.cgi\" title=\"http://192.168.100.26/smokeping/smokeping.cgi\">http://192.168.100.26/smokeping/smokeping.cgi</a><br />\n # Шаблон почтового сообщения<br />\n smokemail = /usr/local/etc/smokeping/smokemail<br />\n tmail = /usr/local/etc/smokeping/tmail<br />\n # Номер facility Sysloga, куда будут отправляться сообщения<br />\n syslogfacility = local0</div>\n<div>&nbsp;</div>\n<div>*** Alerts ***<br />\n # Кому и от чьего имени отправлять уведомления<br />\n to = <span class=\"spamspan\"><span class=\"u\">support</span> [at] <span class=\"d\">domain [dot] com</span></span><br />\n from = <span class=\"spamspan\"><span class=\"u\">support</span> [at] <span class=\"d\">domain [dot] com</span></span></div>\n<div>&nbsp;</div>\n<div># Описание потерь<br />\n +someloss<br />\n type = loss<br />\n # in percent<br />\n pattern = &gt;0%,*12*,&gt;0%,*12*,&gt;0%<br />\n comment = loss 3 times&nbsp; in a row</div>\n<div>&nbsp;</div>\n<div>*** Database ***</div>\n<div>&nbsp;</div>\n<div>step&nbsp;&nbsp;&nbsp;&nbsp; = 300<br />\n pings&nbsp;&nbsp;&nbsp; = 20</div>\n<div>&nbsp;</div>\n<div>AVERAGE&nbsp; 0.5&nbsp;&nbsp; 1&nbsp; 1008<br />\n AVERAGE&nbsp; 0.5&nbsp; 12&nbsp; 4320<br />\n &nbsp;&nbsp;&nbsp; MIN&nbsp; 0.5&nbsp; 12&nbsp; 4320<br />\n &nbsp;&nbsp;&nbsp; MAX&nbsp; 0.5&nbsp; 12&nbsp; 4320<br />\n AVERAGE&nbsp; 0.5 144&nbsp;&nbsp; 720<br />\n &nbsp;&nbsp;&nbsp; MAX&nbsp; 0.5 144&nbsp;&nbsp; 720<br />\n &nbsp;&nbsp;&nbsp; MIN&nbsp; 0.5 144&nbsp;&nbsp; 720</div>\n<div>&nbsp;</div>\n<div>*** Presentation ***<br />\n # Шаблон отображения в браузере<br />\n template = /usr/local/etc/smokeping/basepage.html</div>\n<div>&nbsp;</div>\n<div>+ charts<br />\n menu = Charts<br />\n title = The most interesting destinations<br />\n # График с наибольшим разбросом значений<br />\n ++ stddev<br />\n sorter = StdDev(entries=&gt;4)<br />\n title = Top Standard Deviation<br />\n menu = Std Deviation<br />\n format = Standard Deviation %f<br />\n # График с наибольшей задержкой<br />\n ++ max<br />\n sorter = Max(entries=&gt;5)<br />\n title = Top Max Roundtrip Time<br />\n menu = by Max<br />\n format = Max Roundtrip Time %f seconds<br />\n # График с наибольшими потерями<br />\n ++ loss<br />\n sorter = Loss(entries=&gt;5)<br />\n title = Top Packet Loss<br />\n menu = Loss<br />\n format = Packets Lost %f<br />\n # График среднего времени<br />\n ++ median<br />\n sorter = Median(entries=&gt;5)<br />\n title = Top Median Roundtrip Time<br />\n menu = by Median<br />\n format = Median RTT %f seconds<br />\n # Настройка визуализации графиков<br />\n + overview<br />\n width = 600<br />\n height = 50<br />\n range = 10h<br />\n + detail<br />\n width = 600<br />\n height = 200<br />\n unison_tolerance = 2<br />\n &quot;Last 3 Hours&quot;&nbsp;&nbsp;&nbsp; 3h<br />\n &quot;Last 30 Hours&quot;&nbsp;&nbsp; 30h<br />\n &quot;Last 10 Days&quot;&nbsp;&nbsp;&nbsp; 10d<br />\n &quot;Last 400 Days&quot;&nbsp;&nbsp; 400d<br />\n &nbsp;</div>\n<div>*** Probes ***<br />\n # Виды опросов, которые используются. Необходимо перечислить все.</div>\n<div>&nbsp;</div>\n<div># Пингование с помощью FPing<br />\n + FPing<br />\n binary = /usr/local/sbin/fping</div>\n<div>&nbsp;</div>\n<div># FTP и HTTP сервера проверяем с помощью curl<br />\n + Curl<br />\n binary = /usr/local/bin/curl<br />\n step = 60</div>\n<div>&nbsp;</div>\n<div># SMTP - echoping smtp<br />\n + EchoPingSmtp<br />\n # HTTP - echoping http<br />\n + EchoPingHttp<br />\n # DNS - echoping dns<br />\n + EchoPingDNS</div>\n<div>&nbsp;</div>\n<div>*** Targets ***<br />\n # Секция, в которой описываем опрашиваемые ресурсы</div>\n<div>&nbsp;</div>\n<div># Указываем FPing как опрос по умолчанию<br />\n probe = FPing</div>\n<div>&nbsp;</div>\n<div># Настройка мониторинга. Корневой раздел.<br />\n menu = Top<br />\n title = Network Resource<br />\n remark =&nbsp;Companyname Co. ltd.</div>\n<div>&nbsp;</div>\n<div># Для начала секция локальных ресурсов.<br />\n +&nbsp; Companyname <br />\n menu = Companyname network<br />\n title = Companyname network</div>\n<div>&nbsp;</div>\n<div>++ UA<br />\n menu = Ukrainian network<br />\n title = Ukrainian network</div>\n<div>&nbsp;</div>\n<div>+++&nbsp; Relay<br />\n menu = Mail Server<br />\n title = Mail Server<br />\n host = relay.domain.com</div>\n<div>&nbsp;</div>\n<div># Проверка HTTP (Curl)<br />\n ++++ HTTPCurl<br />\n menu = HTTP<br />\n title = Web Server / HTTP<br />\n probe = Curl<br />\n host = relay.domain.com<br />\n urlformat = <a href=\"http://%host%/\">http://%host%/</a></div>\n<div>&nbsp;</div>\n<div># Проверка HTTP (EchoPing)<br />\n ++++ HTTPEchoPing<br />\n menu = HTTP<br />\n title = Web Server / HTTP<br />\n probe = EchoPingHttp<br />\n host = relay.domain.com</div>\n<div>&nbsp;</div>\n<div># Проверка FTP (Curl)<br />\n ++++ FTPCurl<br />\n menu = FTP<br />\n title = FTP Server / FTP<br />\n probe = Curl<br />\n host = relay.domain.com<br />\n urlformat = <a href=\"ftp://%host%/\">ftp://%host%/</a></div>\n<div>&nbsp;</div>\n<div># Проверка SMTP (EchoPing)<br />\n ++++ SMTP<br />\n menu = SMTP<br />\n title = SMTP Server<br />\n probe = EchoPingSmtp<br />\n host = relay.domain.com</div>\n<div>&nbsp;</div>\n<div># Проверка DNS (EchoPing)<br />\n ++++ DNS<br />\n menu = DNS<br />\n title = DNS Server<br />\n probe = EchoPingDNS<br />\n host = relay.domain.com<br />\n dns_request = relay.domain.com</div>\n<div>&nbsp;</div>\n<div>+++&nbsp; KievOffice<br />\n menu = Kiev Office<br />\n title = Kiev Office<br />\n host = 192.168.213.130</div>\n<div>&nbsp;</div>\n<div># Проверка HTTP (EchoPing)<br />\n ++++ HTTPEchoPing<br />\n menu = HTTP<br />\n title = Web Server / HTTP<br />\n probe = EchoPingHttp<br />\n host = 192.168.213.130</div>\n<div>&nbsp;</div>\n<div>++ TH<br />\n menu = Thailand network<br />\n title = Thailand network</div>\n<div>&nbsp;</div>\n<div>+++&nbsp;PattayaOffice<br />\n menu = Pattaya Office<br />\n title = Pattaya Office<br />\n host = 192.168.100.18</div>\n<div>&nbsp;</div>\n<div># Проверка FTP (Curl)<br />\n ++++ FTPCurl<br />\n menu = FTP<br />\n title = FTP Server / FTP<br />\n probe = Curl<br />\n host = 192.168.100.18<br />\n urlformat = <a href=\"ftp://%host%/\">ftp://%host%/</a><br />\n &nbsp;</div>\n<div># Проверка HTTP (EchoPing)<br />\n ++++ HTTPEchoPing<br />\n menu = HTTP<br />\n title = Web Server / HTTP<br />\n probe = EchoPingHttp<br />\n host = 192.168.100.18</div>\n<div>&nbsp;</div>\n<div>+++&nbsp;PhuketOffice<br />\n menu = Phuket Office<br />\n title = Phuket Office<br />\n host = 192.168.124.177</div>\n<div>&nbsp;</div>\n<div># Проверка HTTP (Curl)<br />\n ++++ HTTPCurl<br />\n menu = HTTP<br />\n title = Web Server / HTTP<br />\n probe = Curl<br />\n host = 192.168.124.177<br />\n # Здесь веб-сервер слушает на 88 порту<br />\n urlformat = <a href=\"http://%host%:88/\">http://%host%:88/</a></div>\n<div>&nbsp;</div>\n<div>+ Ukraine<br />\n menu = Ukraine<br />\n title = UA-IX<br />\n &nbsp;</div>\n<div>++ UarNet_AS3255<br />\n title = UarNet_AS3255<br />\n host = <a href=\"http://www.uar.net\" title=\"www.uar.net\">www.uar.net</a><br />\n ++ DonbassNetwork_AS5598<br />\n title = DonbassNetwork_AS5598<br />\n host = nic.dn.ua<br />\n ++ UkrNet_AS8856<br />\n title = UkrNet_AS8856<br />\n host = ukr.net<br />\n ++ Navigator_AS13121<br />\n title = Navigator_AS13121<br />\n host = nav.kiev.ua<br />\n ++ Cyfra_AS25386<br />\n title = Cyfra_AS25386<br />\n host = www.cyfra.ua</div>\n<div>&nbsp;</div>\n<div>+ Russia<br />\n menu = Russian<br />\n title = Russian resources</div>\n<div>&nbsp;</div>\n<div>++ TeliaRussia_AS1299<br />\n title = TeliaRussia_AS1299<br />\n host = lg.telia.ru<br />\n ++ RUSNet_AS3277<br />\n title = RUSNet_AS3277<br />\n host = <a href=\"http://www.rusnet.ru\" title=\"www.rusnet.ru\">www.rusnet.ru</a><br />\n ++ Relcom_AS2118<br />\n title = Relcom_AS2118<br />\n host = <a href=\"http://www.relcom.ru\" title=\"www.relcom.ru\">www.relcom.ru</a><br />\n ++ Zenon_AS6903<br />\n title = Zenon_AS6903<br />\n host = zenon.net<br />\n ++ MAcomnet_AS8470<br />\n title = MAcomnet_AS8470<br />\n host = <a href=\"http://www.macomnet.net\" title=\"www.macomnet.net\">www.macomnet.net</a><br />\n &nbsp;</div>\n<div>+ Europa<br />\n menu = Europa<br />\n title = European resources</div>\n<div>&nbsp;</div>\n<div>++ BelNet-Belgium_AS2611<br />\n title = BelNet-Belgium_AS2611<br />\n host = <a href=\"http://www.belnet.be\" title=\"www.belnet.be\">www.belnet.be</a><br />\n ++ CoreTecIT-Austria_AS3248<br />\n title = CoreTecIT-Austria_AS3248<br />\n host = <a href=\"http://www.coretec.at\" title=\"www.coretec.at\">www.coretec.at</a><br />\n ++ SonnIT-Denmark_AS8807<br />\n title = SonnIT-Denmark_AS8807<br />\n host = <a href=\"http://www.area51.dk\" title=\"www.area51.dk\">www.area51.dk</a><br />\n ++ SpaceNet-Germany_AS5539<br />\n title = SpaceNet-Germany_AS5539<br />\n host = <a href=\"http://www.space.net\" title=\"www.space.net\">www.space.net</a><br />\n ++ ZonePro-France_AS29351<br />\n title = ZonePro-France_AS29351<br />\n host = www.zonepro.net</div>\n<div>&nbsp;</div>\n<div>+ Asia<br />\n menu = Asia<br />\n title = Asian resources</div>\n<div>&nbsp;</div>\n<div>++ InstituteHighEnergy-China_AS7497<br />\n title = InstituteHighEnergy-China_AS7497<br />\n host = v-www.ihep.ac.cn<br />\n ++ SingNet-Singapore_AS3758<br />\n title = SingNet-Singapore_AS3758<br />\n host = networktools.singnet.com.sg<br />\n ++ Linkwan_Taiwan_AS4808<br />\n title = Linkwan_Taiwan_AS4808<br />\n host = <a href=\"http://www.linkwan.com\" title=\"www.linkwan.com\">www.linkwan.com</a><br />\n ++ BoraNet-Korea-AS3786<br />\n title = BoraNet-Korea-AS3786<br />\n host = <a href=\"http://www.bora.net\" title=\"www.bora.net\">www.bora.net</a><br />\n ++ Nexlinx-Pakistan_AS17563<br />\n title = Nexlinx-Pakistan_AS17563<br />\n host = lg.nexlinx.net.pk</div>\n<div>&nbsp;</div>\n<div>+ America<br />\n menu = Amerika<br />\n title = American resources</div>\n<div>&nbsp;</div>\n<div>++ University_Washington-USA-AS73<br />\n title = University_Washington-USA-AS73<br />\n host = <a href=\"http://www.washington.edu\" title=\"www.washington.edu\">www.washington.edu</a><br />\n ++ Neoclan-Mexico_AS11172<br />\n title = Neoclan-Mexico_AS11172<br />\n host = <a href=\"http://www.neoclan.net.mx\" title=\"www.neoclan.net.mx\">www.neoclan.net.mx</a><br />\n ++ Telmex-Chile_AS6429<br />\n title = Telmex-Chile_AS6429<br />\n host = lg.telmexchile.cl<br />\n ++ InternetDirect-Canada_AS7271<br />\n title = InternetDirect-Canada_AS7271<br />\n host = <a href=\"http://www.direct.ca\" title=\"www.direct.ca\">www.direct.ca</a><br />\n ++ RedeRioDeComputadores-Brasil_AS2715<br />\n title = RedeRioDeComputadores-Brasil_AS2715<br />\n host = guanabara.rederio.br<br />\n &nbsp;</div>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">С конфигурационным файлом разобрались. Добавим загрузку smokeping при запуске системы:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>echo \'# Smokeping\' &gt;&gt; /etc/rc.conf<br />\n </strong># <strong>echo \'smokeping_enable=&quot;YES&quot;\' &gt;&gt; /etc/rc.conf</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Собственно, сам запуск:</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p class=\"rtejustify\"># <strong>sh /usr/local/etc/rc.d/smokeping start</strong></p>\n<p class=\"rtejustify\">Starting smokeping.<br />\n Note: logging to syslog as local0/info.<br />\n Daemonizing /usr/local/bin/smokeping ...</p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Теперь дело за малым - добавить в Apache поддержку Smokeping. Добавим в <strong>/usr/local/etc/apache22/httpd.conf</strong> такой блок:</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p>Alias /smokeping/ /usr/local/smokeping/htdocs/</p>\n<pre>\n&lt;Directory /usr/local/smokeping/htdocs&gt;\n Options Includes ExecCGI\n DirectoryIndex smokeping.cgi\n AddHandler cgi-script .cgi\n AllowOverride All\n Order allow,deny\n Allow from All\n&lt;/Directory&gt;\n</pre></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>Перезапускаем Apache, чтобы изменения вступили в силу:</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p class=\"rtejustify\"># <strong>apachectl graceful</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>В браузере набираем URL <a href=\"http://IP-SERVERA/smokeping/\">http://<span style=\"color: #ff0000\"><strong>IP-SERVERA</strong></span>/<font color=\"#000000\">smokeping/</font><font color=\"#000000\"> и попадаем на главную страницу Smokeping:</font></a></p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"smokeping\" href=\"/files/imagepicker/1/Smokeping.png\"><img alt=\"smokeping\" src=\"/files/imagepicker/1/thumbs/Smokeping.png\" /></a></p>\n<p class=\"rtejustify\">Необходимо время,&nbsp;чтобы собрать статистику. В результате будем иметь следующие графики (пример с другого сервера,&nbsp;где мониторятся только доступность серверов):</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"smokeping\" href=\"/files/imagepicker/1/Smokeping1.png\"><img alt=\"smokeping\" src=\"/files/imagepicker/1/thumbs/Smokeping1.png\" /></a></p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"smokeping\" href=\"/files/imagepicker/1/Smokeping2.png\"><img alt=\"smokeping\" src=\"/files/imagepicker/1/thumbs/Smokeping2.png\" /></a></p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"smokeping\" href=\"/files/imagepicker/1/Smokeping3.png\"><img alt=\"smokeping\" src=\"/files/imagepicker/1/thumbs/Smokeping3.png\" /></a></p>\n<p class=\"rtejustify\">&nbsp;</p>\n', created = 1767332970, expire = 1767419370, headers = '', serialized = 0 WHERE cid = '2:a3d872b2684e8ce16801ea17d94dfc0c' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767332970, expire = 1767419370, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767332970, expire = 1767419370, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другу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

 

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

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

Литература

Мой компьютер постоянно обыгрывает меня в шахматы. Зато я всегда побеждаю его в боксерском поединке!