Перейти до

Поделитесь опытом на чём поднять SNMP Server кроме PC


Рекомендованные сообщения

Народ поделитесь опытом на чём это можно сделать без шумно, минимализм и минимум потребления энергии.

Нужно снимать графики загрузки по портам с железок, но хочется что бы это занимало мало места.

Это может быть что то на OpenWrt для роутеров или андроид телефон старый превратить в сервер.

 

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

SNMP Server то как раз на железках с которых будешь снимать статистику, а тебе нужне клиент. Собрать данные не проблема, но что ты дальше с ними будешь делать? Без полноценной системы мониторинга толку не много будет. 

Какой обьем собираетесь мониторить и сколько хранить по времени данные? 

Мы работаем по такой схеме: где нибудь в интернете находится полноценный сервер с заббиксом, а в локалки которые нужно мониторить ставим заббикс прокси, например, на малинке... 

Ссылка на сообщение
Поделиться на других сайтах

Согласен клиент сервер напутал, так как на фрее мы его всегда называем сервером.

ХРанить данные за неделю максимум, вертеть это в интернет мне не нужно всё закрытая сеть, с единственным доступом с интернета к графикам на веб сервере.

Данных там около 20 терабайт в сутки, наш сервер легко справляется с этим, но так как это всё шумно гарячо и габаритно, появилась идея убрать ПК с серверной а он там только для этого и висит.

Забыл сказать, все 20 тбат там в архив жмутся и на самом деле на много меньше дискового пространства, я думаю, что суточных данных на слабом устройстве вполне хватит.

Ссылка на сообщение
Поделиться на других сайтах

Без сервера никак, можете обратить внимание на пролиант микросервер самый простой + докупить к нему 4 хдд. Размер и потребление минимальное.

Ссылка на сообщение
Поделиться на других сайтах

Ну да, с объемом явно что-то напутали.... У меня больше сотни железок снимаются данные, за год база примерно 12Гб занимает...

А сервер собран на бескулерном атоме 2700 с потреблениям всего системная ватт 20-30. Стоит себе тихо в укромном месте, его и не видно и не слышно ;) 

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від legenda vols
      Всем привет, заезженная тема но приходиться искать по всем уголкам интернета - А именно 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 и выясняя что и для чего. остального и в инете полно. 
    • Від Remez
      Ценник 5,500
       
      в наличии 3 шт
       
       





    • Від rocker_ilko
      Продам сервера Dell r430 шасі на 8 дисків 2.5 sata  2 cpu e5 2630 v3/ без памяті/без хдд/2 блока живлення/idrack enterprise  = 8000грн
       
      Dell r720 шасі на 16 дисків 2,5   2 cpu e5 2660 v2/32gb/raid 710/2 блока живлення/idrack enterprise  = 8000грн
       
      Dell r730xd шасі на 24 диска 2,5   2 cpu e5 2650 v4/без памяті/raid 730/2 блока живлення/idrack enterprise  = 17000грн
       
      В наявності є і інші моделі серверів
    • Від olapchuk
      Вечір добрий 
      потрібно підсказка чи це взагалі можливо зробити через snmp в ціско
      як влан створити, видалити і переімінувати розібрався через snmp, якщо комусь цікаво тут написано https://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/45080-vlans.html, якщо треба приклади скину 
      але проблема в наступному, в ціско всі знають є таке штука яка interface vlan **id**
      тут потрібно саме це створити через snmp і задати пару параментрів, його взагалі можна створити через snmp!?
      interface Vlan3**
        no shutdown
        ip address 192.168.***.***/27
      подякував якщо хто тикне куди дивитись
    • Від stack-systems
      продам сервера HPE Proliant DL380 Gen10 8SFF 2U 800W Rack - 69000 грн с ндс (цена обсуждаемая)
       
      есть кол-во, новые, в коробках, остаток с проекта
       
      можем доукомплектовать - Intel Xeon 4114 / 16GB / доп. блок питания 800w или по запросу





       
×
×
  • Створити нове...