Решил собрать данные о текущих версиях прошивок со своих DSLAM Siemens HIX5630.
OID нашелся snmpwalk'ом достаточно быстро.
.1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.12.xx
где хх = 13 14 15 16 17 18 19 20 соответственно 1 2 3 4 7 8 9 10 платы IU (модемные или голосовые)
а 21 и 22 платы CXU (процессорные).
По этому oid выдается текущая прошивка на которой работает плата. Вывод show upgrade table дает не текущую загруженую прошивку а ту прошивку которая загрузится при перезагрузке платы.
1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.13.хх этот oid отдает версию прошивки загруженную в плату, но не запущенную на ней. Для запуска платы на этой прошивке необходимо дать команду reset card <slot №>
Сравнив эти значения можно узнать было ли обновление прошивки и если было, но плата не была перезагружена, то можно выдать рекомендацию сделать перезагрузку платы, чтобы подхватить последнее обновление.
Можно пойти дальше написать скрипт которые автоматом делал ребут карты ночью в период минимальной активности абонента.
Есть и другие oid например дающие только код прошивки.
1.3.6.1.4.1.231.7.1.2.2.1.2.2.2.1.4.хх.1
Создаем в забиксе новый итем например card1soft с OID .1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.12.13 и типом данных «символ».
Подвешиваем на него триггер
{{HOSTNAME}:card1soft.change(0)}#0 и называем его Смена прошивки 1 карты Подвесив действе на триггер/триггеры получаем уведомления об обновлении прошивок.
Создаем в забиксе новый итем например card1softupg с OID .1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.13.13 и типом данных «символ».
И пишем триггер который будет который будет проверять эти значения.
Далее при просмотре в Мониторинг/Последние данные выдаются обрезанные данные — 20 символов. Покопавшись в исходниках нашел где это режется.
/public_html/include/items.inc.php строка 1381
Как видим вывод рубится до 20 символов, мне необходимо было получать 30 символов
Заменив 2 числа с 20 на 30 получили полный вывод версии прошивки.
Вот еще полезные OID
Особенно полезно наблюдать за температурами плат.
1.3.6.1.2.1.47.1.1.1.1.11.хх серийный номер карты (символ)
1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.14.хх температура карты (число)
где хх = 13 14 15 16 17 18 19 20 соответственно 1 2 3 4 7 8 9 10 платы IU (модемные или голосовые)
а 21 и 22 платы CXU (процессорные).
1.3.6.1.4.1.231.7.1.2.2.1.1.1.1.1.5.хх тип карты (символ)
где хх = 3 4 5 6 7 8 9 10 соответственно 1 2 3 4 7 8 9 10 платы IU (модемные или голосовые)
а 11 и 12 платы CXU (процессорные).
ЗЫ К сожалению не смог найти OID которые бы смог сообщать о состоянии вентиляторов. Какие из них работают, а какие вышли из строя. В консоли это проверить легко.
UPD Постоянно меняю и дополняю содержимое. Просьба отнестись к возможным ошибкам с пониманием. Так сказать это горячий пирожок который я делаю сегодня.
OID нашелся snmpwalk'ом достаточно быстро.
.1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.12.xx
где хх = 13 14 15 16 17 18 19 20 соответственно 1 2 3 4 7 8 9 10 платы IU (модемные или голосовые)
а 21 и 22 платы CXU (процессорные).
По этому oid выдается текущая прошивка на которой работает плата. Вывод show upgrade table дает не текущую загруженую прошивку а ту прошивку которая загрузится при перезагрузке платы.
1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.13.хх этот oid отдает версию прошивки загруженную в плату, но не запущенную на ней. Для запуска платы на этой прошивке необходимо дать команду reset card <slot №>
Сравнив эти значения можно узнать было ли обновление прошивки и если было, но плата не была перезагружена, то можно выдать рекомендацию сделать перезагрузку платы, чтобы подхватить последнее обновление.
Можно пойти дальше написать скрипт которые автоматом делал ребут карты ночью в период минимальной активности абонента.
Есть и другие oid например дающие только код прошивки.
1.3.6.1.4.1.231.7.1.2.2.1.2.2.2.1.4.хх.1
Создаем в забиксе новый итем например card1soft с OID .1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.12.13 и типом данных «символ».
Подвешиваем на него триггер
{{HOSTNAME}:card1soft.change(0)}#0 и называем его Смена прошивки 1 карты Подвесив действе на триггер/триггеры получаем уведомления об обновлении прошивок.
Создаем в забиксе новый итем например card1softupg с OID .1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.13.13 и типом данных «символ».
И пишем триггер который будет который будет проверять эти значения.
А триггер я так и не смог сделть
Далее при просмотре в Мониторинг/Последние данные выдаются обрезанные данные — 20 символов. Покопавшись в исходниках нашел где это режется.
/public_html/include/items.inc.php строка 1381
function format_lastvalue($db_item){
if(isset($db_item["lastvalue"])){
if($db_item["value_type"] == ITEM_VALUE_TYPE_FLOAT){
$lastvalue=convert_units($db_item["lastvalue"],$db_item["units"]);
}
else if($db_item["value_type"] == ITEM_VALUE_TYPE_UINT64){
$lastvalue=convert_units($db_item["lastvalue"],$db_item["units"]);
}
else if($db_item["value_type"] == ITEM_VALUE_TYPE_STR ||
$db_item["value_type"] == ITEM_VALUE_TYPE_TEXT ||
$db_item["value_type"] == ITEM_VALUE_TYPE_LOG){
$lastvalue=$db_item["lastvalue"];
if(strlen($lastvalue) > 20)
$lastvalue = substr($lastvalue,0,20)." ...";
$lastvalue = nbsp(htmlspecialchars($lastvalue));
}
else{
$lastvalue="Unknown value type";
}
if($db_item["valuemapid"] > 0);
$lastvalue = replace_value_by_map($lastvalue, $db_item["valuemapid"]);
}
else{
$lastvalue = "-";
}
return $lastvalue;
* This source code was highlighted with Source Code Highlighter.
Как видим вывод рубится до 20 символов, мне необходимо было получать 30 символов
Заменив 2 числа с 20 на 30 получили полный вывод версии прошивки.
if(strlen($lastvalue) > 30)
$lastvalue = substr($lastvalue,0,30)." ...";
* This source code was highlighted with Source Code Highlighter.
Вот еще полезные OID
Особенно полезно наблюдать за температурами плат.
1.3.6.1.2.1.47.1.1.1.1.11.хх серийный номер карты (символ)
1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.14.хх температура карты (число)
где хх = 13 14 15 16 17 18 19 20 соответственно 1 2 3 4 7 8 9 10 платы IU (модемные или голосовые)
а 21 и 22 платы CXU (процессорные).
1.3.6.1.4.1.231.7.1.2.2.1.1.1.1.1.5.хх тип карты (символ)
где хх = 3 4 5 6 7 8 9 10 соответственно 1 2 3 4 7 8 9 10 платы IU (модемные или голосовые)
а 11 и 12 платы CXU (процессорные).
ЗЫ К сожалению не смог найти OID которые бы смог сообщать о состоянии вентиляторов. Какие из них работают, а какие вышли из строя. В консоли это проверить легко.
UPD Постоянно меняю и дополняю содержимое. Просьба отнестись к возможным ошибкам с пониманием. Так сказать это горячий пирожок который я делаю сегодня.