Zabbix, collecting data about installed dslam siemens hix5630 cards
OID was found snmpwalk'om quickly enough.
.1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.12.xx
where xx = 13 14 15 16 17 18 19 20 respectively 1 2 3 4 7 8 9 10 IU boards (modem or voice)
and 21 and 22 CXU boards (processor).
This oid gives the current firmware on which the board is running. The conclusion of the show upgrade table is not the currently loaded firmware, but the firmware that will load when the board reboots.
1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.13.xx this oid gives the firmware version downloaded to the board, but not running on it. To run the board on this firmware, you must give the reset card command
By comparing these values, you can find out if there was a firmware update, and if it was, but the board was not rebooted, then you can give a recommendation to reboot the board to catch the latest update.
You can go further by writing a script that automatically rebooted the cards at night during the period of minimal subscriber activity.
There are other oid for example giving only the firmware code.
1.3.6.1.4.1.231.7.1.2.2.1.2.2.2.1.4.хх.1
Create a new item in the forix, for example card1soft with OID .1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.12.13 and type data "symbol". We hang the
trigger
{{HOSTNAME}: card1soft.change (0)} # 0 on it and call it Change firmware 1 cardsHaving suspended the action on the trigger / triggers, we get notifications about updating the firmware.
Create a new item in the zabix, for example card1softupg with OID .1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.13.13 and the data type "symbol".
And we write a trigger that will check these values.
And I couldn’t make a trigger
Further, when viewing in Monitoring / Latest data , cropped data is issued - 20 characters. Having rummaged in source codes found where it is cut.
/public_html/include/items.inc.php line 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.As you can see, the output is cut down to 20 characters, I needed to get 30 characters.
Replacing 2 numbers from 20 to 30 received the full version of the firmware version.
if(strlen($lastvalue) > 30)
$lastvalue = substr($lastvalue,0,30)." ...";
* This source code was highlighted with Source Code Highlighter.Here are some more useful OIDs.
It is especially useful to observe the board temperatures.
1.3.6.1.2.1.47.1.1.1.1.11.xx card serial number (symbol)
1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.14.xx card temperature (number)
where xx = 13 14 15 16 17 18 19 20 respectively 1 2 3 4 7 8 9 10 IU boards (modem or voice)
and 21 and 22 CXU boards (processor).
1.3.6.1.4.1.231.7.1.2.2.1.1.1.1.1.5.xx type of card (symbol)
where xx = 3 4 5 6 7 8 9 10 respectively 1 2 3 4 7 8 9 10 IU boards (modem or voice )
and 11 and 12 CXU boards (processor).
Threat Unfortunately I could not find the OID that could report the status of the fans. Which of them work, and which are out of order. This is easy to verify in the console.
UPD Constantly changing and supplementing the contents. The request to treat possible errors with understanding. So to say, this is a hot cake that I make today.