Opened 3 years ago

Closed 2 years ago

#574 closed улучшение (fixed)

Настройка значений стандартных переменных SNMP через веб интерфейс.

Reported by: san Owned by: alx
Priority: средний Milestone: 1 очередь
Component: sw Keywords:
Cc:

Description

1) Пользователи просят добавить возможность конфигурировать через веб-интерфейс стандартные переменные SNMP: имя, расположение, контактную информацию.

Поводом для такой просьбы стало использование системы мониторинга оборудования связи СОП "ИНИТИ", в которой невозможно обнаружить по SNMP более одного устройства с одинаковым именем и расположением.

Похожие просьбы уже поступали от нескольких других пользователей(например вот #384).
Т.к. настройка востребована, считаю что таки нужно вынести её в веб-интерфейс для удобства пользователей.

2) Заодно просят добавить и настройку read community в веб-интерфейс.

Change History (5)

in reply to:  description comment:1 by alx, 3 years ago

Replying to san:

1) Пользователи просят добавить возможность конфигурировать через веб-интерфейс стандартные переменные SNMP: имя, расположение, контактную информацию.

Поводом для такой просьбы стало использование системы мониторинга оборудования связи СОП "ИНИТИ", в которой невозможно обнаружить по SNMP более одного устройства с одинаковым именем и расположением.

Что мешает установить/изменить эти переменные в файле /etc/snmp/snmpd.conf?

Most of the scalar objects in the 'system' group can be configured in this way:

sysLocation STRING

sysContact STRING

sysName STRING
       set the system location, system contact or system name (sysLocation.0, sysContact.0 and sysName.0) for the agent respectively.  Ordinarily these objects are writable via suitably
       authorized SNMP SET requests.  However, specifying one of these directives makes the corresponding object read-only, and attempts to SET it will result in a notWritable error re‐
       sponse.

Директивы sysLocation и sysContact там даже уже есть, надо только изменить значение...

Провел эксперимент. В плате SW-01 пишу в snmpd.conf:

sysName Lower Samurai                                                 
syslocation Perm, Russia                                             
syscontact Alex Mogilnikov <alx@kolez.com>

Перезапускаю snmpd:

root@sw01:~# /etc/init.d/snmpd restart
Restarting network management services:stopped /usr/sbin/snmpd (pid 26400)
no /usr/sbin/snmptrapd found; none killed
 snmpd.

Теперь с компьютера читаю переменные:

alx@alx:~$ snmpwalk -v 1 -c public 192.168.0.60 .1.3.6.1.2.1.1
iso.3.6.1.2.1.1.1.0 = STRING: "Linux sw01 3.6.9 #1 Fri May 14 10:38:39 +05 2021 armv5tejl"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (5387) 0:00:53.87
iso.3.6.1.2.1.1.4.0 = STRING: "Alex Mogilnikov <alx@kolez.com>"
iso.3.6.1.2.1.1.5.0 = STRING: "Lower Samurai"
iso.3.6.1.2.1.1.6.0 = STRING: "Perm, Russia"

Также, как следует из процитированного выше man, эти переменные можно устанавливать прямой записью через snmpset...

Предполагаю, что пользователи либо просто не знали, что значения данных переменных можно устанавливать в конфиг-файле, либо у них это по каким-то причинам не получилось (например не перезапустили snmpd), и они решили, что такой невозможности нет...

Похожие просьбы уже поступали от нескольких других пользователей(например вот #384).
Т.к. настройка востребована, считаю что таки нужно вынести её в веб-интерфейс для удобства пользователей.

Никаких новых аргументов в пользу реализации подобной функции я не увидел. Не вижу причин, по которым следовало бы пересмотреть принятое ранее в тикете #384 решение. Упоминание системы мониторинга оборудования связи СОП "ИНИТИ", в которой невозможно обнаружить по SNMP более одного устройства с одинаковым именем и расположением, аргументом не является, так как, как я только что показал выше, ничто не мешает в существующей аппаратуре без использования веб-интерфейса сделать имена и расположения блоков разными.

2) Заодно просят добавить и настройку read community в веб-интерфейс.

Никаких новых возможностей аппаратуре это не добавляет. Следовательно, по моему мнению, наличие просьбы пользователя само по себе еще не является аргументом в пользу реализации запрошенного. Поводом подумать об этом, рассмотреть такую возможность - является, но аргументом "за" - нет.

В конфиг-файле snmpd.conf более сотни настроек (директив). Любую из них в любой момент могут попросить добавить в веб-интерфейс блока. Означает ли это, что следует реализовать в веб-интерфейсе swd редактор конфиг-файла snmpd? :) Мне кажется, что нет, не означает. Редактор в SW-01 уже есть. В противном случае немедленно возникнет вопрос - а почему в веб-интерфейсе сделан редактор конфига только для snmpd? В плате работают и другие демоны, чем они хуже? И тогда, будучи последовательными, мы должны будем делать в веб-интерфейсе также редакторы конфига и для dropbear, и для syslogd, и для ppp, и для ntpd... И при каждом обновлении в апстриме всех этих демонов мы будем вынуждены проверять, не изменили ли чего-то в формате конфиг-файла, чтобы внести соответствующие коррективы и в наш код... Хотим мы всего этого, учитывая, что никаких новых возможностей аппаратуре это не добавляет? Этот вопрос уже поднимался на совещании у директора, и решение было - не хотим. Новых аргументов с тех пор не появилось, поэтому лично я не вижу причин для изменения принятого ранее решения.

comment:2 by san, 3 years ago

Никаких новых аргументов

Новый аргумент один, востребованность функции у пользователей.

В конфиг-файле snmpd.conf более сотни настроек (директив). Любую из них в любой момент могут попросить добавить в веб-интерфейс блока

Могут. Но конкретно к этой функции проявили интерес уже, как минимум, три разных пользователя.

другие демоны
для ntpd..

Для ntpd ведь такая настройка есть, через веб-интерфейс можно добавить/удалить сервер времени.
имхо это значительно удобнее для пользователя, чем подключаться по ssh, залезать в конфиг файл(имя которого нужно вспомнить) и потом перезапускать демона.

in reply to:  2 comment:3 by alx, 3 years ago

Replying to san:

Никаких новых аргументов

Новый аргумент один, востребованность функции у пользователей.

Насколько я помню (возможно, неправильно?), этот аргумент уже звучал на совещании с директором, о котором я упоминал выше. Поэтому данный аргумент - не новый.

Для ntpd ведь такая настройка есть, через веб-интерфейс можно добавить/удалить сервер времени.

Да, верно, но это делается не через конфиг-файл ntpd, а путем посылки ntpd сообщений по протоколу NTP... Хм... Сейчас я сообразил, что и в случае snmpd значения упомянутых переменных можно устанавливать запросом snmpset. Ты прав, в данном случае ntpd и snmpd работают одинаково. Это, конечно, намного лучше, чем менять конфиг-файл. Я еще подумаю над этим вопросом и приму решение.

comment:4 by alx, 2 years ago

Я подумал и, так как есть возможность устанавливать системные переменные прямой записью значения запросом SNMP GET, то есть стандартным путем, а также так как библиотека SNMP уже используется в swd для сообщений TRAP, а также учитывая, что я в настоящее время не занят другими задачами, я решил реализовать предложенное улучшение.

comment:5 by alx, 2 years ago

Resolution: fixed
Status: newclosed

In 2170/sw:

Добавлена возможность управления (чтения и записи) системных переменных SNMP
sysName, sysContact и sysLocation из веб-интерфейса. Closes #384, #574.

Note: See TracTickets for help on using tickets.