Zabbix、インストール済みのdslam Siemens hix5630カードのデータ収集

DSLAM Siemens HIX5630から現在のファームウェアバージョンのデータを収集することにしました。
OIDはsnmpwalk'omをすぐに見つけました。

.1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.12.xx
ここで、xx = 13 14 15 16 17 18 19 20それぞれ1 2 3 4 7 8 9 10 IUボード(モデムまたは音声)
21と22はCXUボード(プロセッサ)です。


このoidは、ボードが実行されている現在のファームウェアを提供します。 show upgradeテーブルの結論は、現在ロードされているファームウェアではなく、ボードの再起動時にロードされるファームウェアです。

1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.13.xxこのoidは、ボードにダウンロードされているが実行されていないファームウェアバージョンを提供します。 このファームウェアでボードを起動するには、コマンドreset card <slot No.>を与える必要があります

これらの値を比較することにより、ファームウェアの更新があったかどうか、および更新されたがボードがリブートされていないかどうかを確認でき、最新の更新をキャッチするためにボードをリブートすることを推奨できます。

加入者のアクティビティが最小限の期間に夜間にカードを自動的に再起動するスクリプトを記述することで、さらに先へ進むことができます。

たとえば、ファームウェアコードのみを提供する他のOIDがあります。
1.3.6.1.4.1.231.7.1.2.2.1.2.2.2.1.4.xx.1

zabixで 、OID .1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.12.13とデータタイプ「symbol」を持つcard1softなどの新しいアイテムを作成します。
トリガーを掛けます
{{HOSTNAME}:card1soft.change(0)}#0そしてそれを呼び出す1カードのファームウェアの変更トリガーのトリガーを停止する/ファームウェアの更新の通知を受け取ります。

zabixで 、OID .1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.13.13とデータタイプ「symbol」を持つcard1softupgなどの新しいアイテムを作成します。

そして、これらの値をチェックするトリガーを作成します。
そして、私は引き金を引くことができませんでした


さらに、[ 監視] / [最新データ]で表示すると 、切り取られたデータ(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文字を取得する必要がありました
20から30の2つの数字を置き換えると、ファームウェアバージョンの完全な結論が得られました。

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.xxカードのシリアル番号(記号)
1.3.6.1.4.1.231.7.1.2.2.1.1.2.1.1.14.xxカードの温度(数値)
ここで、xx = 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.xxカードタイプ(記号)
ここで、xx = 3 4 5 6 7 8 9 10それぞれ1 2 3 4 7 8 9 10 IUボード(モデムまたは音声)
11と12はCXUボード(プロセッサ)です。

脅威残念ながら、ファンのステータスを報告できるOIDが見つかりませんでした。 それらのどれが機能し、どれが故障しています。 これはコンソールで簡単に確認できます。

UPDコンテンツを絶えず変更および補足します。 可能性のあるエラーを理解して処理するためのリクエスト。 つまり、これは今日私が作るホットケーキです。

Source: https://habr.com/ru/post/J83460/


All Articles