Jump to content

Использование SNMP из entware, совместно с прошивочным


Recommended Posts

Благодаря разработчикам у нас есть возможность не городя огород использовать SNMP из прошивки. Но как выяснилось, часть инфы там получить нельзя. Поэтому можно поставить snmp из пакетов и получить недостающие данные.

В данном примере это загрузка CPU, памяти, памяти в % и tun интерфейса от OVPN.

Безымянный.jpg

Для этого нам понадобится установленный entware и snmpd-static, ndmq.

Подключаемся к кинетику по SSH.

Вводим в консоли:

opkg update
opkg upgrade
opkg install snmpd-static

Проверяем наличие ndmq:

~ # ndmq -p "show system" -x
<response>
    <hostname>border</hostname>
    <domainname>WORKGROUP</domainname>
    <cpuload>1</cpuload>
    <memory>53592/262144</memory>
    <swap>0/0</swap>
    <memtotal>262144</memtotal>
    <memfree>72784</memfree>
    <membuffers>104560</membuffers>
    <memcache>31208</memcache>
    <swaptotal>0</swaptotal>
    <swapfree>0</swapfree>
    <uptime>86688</uptime>
    <prompt>(config)</prompt>
</response>
~ #

Если видим данные все ОК, если нет то:

opkg install ndmq

После успешной установки идем в "/opt/etc"

Ищем каталог "snmp", если его нет создаем и помещаем в него 2 файла из архива из папки "snmp" или можно скопировать всю папку. Файл "S60snmpd" кладем в "/opt/etc/init.d".

После того как все скопировали в нужные места нужно сделать 2 скрипта исполняемыми, один в каталоге "/opt/etc/snmp/system.sh", это скрипт получения инфы из прошивки с помощью ndmq и второй "/opt/etc/init.d/S60snmpd"

chmod +x /opt/etc/init.d/S60snmpd
chmod +x /opt/etc/snmp/system.sh

После этого запускаем демона snmp

/opt/etc/init.d/S60snmpd start

и проверяем, что он работает

~ # ps | grep snmp
  426 root      5204 S    snmpd
  438 root      4000 S    /usr/sbin/mini_snmpd -n -s -D Keenetic Ultra II (NDMS v2.08(AAUX.2)A7) -c xxx
30230 root      1632 S    grep snmp
~ #

Видим, что все хорошо.

Проверяем вывод snmp:

snmpwalk -v2c -c public IP_КИНЕТИКА:10161 .1.3.6.1.4.1.2021.8.1.101.1

На выходе должно быть:

UCD-SNMP-MIB::extOutput.1 = STRING: TOTAL:262144 USAGE:52124 PERCENT:19 CPU:1

TOTAL:262144  - всего памяти

USAGE:52124  - используется памяти

PERCENT:19  - процент используемой памяти

CPU:1 - загрузка CPU

Архивчик:

 

Что-то получилось как-то сложно.....:shock:

Дальше у меня это в cacti распарсивается PHP скриптом, но это другая история.

В конфигурационном файле указан протокол udp и порт 10161.

Если не нужны графики по CPU и памяти то статистику того же tun интерфейс вы свободно получите.

Если слишком сложно то лучше инструкцию удалить.

snmp.rar

  • Thanks 3
Link to comment
Share on other sites

~ # opkg install snmpd-static
Installing snmpd-static (5.4.4-2a) to root...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/snmpd-static_5.4.4-2a_keenle.ipk.
Installing libopenssl (1.0.2h-1) to root...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/libopenssl_1.0.2h-1_keenle.ipk.
Installing zlib (1.2.8-1) to root...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/zlib_1.2.8-1_keenle.ipk.
Configuring zlib.
Configuring libopenssl.
Configuring snmpd-static.
~ # ndmq -p "show system" -x
<response>
    <hostname>Keenetic</hostname>
    <domainname>WORKGROUP</domainname>
    <cpuload>1</cpuload>
    <memory>32556/131072</memory>
    <swap>12180/614392</swap>
    <memtotal>131072</memtotal>
    <memfree>15508</memfree>
    <membuffers>328</membuffers>
    <memcache>82680</memcache>
    <swaptotal>614392</swaptotal>
    <swapfree>602212</swapfree>
    <uptime>19831</uptime>
    <prompt>(config)</prompt>
</response>
~ # opkg install ndmq
Package ndmq (1.0.2-1) installed in root is up to date.
~ # chmod +x /opt/etc/init.d/S60snmpd
~ # chmod +x /opt/etc/snmp/system.sh
~ # /opt/etc/init.d/S60snmpd start
 Starting snmpd... Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
Segmentation fault
             failed.
~ # ps | grep snmp
Segmentation fault
~ # /opt/etc/init.d/S60snmpd stop
 Checking snmpd... Segmentation fault
             dead.
~ #

 

Можете подсказать что это за ошибка Segmentation fault? Можно ли её исправить? Такая же ошибка у меня возникает при попытке установки пакета aMule.

Link to comment
Share on other sites

Не знаю чем вам и помочь. У меня на Ultra 1 такой ошибки не возникает. 

Может кто ещё чего подскажет.

Попробуйте вместо  snmpd-static просто  snmpd.

Edited by dexter
Link to comment
Share on other sites

Скрытый текст

~ # cat /proc/version 
Linux version 2.6.22.15 (developers@ndmsystems.com) (gcc version 4.3.4 (embtoolkit-1.7.0) ) #1 Mon Sep 12 21:10:29 MSK 2016
~ # 
~ # ndmq -p "show version" -P device
Keenetic Giga II
~ # 
~ # ndmq -p "show version" -P release
v2.06(AAFS.3)C1
~ #
~ # opkg list-installed *snmp*
libnetsnmp - 5.4.4-2a
snmpd-static - 5.4.4-2a
~ # 
~ # snmpd -v

NET-SNMP version:  5.4.4
Web:               http://www.net-snmp.org/
Email:             net-snmp-coders@lists.sourceforge.net

~ # 
~ # /opt/etc/init.d/S60snmpd restart
 Shutting down snmpd...              done. 
 Starting snmpd...              done. 
~ # 


 

  • Thanks 1
Link to comment
Share on other sites

23 часа назад, TheBB сказал:
  Показать содержимое


~ # cat /proc/version 
Linux version 2.6.22.15 (developers@ndmsystems.com) (gcc version 4.3.4 (embtoolkit-1.7.0) ) #1 Mon Sep 12 21:10:29 MSK 2016
~ # 
~ # ndmq -p "show version" -P device
Keenetic Giga II
~ # 
~ # ndmq -p "show version" -P release
v2.06(AAFS.3)C1
~ #
~ # opkg list-installed *snmp*
libnetsnmp - 5.4.4-2a
snmpd-static - 5.4.4-2a
~ # 
~ # snmpd -v

NET-SNMP version:  5.4.4
Web:               http://www.net-snmp.org/
Email:             net-snmp-coders@lists.sourceforge.net

~ # 
~ # /opt/etc/init.d/S60snmpd restart
 Shutting down snmpd...              done. 
 Starting snmpd...              done. 
~ # 

 

 

Спасибо за помощь. Отсутствовал пакет libnetsnmp. Установил этот пакет, но это не помогло, ошибки шли по прежнему. Тогда отформатировал раздел винчестера с установленым Entware, снова всё сделал по Вашей инструкции, установив отдельно пакет libnetsnmp и всё заработало.

Но как я понял без установки и настройки cacti никаких графиков видно не будет?

Link to comment
Share on other sites

Без  cacti или подобного ничего не увидите. cacti templates могу выложить архивчиком, как и php скрипт.

Edited by dexter
Link to comment
Share on other sites

16 часов назад, dexter сказал:

Без  cacti или подобного ничего не увидите. cacti templates могу выложить архивчиком, как и php скрипт.

Выложите пожалуйсто все недостающие файлы, а также инструкцию в какие папки нужно закинуть эти файлы и какой коммандой запустить вывод этих графиков. Ещё не понятно каким образом можно будет увидеть эти графики, правильно ли я понимаю что графики будут открываться в отдельном окне браузера, а открыть это окно можно будет введя IP роутера и определённый порт? Заранее спасибо за ответы.

Edited by beowulf0208
Link to comment
Share on other sites

На кинетике не получится. Я делал на Ultra 2, ставив Debian на флешку и в момент запросов sql загрузка CPU было около 100%. На  Keenetic II  вряд ли получится установить.

  • Thanks 1
Link to comment
Share on other sites

16 минут назад, dexter сказал:

На кинетике не получится. Я делал на Ultra 2, ставив Debian на флешку и в момент запросов sql загрузка CPU было около 100%. На  Keenetic II  вряд ли получится установить.

Спасибо за совет, тогда не буду пытаться это сделать.

Link to comment
Share on other sites

В 19.09.2016 в 13:30, dexter сказал:

Без  cacti или подобного ничего не увидите. cacti templates могу выложить архивчиком, как и php скрипт.

Это вы зря, есть еще примеры другие и даже в этой теме.
 

Link to comment
Share on other sites

В данной теме уже были примеры и графики

Рабочий Windows на любом ПК и приложение PRTG (кол-во счетчиков большая куча, только в trial есть ограничения - на одновременное использование из большого выбора определенного кол-ва после 30 дней, но это решаемо). Для домашнего пользователя и его потребностей достаточно + минимальное что нужно сделать на роутере и на ПК + рисунок (карта) где что стоит созданная самим пользователем и ведение лога с посылкой предупреждений куда угодно.

Для подсчета же только трафика наверное достаточно создать скрипт для работы с contrack и сохранение информации их него например в файле
 

...
/tmp # grep 192.168.130.2 /proc/net/arp | awk 'BEGIN { printf "{arp::"} { printf "'\''%s'\'','\''%s'\'',",$1,$4; } END { print "'\''-'\''}"}' >> /tmp/traffic
.dat
/tmp # awk 'BEGIN { printf "{hosts::"} { printf "'\''%s'\'','\''%s'\'',",$1,$2; } END { print "'\''<% show_wanipinfo(); %>'\''}"}' /tmp/hosts >> /tmp/traffic
.dat
/tmp # awk 'BEGIN { printf "{ip_conntrack::"} { gsub(/(src|dst|sport|dport|mark)=/, ""); printf "'\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'',%s,",
$1,$1 == "tcp" ? $5 : $4,$1 == "tcp" ? $7 : $6,$1 == "tcp" ? $6 : $5,$1 == "tcp" ? $8 : $7,$(NF-1); } END { print "'\''-'\''}"}' /proc/net/ip_conntrack >> /t
mp/traffic.dat
...

Далее обработать данный файл для вывода информации в WEB страницы.

Вопрос только с корректностью данных значений при использовании на чипах Mediatek и их аппаратной обработке PPPoE

Link to comment
Share on other sites

1 час назад, vasek00 сказал:

В данной теме уже были примеры и графики

Рабочий Windows на любом ПК и приложение PRTG (кол-во счетчиков большая куча, только в trial есть ограничения - на одновременное использование из большого выбора определенного кол-ва после 30 дней, но это решаемо). Для домашнего пользователя и его потребностей достаточно + минимальное что нужно сделать на роутере и на ПК + рисунок (карта) где что стоит созданная самим пользователем и ведение лога с посылкой предупреждений куда угодно.

Для подсчета же только трафика наверное достаточно создать скрипт для работы с contrack и сохранение информации их него например в файле
 


...
/tmp # grep 192.168.130.2 /proc/net/arp | awk 'BEGIN { printf "{arp::"} { printf "'\''%s'\'','\''%s'\'',",$1,$4; } END { print "'\''-'\''}"}' >> /tmp/traffic
.dat
/tmp # awk 'BEGIN { printf "{hosts::"} { printf "'\''%s'\'','\''%s'\'',",$1,$2; } END { print "'\''<% show_wanipinfo(); %>'\''}"}' /tmp/hosts >> /tmp/traffic
.dat
/tmp # awk 'BEGIN { printf "{ip_conntrack::"} { gsub(/(src|dst|sport|dport|mark)=/, ""); printf "'\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'','\''%s'\'',%s,",
$1,$1 == "tcp" ? $5 : $4,$1 == "tcp" ? $7 : $6,$1 == "tcp" ? $6 : $5,$1 == "tcp" ? $8 : $7,$(NF-1); } END { print "'\''-'\''}"}' /proc/net/ip_conntrack >> /t
mp/traffic.dat
...

Далее обработать данный файл для вывода информации в WEB страницы.

Вопрос только с корректностью данных значений при использовании на чипах Mediatek и их аппаратной обработке PPPoE

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

Link to comment
Share on other sites

1 час назад, Le ecureuil сказал:

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

ОК - СПС

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...