пятница, 17 декабря 2010 г.

links

SNMP in Erlang

Нет одной такой командочки типа snmpwalk. Мы вынуждены строить целую систему для того чтобы опросить железку.

Есть snmp manager, мы его должны настроить и запустить, даже если у нас только клиент. Этот snmp manager содержит список snmp user. Я сначала думал что snmp user - это что-то типа community, оказалось - нет.. Snmp user в erlang - это такой модуль, который содержит просто набор callback для приема ответов от устройств.

Manager должен либо определять этого user-а в свой конфигурации, либо зарегистрировать его с помощью snmpm:register_user(имя, модуль).

Дальше нам нужны agents. То есть manager каждому такому user назначает (в конфиге, либо с помощью snmpm:register_agent ) набор агентов которых опрашивать. Вот эти агенты как раз и содержат реквизиты опрашиваемых железок. Там, IP, community, port, версию протокола и т.д.

Когда все это настроено, можно посылать из manager-а запрос. Например с помощью snmpm:ag(). Manager поищет в настройках который это агент(по адресу). Пошлет асинхронный запрос на железку, а когда придет ответ, Manager по привязанным user/agent, сообразит на которого user (ну грубо говоря в какой модуль) его переслать.

В данном случает придет ответ на handle_pdu(Addr, Port, ReqId, SnmpResponse, UserData) в том user-е к которому привязан агент, куда посылался запрос.
ссылки:
Оригинал статьи
SNMP_Quick_Start
Building An OTP Application (пригодится при написании сервера)

среда, 15 декабря 2010 г.

SSH и Erlang

Небольшой пример реализации tail -f на удаленной машине при помощи Erlang
Еще кусок переписки с примером использования SSH в Erlang
А вот тут краткий Tutorial о SSH в целом
Erlang secure RPC and SSH module
Официальная документация по SSH в Erlang

воскресенье, 5 декабря 2010 г.

понедельник, 15 ноября 2010 г.