Управление и мониторинг по протоколу SNMP
Отправка алармов ECSS-10 через SNMP трапы
Система ECSS-10 позволяет настроить отправку алармов системы через SNMP сообщения.
Подсистема SNMP в рамках ECSS-10 в силу особенностей библиотеки Erlang по работе с SNMP настраивается через набор файлов, располагающихся по пути:
/etc/ecss/snmp/agent
Для того чтобы ECSS-10 мог отправлять трапы на сторонний сервер, необходимо в файле target_addr.conf
описать конфигурационную строку:
% В данной конфигурации указана транспортная информация, куда необходимо пересылать трапы % {TargetName, Ip, Udp, Timeout, RetryCount, TagList, ParamsName, EngineId, TMask, MaxMessageSize}.
- TargetName - уникальное имя для направления отправки трапов
- Ip, Udp - адрес и порт для отправки трапаTimeout - тайм-аут на доставку сообщения
- RetryCount - количество повторных посылок сообщения
- TagList - имя тега, указанного в notify.conf
- EngineId - имя target-а, который будет указан в target_params.conf
Пример:
{"Eltex EMS v2", [172,16,0,22], 162, 1500, 3, "std_trap", "target_v2", "", [], 2048}.
Для того чтобы с SSW можно было повторно запросить список аварий, которые он оправляет через SNMP трапы (повторно запросить отправку трапов), в файле необходимо /etc/ecss/snmp/agent/community.conf
прописать community с именем private (comminuty должно совпадать с тем, что используется на стороне клиента) с правами на изменения:
{"private", "private", "all-rights", "", ""}.
После этого необходимо перезапустить ecss-mediator:
sudo systemctl restart ecss-mediator.service
Активировать snmpAgent в системе ECSS-10 через терминал управления Cocon:
ssw@[bus@ecss1]:/$ cluster/mediator/md1/properties/rpss/set * snmpAgentEnable true Property "snmpAgentEnable" successfully changed from: false to true.
Выполнив эти действия, ECSS-10 на запрос по SNMP set по OID 1.3.6.1.4.1.35265.4.4
со значением 1 повторно вышлет все аварии через SNMP трапы. Так же в случаи возникновения других аварий в системе, они будут отправлены на указанный хост в SNMP трапах.
Настройка SNMP агента
SNMP агент ECSS по умолчанию использует порт udp/1610. Изменить его можно, отредактировав в конфигурационном файле /etc/ecss/snmp/agent/agent.conf опцию intAgentUDPPort.
Например:
{intAgentUDPPort, 3161}.
После этого нужно перезапустить ecss-mediator:
sudo systemctl restart ecss-mediator
Убедитесь, что данный порт не конфликтует с портом snmpd (по умолчанию udp/161, подробнее Настройка snmpd).
Доступ к активным вызовам в SNMP-таблице доменов
Мониторинг доменов осуществляется через SNMP таблицу по фиксированные Oid, при этом конкретный домен определяется или с помощью контекста (SNMP v.3), или с помощью community (SNMP v.2c). Права доступа выставляются непосредственно на строку таблицы. Вместо утилиты snmpwalk, которая использует SNMP-запрос get-next, необходимо использовать snmpget. Для того чтобы получить доступ по протоколу SNMPv2c необходимо выбрать для домена секретную строчку community. Затем, используя утилиту snmpget и данную строчку community, можно получить значения интересующих нас параметров.
Пример настройки SNMPv2c
Для избежания конфликтов community в разных доменах, community-строка префиксируется именем домена. Таким образом результирующая строка community должна иметь вид:<имя домена>:<community>
Настройка community через интерфейс командной строки:
ssw@[bus@ecss1]:/$ domain/test.domain/snmp/agent/properties/set snmp_v2c_community test.domain:aaa111 Property "snmp_v2c_community" successfully changed from: "none" to "test.domain:aaa111".
По умолчанию сразу после создания домена доступ по snmp v.2 выключен. Для того чтобы включить доступ, необходимо задать community-строку, и выставить значение свойства snmp_v2c_enabled = true:
admin@[mycelium1@ecss1]:/$ domain/test.domain/snmp/agent/properties/set snmp_v2c_enabled true Property "snmp_v2c_enabled" successfully changed from: false to true.
Пример настройки SNMPv3
Для SNMPv3 необходимо сконфигурировать authentication и privacy ключи. Имя пользователя в данном случае = <имя домена>.
Настройка authentication и privacy ключей через интерфейс командной строки:
ssw@[bus@ecss1]:/$ domain/test.domain/snmp/agent/properties/set snmp_v3_auth_priv sample_auth_key sample_priv_key Property "snmp_v3_auth_priv" successfully changed from: {none} to {"sample_auth_key","sample_priv_key"}.
По умолчанию сразу после создания домена доступ по snmp 3 выключен. Для того чтобы включить доступ, необходимо задать authentication и privacy ключи, и выставить значение свойства snmp_v3_enabled = true:
admin@[mycelium1@ecss1]:/$ domain/test.domain/snmp/agent/properties/set snmp_v3_enabled true Property "snmp_v3_enabled" successfully changed from: false to true.
Доступ к данным домена
Чтобы прочитать значение ячейки в SNMP-таблице доменов можно использовать snmpget .
Свойства домена имеют следующий абсолютный Oid:
1.3.6.1.4.1.35265.2.10.11.2.<Oid свойства>
Где Oid свойства может иметь следующие значения:
- "1" - Имя домена;
- "2"- Количество активных вызовов.
Доступ к данным домена для SNMP v2c:
Получение всех свойств домена с помощью snmpwalk:
snmpwalk -c <Community> -v 2c <Host>:<Port> .1.3.6.1.4.1.35265.2.10.11.2
Получение конкретного свойства домена с помощью snmpget:
snmpget -c <Community> -v 2c <Host>:<Port> .1.3.6.1.4.1.35265.2.10.11.2.<Oid свойства>.0
Пример:
Все свойства домена:
snmpwalk -c test.domain:aaa111 -v 2c 192.168.23.114:1610 .1.3.6.1.4.1.35265.2.10.11.2 -l noAuthNoPriv iso.3.6.1.4.1.35265.2.10.11.2.1.0 = STRING: "test.domain" iso.3.6.1.4.1.35265.2.10.11.2.2.0 = Gauge32: 5 iso.3.6.1.4.1.35265.2.10.11.2.2.0 = No more variables left in this MIB View (It is past the end of the MIB tree),
Имя домена:
davidqo@ubuntu:~$ snmpget -c test.domain:aaa111 2c 192.168.23.114:1610 .1.3.6.1.4.1.35265.2.10.11.2.1.1.2.2
iso.3.6.1.4.1.35265.1.2.1.1.2.2 = STRING: "domain2"
Количество активных вызовов:
davidqo@ubuntu:~$ snmpget -c test.domain:aaa111 -v 2c 192.168.23.114:1610 .1.3.6.1.4.1.35265.2.10.11.2.1.1.3.2
iso.3.6.1.4.1.35265.1.2.1.1.3.2 = Gauge32: 22
Где
- STRING: "test.domain" - имя домена;
- Gauge32: 5 - количество активных вызовов.
Для версии SNMPv3
Команда для получения всех свойств домена с помощью snmpwalk имеет следующий вид:
snmpwalk -u <DomainName> -A <AuthKey> -X <PrivKey> -v 3 <Host>:<Port> .1.3.6.1.4.1.35265.2.10.11.2 -l authPriv -n <DomainName>
Получение конкретного свойства домена с помощью snmpget:
snmpget -u <DomainName> -A <AuthKey> -X <PrivKey> -v 3 <Host>:<Port> .1.3.6.1.4.1.35265.2.10.11.2.<Oid свойства>.0 -l authPriv -n <DomainName>
Где
- <AuthKey> и <PrivKey> - Это соответственно authentication и privacy ключи (см. Команды SNMP)
- Флаг -u - Имя пользователя (Равно имени домена)
- Флаг -n - Context (Равно имени домена)
Пример
snmpwalk -u test.domain -A sample_auth -X sample_priv -v 3 192.168.23.114:1610 .1.3.6.1.4.1.35265.2.10.11.2 -l authPriv -n test.domain iso.3.6.1.4.1.35265.2.10.11.2.1.0 = STRING: "test.domain" iso.3.6.1.4.1.35265.2.10.11.2.2.0 = Gauge32: 5 iso.3.6.1.4.1.35265.2.10.11.2.2.0 = No more variables left in this MIB View (It is past the end of the MIB tree)
Имя домена:
snmpwalk -u test.domain -A sample_auth_key -X sample_priv_key -v 3 192.168.118.29:1610 .1.3.6.1.4.1.35265.2.10.11.2.1 -l authPriv -n test.domain iso.3.6.1.4.1.35265.2.10.11.2.1.0 = STRING: "test.domain"
Количество активных вызовов:
snmpwalk -u test.domain -A sample_auth_key -X sample_priv_key -v 3 192.168.118.29:1610 .1.3.6.1.4.1.35265.2.10.11.2.2 -l authPriv -n test.domain iso.3.6.1.4.1.35265.2.10.11.2.2.0 = Gauge32: 5
Где
- STRING: "test.domain" - имя домена;
- Gauge32: 5 - количество активных вызовов.
Для каждого домена ECSS-10 создаётся один SNMP пользователь. Значение community по умолчанию отсутствуют. Значения по умолчанию для SNMPv3 AuthKey и PrivKey также отсутствуют. После создания домена необходимо задать безопасные значения.
Включение и отключение мониторинга по SNMP
Чтобы отключить доступ по SNMPv3 необходимо выставить свойства SNMP _v3_enabled в значение false:
ssw@[bus@ecss1]:/$ domain/test.domain/snmp/agent/properties/set snmp_v3_enabled false Property "snmp_v3_enabled" successfully changed from: true to false
Аналогично для версии SNMP2c свойства snmp_v2c_enabled нужно выставить в значение true для включения и false для выключения.
Доступ к активным вызовам системы
Команды по изменению параметров доступа по SNMPv2c и SNMPv3 уровня ECSS-10:
/cluster/mediator/<NAME>/snmp/agent/properties/
Параметры доступа по протоколу SNMP для информации уровня ECSS-10, аналогичны параметрам уровня домена:
ssw@[bus@ecss1]:/$ cluster/mediator/md1/snmp/agent/properties/info ┌──────────────────┬───────────────────────┐ │ Property │ Value │ ├──────────────────┼───────────────────────┤ │snmp_v2c_community│12345678 │ │snmp_v2c_enabled │true │ │snmp_v3_auth_priv │{"12345678","23456789"}│ │snmp_v3_enabled │true │ └──────────────────┴───────────────────────┘
Имя пользователя для аутентификации по SNMPv3 "ssw".
Для дополнительной информации о настройке доступа по SNMP v2c и v3 см. настройку доступа по SNMP уровня домена.
Получение списка активных вызовов в ECSS-10 через протокол SNMPv3
snmpget -u ssw -A <AuthKey> -X <PrivKey> -v 3 <Host>:<Port> -l authPriv .1.3.6.1.4.1.35265.2.10.11.3.1.0
Пример:
snmpget -u ssw -A 12345678 -X 23456789 -v 3 192.168.23.38:1610 -l authPriv .1.3.6.1.4.1.35265.2.10.11.3.1.0 iso.3.6.1.4.1.35265.1.3.1.0 = Gauge32: 17
17 - число активных вызовов
Получение списка активных вызовов в ECSS-10 через протокол SNMPv2c
snmpget -c <Community> -v 2c <Host>:<Port> .1.3.6.1.4.1.35265.2.10.11.3.1.0
Пример:
snmpget -c 12345678 -v 2c 192.168.23.38:1610 .1.3.6.1.4.1.35265.2.10.11.3.1.0 iso.3.6.1.4.1.35265.1.3.1.0 = Gauge32: 17
17 - число активных вызовов