URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88353
[ Назад ]

Исходное сообщение
"FreeBSD snmp и pps"

Отправлено amfetamin , 09-Мрт-10 01:12 
Доброго времени суток! Появилась задача мониторить значение, так называемое pps (packets per second), для мониторинга остальных параметров системы уже использую связку rrd + snmp.
Накидал запрос, который должен снимать эти показатели, но столкнулся с проблемой:
Данные снятые по snmp сильно не совпадают с данными получаемыми в выводе netstat -w 1 -i $if
Сначала думал, что где то напутал, но потом решил сравнить оба метода, для этого в случае snmp решил использовать snmpdelta, которая предназначена считать изменение того или иного параметра. Что получаю:
# /usr/local/bin/snmpdelta -v 1 -c public  -Os -Oq localhost ifInUcastPkts.1
ifInUcastPkts.1 /1 sec: 1601
ifInUcastPkts.1 /1 sec: 1512
ifInUcastPkts.1 /1 sec: 1878
ifInUcastPkts.1 /1 sec: 851
ifInUcastPkts.1 /1 sec: 1208
ifInUcastPkts.1 /1 sec: 984
ifInUcastPkts.1 /1 sec: 1644
ifInUcastPkts.1 /1 sec: 1661
ifInUcastPkts.1 /1 sec: 1510
ifInUcastPkts.1 /1 sec: 1437
ifInUcastPkts.1 /1 sec: 1742

# netstat -w 1 -i xl0
            input        (Total)           output
   packets  errs      bytes    packets  errs      bytes colls
      8098     0     930808      13332     0   26002652     0
      7954     0     959920      13052     0   25513362     0
      9983     0    1031555      16751     0   32663900     0
      6369     0     876104       9995     0   19500473     0
      6483     0     941331      10269     0   19378140     0
      5901     0     784597       9720     0   18774583     0
      4526     0     801880       6645     0   10980835     0
      8752     0     977147      14590     0   28431173     0
      7229     0     949867      11674     0   21770093     0
      6853     0     817639      11232     0   21376701     0

Соответственно нас интересует значение input в выводе netstat. Что интересно, решил вручную посчитать разницу с вывода netstat -i $if, снял топорно, 2 команды с периодом 1 секунда (секунду отмерил по часам), получилось значение близкое к снятому по snmp.
Вопрос, кто врёт? snmp или netstat -w ? Или я веду речь о разных вещах?


Содержание

Сообщения в этом обсуждении
"FreeBSD snmp и pps"
Отправлено Pahanivo , 09-Мрт-10 07:49 
поди snmp не с того интерфейса дергается ))

"FreeBSD snmp и pps"
Отправлено amfetamin , 09-Мрт-10 07:54 
>поди snmp не с того интерфейса дергается ))

Всё от куда надо, дёргается.


"FreeBSD snmp и pps"
Отправлено Pahanivo , 09-Мрт-10 08:11 
>>поди snmp не с того интерфейса дергается ))
>
>Всё от куда надо, дёргается.

да ну? )

Subsidiary references (single level)
1.3.6.1.2.1.2.2.1.1 - ifIndex
1.3.6.1.2.1.2.2.1.2 - ifDescr
1.3.6.1.2.1.2.2.1.3 - ifType
1.3.6.1.2.1.2.2.1.4 - ifMtu
1.3.6.1.2.1.2.2.1.5 - ifSpeed
1.3.6.1.2.1.2.2.1.6 - ifPhysAddress
1.3.6.1.2.1.2.2.1.7 - ifAdminStatus
1.3.6.1.2.1.2.2.1.8 - ifOperStatus
1.3.6.1.2.1.2.2.1.9 - ifLastChange
1.3.6.1.2.1.2.2.1.10 - ifInOctets
1.3.6.1.2.1.2.2.1.11 - ifInUcastPkts
1.3.6.1.2.1.2.2.1.12 - ifInNUcastPkts
1.3.6.1.2.1.2.2.1.13 - ifInDiscards
1.3.6.1.2.1.2.2.1.14 - ifInErrors
1.3.6.1.2.1.2.2.1.15 - ifInUnknownProtos
1.3.6.1.2.1.2.2.1.16 - ifOutOctets
1.3.6.1.2.1.2.2.1.17 - ifOutUcastPkts
1.3.6.1.2.1.2.2.1.18 - ifOutNUcastPkts
1.3.6.1.2.1.2.2.1.19 - ifOutDiscards
1.3.6.1.2.1.2.2.1.20 - ifOutErrors
1.3.6.1.2.1.2.2.1.21 - ifOutQLen
1.3.6.1.2.1.2.2.1.22 - ifSpecific

чето твой OID на эти не похожжжжжжж ... (это жжжж неспроста!)


"FreeBSD snmp и pps"
Отправлено amfetamin , 09-Мрт-10 08:21 
>[оверквотинг удален]
>1.3.6.1.2.1.2.2.1.15 - ifInUnknownProtos
>1.3.6.1.2.1.2.2.1.16 - ifOutOctets
>1.3.6.1.2.1.2.2.1.17 - ifOutUcastPkts
>1.3.6.1.2.1.2.2.1.18 - ifOutNUcastPkts
>1.3.6.1.2.1.2.2.1.19 - ifOutDiscards
>1.3.6.1.2.1.2.2.1.20 - ifOutErrors
>1.3.6.1.2.1.2.2.1.21 - ifOutQLen
>1.3.6.1.2.1.2.2.1.22 - ifSpecific
>
>чето твой OID на эти не похожжжжжжж ... (это жжжж неспроста!)

И чем мой  ifInUcastPkts.1 не похож на твой 1.3.6.1.2.1.2.2.1.11 - ifInUcastPkts ?
.1 в моём случае означает № ИФа, который определяется значением выше. И нет никакого смысла городить не нужные конструкции из OIDов или как их там, когда можно точно указать на нужный мне параметр, по его названию.
Да, и перестань говорить загадками... (это я про "жжжжжж")


"FreeBSD snmp и pps"
Отправлено Pahanivo , 09-Мрт-10 09:14 
1.3.6.1.2.1.2.2.1.11 это (частично переведу):
1.3.6.1.2.1.2.ifTable.ifEntry.ifInUcastPkts.1
а у тебя:
ifInUcastPkts.1

вот поэтому сильно терзают сомнения что это именно тот счетчик

покажи это:
snmpwalk -c public -v 2c -O bn localhost 1.3.6.1.2.1.2.2.1


"FreeBSD snmp и pps"
Отправлено amfetamin , 09-Мрт-10 09:29 
>1.3.6.1.2.1.2.2.1.11 это (частично переведу):
> 1.3.6.1.2.1.2.ifTable.ifEntry.ifInUcastPkts.1
>а у тебя:
> ifInUcastPkts.1
>
>вот поэтому сильно терзают сомнения что это именно тот счетчик
>
>покажи это:
>snmpwalk -c public -v 2c -O bn localhost 1.3.6.1.2.1.2.2.1

Зря терзают. smnpwalk прекрасно умеет работать, как с OID, так и с Descriptor.
В данном случае флаги -Os -Oq тупо отсекают не нужный мне вывод.
# /usr/local/bin/snmpwalk -v 1 -Os -Oq -c public localhost 1.3.6.1.2.1.2.2.1.11.1
ifInUcastPkts.1 1455157891

Без них:
# /usr/local/bin/snmpwalk -v 1 -c public localhost 1.3.6.1.2.1.2.2.1.11.1
IF-MIB::ifInUcastPkts.1 = Counter32: 1455387250


# snmptranslate -On IF-MIB::ifInUcastPkts.1
.1.3.6.1.2.1.2.2.1.11.1

ну и до кучи:

#man mibhelp

ifInUcastPkts

Descriptor:            ifInUcastPkts
Identifier:            1.3.6.1.2.1.2.2.1.11
ASN.1 Syntax:          Counter32

The number of subnetwork-unicast packets delivered to a higher-layer protocol.


Так, что это именно тот счётчик.

Вывод snmpwalk -c public -v 2c -O bn localhost 1.3.6.1.2.1.2.2.1 - не жалко, вот он:

# snmpwalk -c public -v 2c -O bn localhost 1.3.6.1.2.1.2.2.1
.1.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
.1.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
.1.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3
.1.3.6.1.2.1.2.2.1.1.4 = INTEGER: 4
.1.3.6.1.2.1.2.2.1.1.5 = INTEGER: 5
.1.3.6.1.2.1.2.2.1.1.6 = INTEGER: 6
.1.3.6.1.2.1.2.2.1.2.1 = STRING: xl0
.1.3.6.1.2.1.2.2.1.2.2 = STRING: nfe0
.1.3.6.1.2.1.2.2.1.2.3 = STRING: plip0
.1.3.6.1.2.1.2.2.1.2.4 = STRING: lo0
.1.3.6.1.2.1.2.2.1.2.5 = STRING: bridge0
.1.3.6.1.2.1.2.2.1.2.6 = STRING: tap0
.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: para(34)
.1.3.6.1.2.1.2.2.1.3.4 = INTEGER: softwareLoopback(24)
.1.3.6.1.2.1.2.2.1.3.5 = INTEGER: bridge(209)
.1.3.6.1.2.1.2.2.1.3.6 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.4.1 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.4.2 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.4.3 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.4.4 = INTEGER: 16384
.1.3.6.1.2.1.2.2.1.4.5 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.4.6 = INTEGER: 1500
.1.3.6.1.2.1.2.2.1.5.1 = Gauge32: 100000000
.1.3.6.1.2.1.2.2.1.5.2 = Gauge32: 100000000
.1.3.6.1.2.1.2.2.1.5.3 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.4 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.5 = Gauge32: 0
.1.3.6.1.2.1.2.2.1.5.6 = Gauge32: 10000000
.1.3.6.1.2.1.2.2.1.6.1 = STRING: 0:3:99:8a:50:e2
.1.3.6.1.2.1.2.2.1.6.2 = STRING: 0:1f:d0:5c:b0:df
.1.3.6.1.2.1.2.2.1.6.3 = STRING:
.1.3.6.1.2.1.2.2.1.6.4 = STRING:
.1.3.6.1.2.1.2.2.1.6.5 = STRING: 12:4:1d:4a:fc:d4
.1.3.6.1.2.1.2.2.1.6.6 = STRING: 0:bd:e2:80:4:0
.1.3.6.1.2.1.2.2.1.7.1 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.7.2 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.7.3 = INTEGER: down(2)
.1.3.6.1.2.1.2.2.1.7.4 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.7.5 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.7.6 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.1 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.2 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.3 = INTEGER: down(2)
.1.3.6.1.2.1.2.2.1.8.4 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.5 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.8.6 = INTEGER: up(1)
.1.3.6.1.2.1.2.2.1.9.1 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.2 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.3 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.4 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.5 = Timeticks: (0) 0:00:00.00
.1.3.6.1.2.1.2.2.1.9.6 = Timeticks: (16765240) 1 day, 22:34:12.40
.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 3703558237
.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 2896018710
.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.10.4 = Counter32: 757686477
.1.3.6.1.2.1.2.2.1.10.5 = Counter32: 489170200
.1.3.6.1.2.1.2.2.1.10.6 = Counter32: 3104628186
.1.3.6.1.2.1.2.2.1.11.1 = Counter32: 1455428759
.1.3.6.1.2.1.2.2.1.11.2 = Counter32: 1477608935
.1.3.6.1.2.1.2.2.1.11.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.11.4 = Counter32: 991192
.1.3.6.1.2.1.2.2.1.11.5 = Counter32: 1938033398
.1.3.6.1.2.1.2.2.1.11.6 = Counter32: 460845030
.1.3.6.1.2.1.2.2.1.12.1 = Counter32: 63737830
.1.3.6.1.2.1.2.2.1.12.2 = Counter32: 486440
.1.3.6.1.2.1.2.2.1.12.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.12.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.12.5 = Counter32: 1320846
.1.3.6.1.2.1.2.2.1.12.6 = Counter32: 173983
.1.3.6.1.2.1.2.2.1.13.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.2 = Counter32: 1041
.1.3.6.1.2.1.2.2.1.13.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.13.6 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.1 = Counter32: 16684
.1.3.6.1.2.1.2.2.1.14.2 = Counter32: 1
.1.3.6.1.2.1.2.2.1.14.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.14.6 = Counter32: 1
.1.3.6.1.2.1.2.2.1.15.1 = Counter32: 20
.1.3.6.1.2.1.2.2.1.15.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.15.6 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.1 = Counter32: 360558247
.1.3.6.1.2.1.2.2.1.16.2 = Counter32: 3916366599
.1.3.6.1.2.1.2.2.1.16.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.16.4 = Counter32: 757678560
.1.3.6.1.2.1.2.2.1.16.5 = Counter32: 2734396512
.1.3.6.1.2.1.2.2.1.16.6 = Counter32: 3927221306
.1.3.6.1.2.1.2.2.1.17.1 = Counter32: 1669213033
.1.3.6.1.2.1.2.2.1.17.2 = Counter32: 2499259165
.1.3.6.1.2.1.2.2.1.17.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.17.4 = Counter32: 991263
.1.3.6.1.2.1.2.2.1.17.5 = Counter32: 2868924216
.1.3.6.1.2.1.2.2.1.17.6 = Counter32: 369639216
.1.3.6.1.2.1.2.2.1.18.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.18.6 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.1 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.19.6 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.1 = Counter32: 1
.1.3.6.1.2.1.2.2.1.20.2 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.3 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.5 = Counter32: 0
.1.3.6.1.2.1.2.2.1.20.6 = Counter32: 308



"FreeBSD snmp и pps"
Отправлено Pahanivo , 09-Мрт-10 09:55 
.1.3.6.1.2.1.2.2.1.2.1 = STRING: xl07
.1.3.6.1.2.1.2.2.1.2.2 = STRING: nfe07
.1.3.6.1.2.1.2.2.1.2.3 = STRING: plip0
.1.3.6.1.2.1.2.2.1.2.4 = STRING: lo0
.1.3.6.1.2.1.2.2.1.2.5 = STRING: bridge0
.1.3.6.1.2.1.2.2.1.2.6 = STRING: tap07

мож это из-а активного бриджа?


"FreeBSD snmp и pps"
Отправлено amfetamin , 09-Мрт-10 10:01 
>.1.3.6.1.2.1.2.2.1.2.1 = STRING: xl07
>.1.3.6.1.2.1.2.2.1.2.2 = STRING: nfe07
>.1.3.6.1.2.1.2.2.1.2.3 = STRING: plip0
>.1.3.6.1.2.1.2.2.1.2.4 = STRING: lo0
>.1.3.6.1.2.1.2.2.1.2.5 = STRING: bridge0
>.1.3.6.1.2.1.2.2.1.2.6 = STRING: tap07
>
>мож это из-а активного бриджа?

Сбриджованны внутри nfe0 и tap0, xl0 внешний, к нему это не относится. Была мысль, что из-за самого счётчика Ucast, который не учитывает multicast и broadcast, но потом посмотрел кол-во таких пакетов - оно ничтожно мало 15-20 в сек, а разница явно на 1-3к пакетов.