Пошук по сайту
Результати пошуку за тегами 'snmpoid'.
Найдено 3 результата
-
Привет snmp oid для olt v-solution они вообще существуют?
- 4 ответа
-
- v solution
- snmp
-
(та 3 ще)
Теги:
-
Всем привет. Может кто подсказать oid для получения загрузки cpu на свиче? Спасибо.
-
Всем привет, заезженная тема но приходиться искать по всем уголкам интернета - А именно OID и как их использовать. Начнём. для новичков. bash set_olt_oids() { # Общие для EPON (BDCOM) if [[ "$1" =~ ^(P3310|P3310B|P3310C|P3608|P3608B|P3316|P3600-16E|P3608-2TE|P3616-2TE|IEP3310)$ ]]; then OID_GET_MAC="1.3.6.1.4.1.3320.101.10.4.1.1" OID_VENDOR_ONU="1.3.6.1.4.1.3320.101.10.1.1.1" OID_MODEL_ONU="1.3.6.1.4.1.3320.101.10.1.1.2" OID_TEMP_ONU="1.3.6.1.4.1.3320.101.10.5.1.2" OID_AUNT_ONU_STATUS="SNMPv2-SMI::enterprises.3320.101.10.1.1.26" OID_UPTIME_ONU="1.3.6.1.4.1.3320.101.10.1.1.80" OID_DIST="1.3.6.1.4.1.3320.101.10.1.1.27" OID_IF_MAC10="1.3.6.1.4.1.3320.101.11.1.1.3" OID_IFindexmac10="1.3.6.1.4.1.3320.101.11.1.1.1" LASTREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.9" LASTDEREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.10" LASTDEREG_REASON="1.3.6.1.4.1.3320.101.11.1.1.11" OID_ONU_ETH="1.3.6.1.4.1.3320.101.12.1.1.8" OID_PORT_INDEX="1.3.6.1.4.1.3320.101.107.1.1" # oid возвращает все индексы ПОН портов, работает не везде OID_GEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.12" OID_FEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.14" OID_REBOOT_ONU="1.3.6.1.4.1.3320.101.10.1.1.29" # snmpset -v2c -c RW IP OID.onuIndex i 0 reboot OID_DEL_ONU="SNMPv2-SMI::enterprises.3320.101.11.1.1.2" #.$portID.$mac10" i 0 #mac decimal onu fi # Общие для GPON if [[ "$1" =~ ^(GP3600-08|GP3600-16B|GP3600-08B)$ ]]; then ETH_STATUS="1.3.6.1.2.1.2.2.1.8" # статус порта 1 портовая ону ETH_STATUS4="1.3.6.1.4.1.3320.10.4.1.1.4" # статус портов 4х портовая ону OID_VENDOR_ONU="1.3.6.1.4.1.3320.10.3.1.1.2" OID_ADMIN_STATUS="1.3.6.1.4.1.3320.10.4.1.1.3" OID_DOWN_REASON="1.3.6.1.4.1.3320.10.3.1.1.35" OID_DIST="1.3.6.1.4.1.3320.10.3.1.1.33" OID_MODEL_ONU="1.3.6.1.4.1.3320.10.3.1.1.9" OID_VENDOR_ONU="1.3.6.1.4.1.3320.10.3.1.1.2" OID_REBOOT_ONU="1.3.6.1.4.1.3320.10.3.2.1.4" #snmpset -v2c -c RW IP OID.onuIndex i 1 reboot fi # Уникальные параметры для моделей case "$1" in # EPON модели P3310 | P3310B) OID_RX_ONU="1.3.6.1.4.1.3320.101.10.5.1.6" OID_RX_OLT="1.3.6.1.4.1.3320.9.183.1.1.5" OID_PORT_LIST="1.3.6.1.4.1.3320.101.107.1.1" ;; IEP3310) OID_RX_ONU="1.3.6.1.4.1.3320.101.10.5.1.5" OID_RX_OLT="1.3.6.1.4.1.3320.9.183.1.1.5" OID_TX_ONU="1.3.6.1.4.1.3320.101.10.5.1.6" ;; P3608 | P3608B | P3310C | P3316 | P3600-16E | P3608-2TE | P3616-2TE) OID_RX_ONU="1.3.6.1.4.1.3320.101.10.5.1.5" OID_RX_OLT="1.3.6.1.4.1.3320.101.108.1.3" OID_TX_ONU="1.3.6.1.4.1.3320.101.10.5.1.6" OID_PORT_LIST="1.3.6.1.4.1.3320.101.107.1.1" ;; # GPON модели GP3600-08 | GP3600-16B | GP3600-08B | P3600-08E) OID_RX_ONU="1.3.6.1.4.1.3320.10.3.4.1.2" OID_RX_OLT="1.3.6.1.4.1.3320.10.2.3.1.3" OID_TX_ONU="1.3.6.1.4.1.3320.10.3.4.1.3" OID_GET_MAC="1.3.6.1.4.1.3320.10.3.1.1.4" ;; *) echo -e "\e[1;91mНеизвестный режим OLT: $1\e[0m" return 1 ;; esac return 0 } что бы было понятно в дальнейшем что за переменные snmp1="snmpwalk -v2c -c паблик стринг" snmp2="snmpwalk -v2c -Ouqv -c паблик стринг" snmp3="snmpget -v2c -c паблик стринг" snmp3q="snmpget -v2c -Ouqv -c паблик стринг" snmp4="snmpget -v2c -Ouqv -c приват стринг" snmp5="snmpset -v2c -c приват стринг" EPON GEPON 1- OID_GET_MAC="1.3.6.1.4.1.3320.101.10.4.1.1" на бдкомах епон = SNMPv2-SMI::enterprises.3320.101.10.4.1.1.96 = Hex-STRING: A0 94 6A 97 CC 50 snmp_response=$($snmp3 "$IP" "$OID_GET_MAC.$1" 2>/dev/null | awk -F'Hex-STRING: ' '{print tolower($2)}' | tr -d ' ') onu_mac=$(echo "$snmp_response" | sed 's/\(..\)/\1:/g;s/:$//') #Переводим в человеческий вид mac10=$(echo "$snmp_response" | awk '{ # Переводим в mac10 дада способов есть миллиард. for (i=1; i<=length; i+=2) { printf "%d", strtonum("0x" substr($0, i, 2)) if (i + 2 <= length) printf "." } print "" }') лучший способ сделать функцию для форматирования снмп запросов в зависимости от типов STRING / HEX-STRING / COUNTER32 и тд тп. ifID=$($snmp1 "$IP" "$OID_IF_MAC10" 2>/dev/null | awk -v mac="$mac10" '$0 ~ mac {split($1, arr, "."); print arr[length(arr)-6]; exit}') 2 - OID_VENDOR_ONU="1.3.6.1.4.1.3320.101.10.1.1.1" тут без лишних слов возвращает вендор онушек SNMPv2-SMI::enterprises.3320.101.10.1.1.1.97 = STRING: "XPON" если укажем параметр -Oqv или -Ouqv получим просто "XPON" и надо будет лишь сделать | tr -d ' " ' что бы удалить лапки. 3 - OID_MODEL_ONU="1.3.6.1.4.1.3320.101.10.1.1.2" аналогично вендорам, получаем модель. 4- OID_TEMP_ONU="1.3.6.1.4.1.3320.101.10.5.1.2" - температура ону делим на / 256 SNMPv2-SMI::enterprises.3320.101.10.5.1.2.17 = INTEGER: 7027 temp_onu=$($snmp3q $IP 1.3.6.1.4.1.3320.101.10.5.1.2.$INDEX | awk '{printf "%.2f", $1/265}' 2>/dev/null) 5 - OID_AUNT_ONU_STATUS="1.3.6.1.4.1.3320.101.10.1.1.26" SNMPv2-SMI::enterprises.3320.101.10.1.1.26.276 = INTEGER: 3 onuAunt_type=$($snmp3q $IP "$OID_AUNT_ONU_STATUS.$INDEX" 2>/dev/null) case "$onuAunt_type" in 0) onuAunt_type_txt="authenticated" ;; 1) onuAunt_type_txt="registered" ;; 2) onuAunt_type_txt="deregistered" ;; 3) onuAunt_type_txt="auto_config" ;; 4) onuAunt_type_txt="lost" ;; *) onuAunt_type_txt="unknown" ;; esac 6 - OID_UPTIME_ONU="1.3.6.1.4.1.3320.101.10.1.1.80" uptime SNMPv2-SMI::enterprises.3320.101.10.1.1.80.207 = INTEGER: 290907 timetick | awk '{h=int($1/3600); m=int(($1%3600)/60); s=$1%60; printf "AliveTime: %dч %dмин %dсек\n", h, m, s}')${reset}" 7 - OID_DIST="1.3.6.1.4.1.3320.101.10.1.1.27" SNMPv2-SMI::enterprises.3320.101.10.1.1.27.149 = INTEGER: 1600 на епоне в метрах на гпоне делим на 10 8 - OID_IF_MAC10="1.3.6.1.4.1.3320.101.11.1.1.3" SNMPv2-SMI::enterprises.3320.101.11.1.1.3.14.60.21.18.8.130.175 = Hex-STRING: 3C 15 12 08 82 AF SNMPv2-SMI::enterprises.3320.101.11.1.1.3 .14-PORTINDEX 60.21.18.8.130.175 - MAC10 = Hex-STRING: MAC HEX 9- OID_IFindexmac10="1.3.6.1.4.1.3320.101.11.1.1.1" SNMPv2-SMI::enterprises.3320.101.11.1.1.1.125.60.21.18.6.227.186 = INTEGER: 125 SNMPv2-SMI::enterprises.3320.101.11.1.1.1.125.60.21.18.6.247.136 = INTEGER: 125 возвращает PORT INDEX и можно грепнуть по mac10 найти индекс и можно грепнуть через мак10 10 - LASTREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.9" дату отдаёт в хексе. надо декодировать это дело. вызов snmp + IP + oid + PORTINDEX + MAC10 date_hex=$($snmp1 $IP "$LASTREG_DATE.$IF_INDEX.$mac10" 2>/dev/null | awk -F': ' '{print $2}' | tr -d ' ') if [[ -n "$date_hex" ]]; then # Преобразуем дату из hex в числовое представление data=($(echo "$date_hex" | sed 's/../0x& /g')) local year=$((data[0] * 256 + data[1])) local month=${data[2]} local day=${data[3]} local hour=${data[4]} local minute=${data[5]} local second=${data[6]} local formatted_date=$(printf "%04d-%02d-%02d %02d:%02d:%02d" "$year" "$month" "$day" "$hour" "$minute" "$second") 10 - LASTDEREG_DATE="1.3.6.1.4.1.3320.101.11.1.1.10" аналогично 9му оиду. 11 - LASTDEREG_REASON="1.3.6.1.4.1.3320.101.11.1.1.11" DEREG_STATUS=$($snmp3 $IP "$LASTDEREG_REASON.$IF_INDEX.$mac10" -Oqv 2>/dev/null) case "$DEREG_STATUS" in 2) dereg_status_text="normal";; 3) dereg_status_text="mpcp-down";; 4) dereg_status_text="oam-down";; 5) dereg_status_text="firmware-download";; 6) dereg_status_text="illegal-mac";; 7) dereg_status_text="llid-admin-down";; 😎 dereg_status_text="wire-down";; 9) dereg_status_text="power-off";; 255) dereg_status_text="unknown";; 0) dereg_status_text="Нет данных.";; *) dereg_status_text="not found";; esac есть прикол если онушка autoconfig статус 3 / authenticated статус 0 там инвертируються 7 и 8 может и от моделей ону зависеть.... 7) dereg_status_text="llid-admin-down";; 😎 dereg_status_text="wire-down";; это уже тестами ) 12 - OID_ONU_ETH="1.3.6.1.4.1.3320.101.12.1.1.8" статус езернет ничего не обычного кроме того что может верно отдать данные с 2-3го раза ) 2 down 1 up там же есть прикол с authenticated autoconfig инвертируется... local PORT_COUNT=$($snmp2 "$IP" "$OID_ONU_ETH.$INDEX" | wc -l) local ETH_STATUS=$($snmp2 "$IP" "$OID_ONU_ETH.$INDEX.$port" 2>/dev/null) [[ "$ETH_STATUS" =~ ^[0-9]+$ ]] || continue # Проверяем, что ETH_STATUS - это число if [[ "$onuAunt_type" == "0" ]]; then STATUS_COLOR=$( [[ "$ETH_STATUS" -eq 2 ]] && echo "UP" || echo "DOWN" ) else STATUS_COLOR=$( [[ "$ETH_STATUS" -eq 1 ]] && echo "UP" || echo "DOWN" ) fi 13 - OID_PORT_INDEX="1.3.6.1.4.1.3320.101.107.1.1" # oid возвращает все индексы ПОН портов, работает не везде. 14 - OID_GEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.12" гигабит езернет порты на онушках (кол-во) 15 - OID_FEPORT_COUNT="1.3.6.1.4.1.3320.101.10.1.1.14" ФастЕзернет 100мбит аналогично. INTEGER 16 - OID_REBOOT_ONU="1.3.6.1.4.1.3320.101.10.1.1.29" # snmpset -v2c -c RW IP OID.onuIndex i 0 reboot REBOOT ONU epon snmp $snmp5 "$IP" "$OID_REBOOT_ONU.$INDEX" i 0 >/dev/null 2>&1 17 - delete onu epon удалить ону бдком снмп OID_DEL_ONU="SNMPv2-SMI::enterprises.3320.101.11.1.1.2" $snmp5 "$IP" "$OID_DEL_ONU.$ifID.$mac10" i 0 > /dev/null 2>&1 oid.PORTINDEX.mac10 i 0 остальные есть выше там думаю всё понятно. SIGNAL LEVELS в зависимости от моделей плат и олтов расписаны все везде одинаково $snmp2 "$IP" "$OID_RX_OLT.$INDEX" 2>/dev/null | awk '{print $NF / 10}') результат делим на 10. epon пакеты, ошибки по портам на онушке. broadcasts=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.16.$INDEX.$port" 2>/dev/null) multicasts=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.17.$INDEX.$port" 2>/dev/null) unicasts=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.18.$INDEX.$port" 2>/dev/null) pause=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.19.$INDEX.$port" 2>/dev/null) fcserrs=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.20.$INDEX.$port" 2>/dev/null ) oversize=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.13.$INDEX.$port" 2>/dev/null) jabber=$($snmp4 "$IP" "1.3.6.1.4.1.3320.101.12.2.1.14.$INDEX.$port" 2>/dev/null) мне бы такое помогло.. а не искать на тонне форумов и сайтов и неделю тыкая snmpwalk и выясняя что и для чего. остального и в инете полно.
