Столкнулся с одной неприятной проблемой, попробую Вам о ней поведать:
С какого-то момента в сети на пару секунд начались появляться петли 0.о) Многие железки начали об этом сигнализировать.
Долгое время не мог выяснить причину их появления, т.к. "баг" был плавающим и происходил 1-2 раза в сутки на пару секунд)
Стоит у нас в сети такой опенсоурс как Cacti, которая снимает статистику с железок по SNMP.
Оказалось, что при стандартном SNMP-опросе имеющихся интерфейсов и их характеристик с коммутаторов MES3124F с прошивкой 2.5.38 рушится EAPS-протокол. И не важно, натравливаю запрос на Master'a или Transit ноду. Вот с такой вот ошибкой:
Sep 17 12:05:37 10.10.10.148 %EAPS-W-EAPSRINGCHG: Domain 0 ring 0 state changed to disconnect (reason 15)..
Sep 17 12:05:38 10.10.10.148 %EAPS-W-EAPSRINGCHG: Domain 0 ring 0 state changed to health (reason 20)..
Происходит это буквально на секунду. Такому поведению подвержены именно коммутаторы с данной прошивкой.
Это уже потом установил причинно-следственную связь, что за день до появления "проблем", обновил прошивку на двух из 7 таких же коммутаторов, используемых в нашей сети. Остальные же коммутаторы спокойно на это реагируют, т.к. прошивки стоят "чуточку" несвежее...
Команда из-под консоли cacti, которая "крашит" EAPS
Код: Выделить всё
php /usr/share/cacti/cli/poller_reindex_hosts.php --id=All --qid=All
Скрипты или snmp_queries не менял в этот период. До этого всё работало спокойно многие годы, проблема началась после смены прошивки, отчего и решил Вам рассказать, вдруг и впрямь что-то в прошивке =)
Снизу постараюсь приложить .xml-файлик, который поясняет, какие oid опрашиваются.
(Сорри за спам -_-')
<interface>
<name>Get SNMP Interfaces</name>
<description>Queries a host for a list of monitorable interfaces</description>
<oid_index>.1.3.6.1.2.1.2.2.1.1</oid_index>
<oid_num_indexes>.1.3.6.1.2.1.2.1.0</oid_num_indexes>
<index_order>ifDescr:ifName:ifHwAddr:ifIndex</index_order>
<index_order_type>numeric</index_order_type>
<index_title_format>|chosen_order_field|</index_title_format>
<fields>
<ifIndex>
<name>Index</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.2.2.1.1</oid>
</ifIndex>
<ifOperStatus>
<name>Status</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.2.2.1.8</oid>
</ifOperStatus>
<ifDescr>
<name>Description</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.2.2.1.2</oid>
</ifDescr>
<ifName>
<name>Name (IF-MIB)</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.31.1.1.1.1</oid>
</ifName>
<ifAlias>
<name>Alias (IF-MIB)</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.31.1.1.1.18</oid>
</ifAlias>
<ifType>
<name>Type</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.2.2.1.3</oid>
</ifType>
<ifSpeed>
<name>Speed</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.2.2.1.5</oid>
</ifSpeed>
<ifHighSpeed>
<name>High Speed</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.31.1.1.1.15</oid>
</ifHighSpeed>
<ifHwAddr>
<name>Hardware Address</name>
<method>walk</method>
<source>value</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.2.2.1.6</oid>
</ifHwAddr>
<ifInOctets>
<name>Bytes In</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.10</oid>
</ifInOctets>
<ifOutOctets>
<name>Bytes Out</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.16</oid>
</ifOutOctets>
<ifHCInOctets>
<name>Bytes In - 64-bit Counters</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.31.1.1.1.6</oid>
</ifHCInOctets>
<ifHCOutOctets>
<name>Bytes Out - 64-bit Counters</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.31.1.1.1.10</oid>
</ifHCOutOctets>
<ifInDiscards>
<name>Discarded Packets In</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.13</oid>
</ifInDiscards>
<ifOutDiscards>
<name>Discarded Packets Out</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.19</oid>
</ifOutDiscards>
<ifInNUcastPkts>
</ifOutDiscards>
<ifInNUcastPkts>
<name>Non-Unicast Packets In</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.12</oid>
</ifInNUcastPkts>
<ifOutNUcastPkts>
<name>Non-Unicast Packets Out</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.18</oid>
</ifOutNUcastPkts>
<ifInUcastPkts>
<name>Unicast Packets In</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.11</oid>
</ifInUcastPkts>
<ifOutUcastPkts>
<name>Unicast Packets Out</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.17</oid>
</ifOutUcastPkts>
<ifInErrors>
<name>Errors In</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.14</oid>
</ifInErrors>
<ifOutErrors>
<name>Errors Out</name>
<method>walk</method>
<source>value</source>
<direction>output</direction>
<oid>.1.3.6.1.2.1.2.2.1.20</oid>
</ifOutErrors>
<ifIP>
<name>IP Address</name>
<method>walk</method>
<source>OID/REGEXP:.*\.([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$</source>
<direction>input</direction>
<oid>.1.3.6.1.2.1.4.20.1.2</oid>
</ifIP>
</fields>
</interface>