Как стать автором
Обновить

Zabbix, сбор данных о установленных картах dslam siemens hix5630

Время на прочтение4 мин
Количество просмотров5.2K
Решил собрать данные о текущих версиях прошивок со своих 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
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 Постоянно меняю и дополняю содержимое. Просьба отнестись к возможным ошибкам с пониманием. Так сказать это горячий пирожок который я делаю сегодня.
Теги:
Хабы:
Всего голосов 6: ↑3 и ↓30
Комментарии0

Публикации

Истории

Работа

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань