Сбор статистики или красивые схемы и графики
Я работаю в государевой конторе и поддерживаю тут сеть. Народ у нас часто параноит и утверждают, что по ночам на их незапароленных компах кто то сидит и смотрит порнуху. Собственно решил задаться вопросом, как быстро и наглядно вычислять нарушителей и вообще понять что происходит. следить за компами у нас нельзя ибо у всех паранойя, а вот обезличенный трафик посмотреть по сегментам сети и на проксисерверах вполне можно. Собственн чем и решил заняться. Сеть построена на коммутаторах huawei, что в данном случае не принципиально т.к. есть оборудование разных фирм и фирменные мониторы одного вендора работающие только с его оборудованием меня не устраивали. Выбор пал на открытый и "стандартизированный" протокол SNMP. "стандартизированный" - потому что некоторые фирмы считают себя умнее других и все делают под себя и для себя из за чего приходится что то допиливать напильником :-)))
В качестве рабочей среды первоначально был взят образ диска с предустановленной системой сбора статистики CactiEZ, но я в неём быстро разочаровался и перетащил статистику на любимую SlackWare (это дело вкуса - в расширенном наборе CentOS/RedHat Cacti включён в качестве пакета, но мне нравится всё делать руками). Кроме пакета Сacti я воспользовался плагином/пакетом Weathermap и получил вот такую красоту - все 130 VLAN как на ладони и схема сети с динамически меняющийся нагрузкой видна весьма нагладно.
После того, как у меня всё это получилось, появилась задачка поинтереснее и посложнее - Кондиционер в серверной, который после пусконаладки глючил и часто выходил из строя по неведомой для электриков/кондиционерщиков причине. Посколько аппарат был огромный и навороченный в нём удалось найти разъём Ethernet с загадочным/бессмысленным веб-сервисом и SNMP протоколом выдающим непойми что. После поисков по форуму нашёл название железки Carel и пример скрипта которым кто то пытался снимать статиствику с похожего устройства. Нюанс в том, что карел представляет данные в виде 3х таблиц с разными типами данных и кардый разработчик вставляет данные в произвольные ячейки т.е. без спец.схемы понять где входная температура, где температура охлаждающего воздуха, а где другие параметры - не понять. Взял исходный скрипт и расширил его по аналогии добавив все ячейки таблиц и когда графики поползли по шкале - сравнил их с показаниями на экране кондиционера - сопоставляя его показания с моими графиками - в результате весь неинтересный мусор был с графика убран, построен адекватный график со значимыми показателями и электрики наконец то выяснили причину выхода кондиционера из строя (одна из трубок была пережата и кондей отключался по превышению давления)
После того, как электрики увидели график они при заказе ещё более навороченной системы климат контроля масштаба здания заказали проектировщикам таблицу с расшифровкой значений, что бы я не мучался, а сразу обзывал линии на графике по человечески :-)))
Дольше всего я провозился с руссификацией графиков - при определённых стечениях обстоятельств русские буквы пропадают, похоже на то, что в связке php скриптов, GD и RRDTools кому то нехватает памяти и из за этого русские буквы и символы из расширенного набора пропадали. Сейчас графики рисуются нормально с отображением всех букв и символов.