Как стать автором
Обновить

Комментарии 53

Больше спасибо за обзор :)
а что у вас только svn репо для установки, git клона нету?: evil :)
Только svn (для подписчиков), community распространяется как tar.gz
спасибо, это была шутка. Я как-то задал этот вопрос на вашем irc-канале — и получил очень, я бьі сказал, очень-очень експрессивньій ответ от adama лично. Думал вьі вспомните :)

А по теме — как насчет алертов, они уже достаточно рабочие?
Да, Адам любитель крепкого словца :)

Алерты вполне рабочие, я бы сказал полностью рабочие. Но пока их добавление не очень интуитивное. Но один из активных пользователей написал хорошеее руководство по добавлению: примеры уведомлений.
Почему у вас такая странная буква Ы?
Не совсем понятно из статьи, какие всё таки у Observium «киллер-фичи». Например, я использую Zabbix — чем таким мог бы Observium меня заманить, чтобы я на него перешёл кроме «удобства»?
Заманивать не стану, это выбор каждого, но попробую пояснить о «киллер-фичах».

Во-первых, как написал в статье, это добавление устройства — вы добавляете устройство, обо всем остальном система «позаботиться сама». Не надо заходить «в такое то меню», добавлять такие то OID, присваивать им какое то имя и так далее. Система сделает все за вас. Конечно возможна ситуация, что вы хотите «наблюдать» за сверхважным датчиком дыма, который «пока» не поддерживается системой. Вот тут конечно придется включить умение программирования (если хотите сделать самостоятельно) или обращаться к разработчикам.
А вторая фича, фактически дополняющая первую — любые изменения на устройстве (и это не только изменение портов), например добавился новый датчик или наоборот удалился или изменилась версия прошивки и т.д., все это будет обнаружено автоматически.

Ну а другие киллер-фичи, их на самом деле много, я просто не уверен (не знаю), что в zabbix есть, например, отслеживание протоколов маршрутизации BGP/OSPF/EIGRP/CEF. Есть сбор IP и MACадресов, ARP и FDB и по ним всем есть поиск, сбоор VLANов, просмотр логов с устройств, просмотр конфигураций устройств и их изменений.
Могу сказать на примере себя, т.к. основной род деятельности у меня администрирование сетей. 90% действий которые раньше я выполнял исключительно в консоли устройств, теперь я делаю из единого места.
все это в Zabbix можно прикрутить, только надо чуть чуть раскурить MIB. Автоматическое определение модулей, портов и прочего решается через LLD. Но все это конечно требует настройки «изкаропки» этого нет. Вот конфиги Zabbix не собирает, да, но и тут для этого ransid.
ну для честности будем говорить, что конфиг observium тоже не собирает, но он интегрируется с rancid и показывает как саму конфигурацию, прямо со страницы устройства, так и последние изменения.

А вот это чуть-чуть раскрутить, там то прикрутить шаблон и так далее — это то что меня всегда останавливало :)
Чего это он логи не собирает? Парсит как миленький с syslog.
У меня даже температуру с самодельного датчика на ардуино собирает :)
Конфиги же. Логи он прекрасно собирает, в том числе и текстовые из любого файла. Теоретически так можно собирать и конфиги, построчно. Но это не удобно и совершенно не практично.
Врядли какой либо продукт будет повторять функционал rancid, разве что захотят сделать нечто более функциональное, но и это мне кажется практически нереально.
Сбор конфигов с оборудования не самая тривиальная задача, у каждого вендора и/или моделей свои особенности. Как по авторизации в консоль (для копирования конфига), так и по «пост-обработке» этого конфига, т.к. зачастую в конфигах имеются изменяющиеся данные (время например).
Вот тут есть оч хорошие cisco-шаблоны для zabbix с LLD.
Могу сказать на примере себя, т.к. основной род деятельности у меня администрирование сетей. 90% действий которые раньше я выполнял исключительно в консоли устройств, теперь я делаю из единого места.


Как верно подметил EvilMause — всё это умеет Zabbix. Только это немного сложнее в настройке. Другой вопрос, что последние версии Zabbix прекрасно справляются с большим количество устройств. Как с этим дела у Observium? Скажем, если я поставлю на 16 ядерный сервер с 128 Гб RAM — вытянет ли он примерно 25к устройств, с опросом с каждого в среднем 20 OID или загнётся?
Единственное узкое место, как и любой другой системы в том числе zabbix — это дисковая подсистема.

SSD (или ram-disk) + rrdcached + rrd version >= 1.4.8 и да сможет, причем опрос скорее всего будет больше числа OIDов.
На данный момент, пользователи отписывались об инсталляциях с более скромными параметрами и опросом 1-2к устройств.
Вы меня как минимум заманали «на попробовать». Благодарю за ответы! :)
Насчет «все умеет zabbix», я попытался найти информацию по сбору FDB и ARP таблиц с его помощь, не нашел ни одного руководства… так можно или нет?
Так же не нашел информацию как собирать информацию о BGP пирах. Не просто количество, а отдельные пиры и обновления по ним.
(уточню, это не киллер фичи, но этими инструментами я регулярно пользуюсь)

Я абсолютный профан в zabbix и если вы мне тыкните ссылками, буду признателен :)
К сожалению «Демо» сделано не лучшим образом. В «Демо» нужно не блокировать открытие определённых страниц, а просто заблокировать кнопку «применить», т.к. в данной ситуации вы прячете часть функционала…

Теперь к минусам самой системы:
1. Не смог найти импорта MIB и собственно MIB-браузера.
2. Не увидел профилей дискаверинга. Т.е. назначение заданий на периодическое сканирование подсетей с определёнными Community String.
3. Не увидел конструктора дашбордов, без этого невозможно сделать так называемый «интерфейс оператора», а так-же нет конструктора отчётов.

Без этих вещей коммерческое использование системы мониторинга видится мне весьма спорным.

Так-же коммерческая версия должна обладать средствами интеграции(SNMP-Trap, syslog, SOAP, REST) с другими системами(инвентаризация, сервис-деск, другие системы мониторинга).

В качестве «фичи» хотел бы предложить вам добавить возможность построения сервисно-ресурсной модели.
Т.е. берём один из сервисов (например один из интернет сайтов компании), работа которого зависит от определённых ресурсов(веб-сервера, БД, лоад-балансера, серверов, коммутаторов и ИБП от которых это всё питается, датчиков и т.п.) после чего следим и делаем отчёты о состоянии сервисов, а не «железок в вакууме».

Как это не печально, но системы мониторинга приобретаются в первую очередь для создания отчётов, т.к. именно они отображают качество работы людей и оборудования.
Стоп, зачем вы применяете принципы работы одной системы, вероятно к которой привыкли, к принципам другой?
1. Не смог найти импорта MIB и собственно MIB-браузера.

Что именно вам надо импортировать?
Все уже «встроено» в модулях, если вы хотите узнать какие конретно MIB-ы используются для данного устройства, можно посмотреть definitions и/или посмотреть отладочный вывод discovery/poller процесса.
2. Не увидел профилей дискаверинга. Т.е. назначение заданий на периодическое сканирование подсетей с определёнными Community String.

Сканирования подсетей именно в понимании списка адресов нет, есть сканирование по обнаруженным устройствам через протоколы CDP/LLDP, OSPF и BGP. Но то что вы имеете ввиду организуется простым shell-скриптом с генерацией списка адресов.
3. Не увидел конструктора дашбордов, без этого невозможно сделать так называемый «интерфейс оператора», а так-же нет конструктора отчётов.

Ну с этим пока соглашусь, но это будет.

Так-же коммерческая версия должна обладать средствами интеграции(SNMP-Trap, syslog, SOAP, REST) с другими системами(инвентаризация, сервис-деск, другие системы мониторинга).

Не отразил в статье, поправлю. Есть интеграция и с syslog и snmp traps, есть API.

По поводу отчетов я вас понял, обязательно будет.
Стоп, зачем вы применяете принципы работы одной системы, вероятно к которой привыкли, к принципам другой?

Моя работа заключается в построении систем мониторинга и управления из различных подсистем(мониторинг доступности, мониторинг производительности, системы контроля качества каналов связи, сервис-деск, инвентаризация и т.п.) на базе продуктов от различных вендоров(из мониторинга это IBM, HP, CA Technologies, SevOne, а так-же пара «отечественных вендоров»).

К сожалению я говорю о принципах работы большинства коммерческих систем мониторинга, а не об одной…

Что именно вам надо импортировать?

Например появляется необходимость мониторить железки из серии BTI 7000, проблема в том что информация о сетевых интерфейсах у них идёт из Enterprice ветки OID-ов, а не из ветки MIBv2. Связываться каждый раз с разработчиками не очень удобно.

Наличие средств интеграции это отлично.
Я правильно понимаю что SNMP-Trap и syslog используются для передачи данных из Observium во внешние системы, а API для двухсторонней интеграции?
Например появляется необходимость мониторить железки из серии BTI 7000, проблема в том что информация о сетевых интерфейсах у них идёт из Enterprice ветки OID-ов, а не из ветки MIBv2.

У нас есть несколько примеров устройств, которые тоже используют не стандартный IF-MIB. Это тоже поддерживаемо, но конкретно для BTI еще не сталкивались.
Если удастся найти такое устройство с доступом, обязательно постараюсь добавить.

Я правильно понимаю что SNMP-Trap и syslog используются для передачи данных из Observium во внешние системы, а API для двухсторонней интеграции?

Trap, syslog — только на прием, т.е. они анализируются и добавляются в базу. Например по сислогу потом можно искать по сообщениям, времени, приоритету через веб интерфейс. Также хотим в скором времени добавить активные нотификации по нахождению ключевых фраз в syslog сообщениях.
API — для внешней интеграции.
Перебровал все опенсосрные системы, в том же Observium графики и данные храняться в RRD(соотвественно угрубление данных, скалинг и тд ограничены — из-за этого ушли от mrtg).
Самой нормальной считаю netxms — есть все это, очень быстра, правда настройка немного нестандратна, но все же есть еще встроенный syslog, обещают еще побольше готовых шаблонов, и поддержку nfsen из коробки
По началу очень понравился observium в той части, что сразу строит графики по протоколам маршрутизации…
Что не понравилось — алерты только по подписке, причем именно подписка, а не покупка. Не понятно как добавить мониторинг по своим мибам, которые не добавились автоматически =((

Кстати, у Observium есть форк — LibreNMS, но больших отличий в функционале там пока не увидел.
У меня какая то стойкая неприязнь к мониторингу на похапе. Ну вот зачем?
Я думаю у вас просто неприязнь к php, мониторинг тут не при чем.
У меня например неприязнь к Java :)
Это к слову о NetXMS…

Но я не стану холиварить, по поводу PHP. «Вы просто не умеете его готовить» ;)
В плане производительности настоящие проблемы это snmp queries и disk IO.
Вот в cacti для SNMP написали свой поллер на Си. Потому что похапе быстрее не может. Можно ли отсюда сделать вывод что похапе для таких задач не очень подходящий язык?
К жабе есть свои претензии, но для мониторинга она подходит гораздо лучше.
А вы уверены в причинах, почему cacti написали поллер на Си?
For this reason it is written in native C, makes use of POSIX threads
Spine Information.

Т.е. производительность увеличена за счет использования тредов.
И в observium это тоже есть, для этого у нас вместо прямого вызова poller-а запускается wrapper (на python), который также запускает несколько (настраиваемо) поллеров одновременно.
Кстати, когда мы добавили этот враппер, скорость опроса всех устройств сократилась в разы.

Но суть в том, что не язык сам по себе причина написания отдельного поллера, а ускорение за счет увеличения одновременных запросов.

С одним устройством вы ускорения не получите.
Я уверен. Небыло бы смысла писать поллер на Си, если бы похапе мог делать эту работу сам. Как, например, питон.
И если в observium есть враппер на питоне, чего сразу было не написать на нем весь мониторинг? Я бы тогда точно купил. :)
За одно прикрутить graphite, fluentd, riemann, etc…
А вы можете не покупать, просто попробуйте community версию и представьте что написано оно на «ла-ла-ла» :)

Почему не сразу… потому что разные причина и следствие. Код написан на PHP изначально и достаточно оптимизирован, единственное чего не хватало это мультиплексирование. Никто не будет ломать то что работает, ради желания просто не использовать какой либо язык программирования.

Небыло бы смысла писать поллер на Си

Кстати, насколько я помню, на тот момент когда в какти начали писать поллер на Си (а это где-то 2003 год или раньше), питон просто был в зачаточном состоянии и не было никаких тредов в нем. Про похапе в то время я вообще молчу… Поэтому оставался только Си.
Я обычно покупаю софт не для того что бы пользоваться, а для того, что бы поддержать разработчиков.
Пробовать не буду, так как все равно захочется что-нибудь дописать, а делать это на похапе ну вот не хочется :)
Как показывает практика, программы на похапе со временем поддерживать становится все сложнее и сложнее, что неотвратимо сказывается на фичах.
А про питон Вы не правы, Twisted был выпущен в 2002 году, в 2003 сам питон был уже версии 2.3.х.
В плане производительности настоящие проблемы это snmp queries и disk IO.

1. В чём заключается проблема с snmp queries?
— Проблема с отправкой множества запросов?
— Проблема с получением множества ответов?
— Проблема с обработкой ответов?
Не справляется железо или софт?
2. disk IO — т.е. проблема в выборе или настройке СУБД?
Есть ли какие либо цифры говорящие с какого кол-ва оборудования нужно переходить HDD->SSD->CХД?
В чём заключается проблема с snmp queries?

В том, что невозможно обработать запрос пока не получите ответ от опрашиваемого устройства.
У меня могут быть 2 одинаковых устройства расположенных в разных концах света, но один я опрошу за 5 секунд, а второй за 30.
Или может опрашиваемое устройство оказаться «слабым» и это тоже увеличивает время его «ответов».

disk IO — т.е. проблема в выборе или настройке СУБД?

Как бы там ни было, основное средство хранения информации для графиков в observium это RRD. Опрашиваемых счетчиков огромное количество и все они производят операции чтения/записи на используемый диск и без оптимизации используемого дискового пространства, скорость опроса устройств также снижается.
Что использовать в качестве дисковой подсистемы решает пользователь, мы лишь даем рекомендации по увеличению производительности. Конечно это желательно SSD или если есть такая возможность RAM-disk (с последующей синхронизацией). Но даже на обычных дисках мы рекомендуем использовать rrdcached, это существенно сокращает общее время опроса устройств.
Честно говоря, код системы довольно-таки не очень. Захардкоженные пути до /opt, например.
Я давно еще собрал .deb для агента, нужно кому?
Где вы нашли захардкоженные пути к /opt?
Единственная опция — в конфигурации по умолчанию указывается путь к основному каталогу. По умолчанию он конечно /opt/observium
Все остальное идет относительно этого пути.
Соответственно этот путь меняется единственной строчкой в конфигурации.
Прошу прощения, в новых версиях почти ничего не осталось, но все же нашел два: scripts/mailscanner.php, scripts/watchmaillog/watchmaillog.pl.
да, там могут быть, но каталог scripts/ содержит скрипты которые не содержат основной функциональности и служат только для каких то редких ситуаций. Например там есть скрипты удаления пиков на графиках или автоматического переименования мибов.
Честно говоря даже не знаю кем и зачем используются указанные вами скрипты, вероятно они как то связаны со старой системой «сервисов» которые уже заменены на unix-agent.
Проверю их и если они не несут полезной нагрузки удалю :)
Подключил rancid с хранением данных в svn, конфиги в веб-морде появились, также видит номера ревизий, но самих изменений не видит, пишет: No Difference
Хотя rancid успешно diff шлет на почту.
Не подскажете куда капнуть?
community версия, ubuntu 14.10 или выше?

добавьте в includes/definition.inc.php в начале, сразу за предупреждением:
// Always set locale to EN
setlocale(LC_ALL, 'C');
putenv('LC_ALL=C');


В последних версиях ubuntu/debian svn неожиданно начал выдавать сообщения с учетом локали.
Не помогло… Детальная информация по инсталяции:

Ubuntu 12.04.5 LTS

$ locale
LANG=ru_UA.UTF-8
LANGUAGE=ru_UA:ru
LC_CTYPE=«ru_UA.UTF-8»
LC_NUMERIC=«ru_UA.UTF-8»
LC_TIME=«ru_UA.UTF-8»
LC_COLLATE=«ru_UA.UTF-8»
LC_MONETARY=«ru_UA.UTF-8»
LC_MESSAGES=«ru_UA.UTF-8»
LC_PAPER=«ru_UA.UTF-8»
LC_NAME=«ru_UA.UTF-8»
LC_ADDRESS=«ru_UA.UTF-8»
LC_TELEPHONE=«ru_UA.UTF-8»
LC_MEASUREMENT=«ru_UA.UTF-8»
LC_IDENTIFICATION=«ru_UA.UTF-8»
LC_ALL=

$ svn --version
svn, version 1.6.17 (r1128011)
compiled Aug 13 2014, 20:41:52

Observium CE 0.14.11.6000

Только у нас файл называется: /opt/observium/includes/definitions.inc.php

вставка выглядит следующим образом:

/////////////////////////////////////////////////////////
// NO CHANGES TO THIS FILE, IT IS NOT USER-EDITABLE //
/////////////////////////////////////////////////////////
// YES, THAT MEANS YOU //
/////////////////////////////////////////////////////////

// Always set locale to EN
setlocale(LC_ALL, 'C');
putenv('LC_ALL=C');

// Include OS definitions
include($config['install_dir'].'/includes/definitions/os.inc.php');

// Include Graph Type definitions
include($config['install_dir'].'/includes/definitions/graphtypes.inc.php');
А, это старая версия svn, неподдерживаемый ключ в этой версии, используйте патч: svn_diff.patch
Еще небольшой вопрос:
в routing -> all bgp sessions адреса пиров показываются верно, а вот наши адреса показывает как:
21.105.55.136
21.105.52.200
Что это за адреса — понятия не имеем… Еще и на карте мы находимся в Ponta Delgada в Атлантическом океане вместо Киева.
в принципе эти вопросы можем в личке обсудить :)
по bgp, знакомая ситуация, но точно не помню как решать — надо смотреть дебаг вывод (если будете отправлять, то в личку):
./discovery.php -d -m bgp-peers -h имя_сервера


По нахождению на карте: ну во первых в community редакции сейчас немного устаревший код, в новых ревизиях добален яндекс api и возможно увидеть детально как были найдены конкретные координаты.
Но если в кратце, основной принцип поиска координат по sysLocation строке. По умолчанию используется mapquest api, в настройках можно поменять на google (объективно точнее определяет положение) или osm. Соостветсвенно чтобы проверить какие координаты определятся, можно в соответствующем MAPS API ввести строку sysLocation. sysLocation Configuration.
Смотрел обсервиум довольно давно, но это уже точно был обсервиум.
Первое, с чем я столкнулся из проблем в работе, это потеря управления десятком коммутаторов доступа от zte после скармливания их обсервиуму. На тот момент найти\отредактировать дерево оидов для конкретных штук не вышло у меня.
Первое, с чем я столкнулся при добавлении девайсов, система просила имена хостов. Выходит, мне нужно в биндике все коробки заводить?
Второе, что не то, что бы непривычно, но вызывает спорные чувства, это разнесение ап и довн относительно 0. Из коробки. Нуу… ну.
Третье- как там с детализированным мониторингом (чаще 5 минут) отдельных устройств?
Возможно, уже тогда я что-то недоглядел, но как с этими аспектами на сегодня? Спасибо
Первое, с чем я столкнулся из проблем в работе, это потеря управления десятком коммутаторов доступа от zte после скармливания их обсервиуму.

Можно конкретнее о каких устройствах речь (модели)?
Вообще, сам observium не может никого «повесить», но многие производители совершенно безалаберно относятся ко внутреннему SNMP стеку и обращение к какой то отдельной специфичной таблицы может намертво «заморозить» его.

Честно, лучше было сразу написать в багтреккер или в лист (информация есть на основном сайте).

На тот момент найти\отредактировать дерево оидов для конкретных штук не вышло у меня.

В настройках устройств есть вкладка с модулями или MIBами которые можно отключить, а какой модуль стал «причиной» можно увидеть на странице производительности устройства (кнопочка с часиками).

Первое, с чем я столкнулся при добавлении девайсов, система просила имена хостов. Выходит, мне нужно в биндике все коробки заводить?

/etc/hosts как самое простое.

Второе, что не то, что бы непривычно, но вызывает спорные чувства, это разнесение ап и довн относительно 0. Из коробки. Нуу… ну.

не совсем понял что имели ввиду…

Третье- как там с детализированным мониторингом (чаще 5 минут) отдельных устройств?

Что именно вы хотите мониторить чаще (на каждом устройстве)?
В том смысле что такой мониторинг может быть нужен для отдельных OIDов, но не всего устройства.

Если вопросы не праздные и холиварные, то обращайтесь напрямую. Контакты мои доступны :)
Можно конкретнее о каких устройствах речь (модели)?

zte 2928-si.
/etc/hosts как самое простое

если у меня нет имен сотни-другой-тысячи устройств, то, согласитесь, это костыль на пороге входа перед использованием продукта. Возможно, контролируемый объект сам является днсом, а вы предлагаете использовать имена в хостах или hosts. Зачем? Может этот сервис мне и нужно мониторить. Ерунда получается. Нужны визуальные рюшечки — заберите название хоста по снмп у коммутатора, да обзовите устройство этим именем; Предлагаете добавить за раз в мониторинг стопку устройств из списка — дайте возможно подгрузить ип-адреса устройств из этого списка. Дайте мне выбор, а не предлагайте мне новую религию, ставя тем самым преграду.
Я высказался.
не совсем понял что имели ввиду…



Что именно вы хотите мониторить чаще (на каждом устройстве)?
В том смысле что такой мониторинг может быть нужен для отдельных OIDов, но не всего устройства.

Идеально иметь возможность самостоятельно принимать решение о частоте опроса. Если речь о коммутаторе — я хочу снимать данные счетчиков трафика чаще.
Если вопросы не праздные и холиварные, то обращайтесь напрямую

По сути, все эти вопросы холиварные, но в моём случае они сложились в результат не иметь с продуктом дела дальше. Писанина здесь может дать ответ на вопрос «есть ли ещё те, кому это тоже важно».
Коллеги советую взглянуть также на свободный форк observium — librenms
Как в эту систему добавить устройство?
При любой попытке — Could not resolve…
Через веб и через консоль, ничего не помогает.
При этом, в консоле snmpget нормально получает инфу.
Никакой информации на официальном сайте нет, никаких форумов, ничего.
В общем, разочарован. Одна реклама.
А вот, кстати, librenms с обсолютно такой же конфигурацией встал нормально и устройства корректно добавляются.
В общем, к черту этот observium…
Пол дня потратил на этот кусок…
оно там с доменами именами связано, советую посмотерть в сторону librenms
Использовать hostname по умолчанию это просто хороший тон для систематизации ваших же устройств.
Если у вас сеть изменилась так, что изменились IP адреса, то не придется переименовывать каждое/все устройства.

Но в любом случае, у вас устаревшая информация, т.к. привязка к доменам по умолчанию убрана (опционально можно вернуть к старому поведению в конфигурации).
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории