Ad Widget

Collapse

Мониторинг ip

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Oleg
    Junior Member
    • Nov 2013
    • 10

    #1

    Мониторинг ip

    items net.if.out[em0] мониторит исходящий трафик на интерфейсе.
    На этом интерфейсе несколько ip. Подскажите как сделать что бы мониторился конкретный ip?
    Делаю так net.if.out[em0,179.10.19.36] не работает...
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Потому что вторым параметром идет режим, а не ip-адрес https://www.zabbix.com/documentation...l/config/items

    Вообще на сколько я понимаю net.if* - понятие 2 уровня, а ip-адрес это понятие 3его уровня и прямой связи между ними нет. Кстати не подкскажите как в линуксе просто посмотреть сколько трафика пришлось на конкретный ip-адрес?

    Comment

    • Oleg
      Junior Member
      • Nov 2013
      • 10

      #3
      в линуксе не знаю, у меня freebsd, более того, я любитель
      на другом форуме мне вот что ответили:
      никак, вы можете повесить на интерфейс правило ipfw count и мониторить его
      правило ipfw count считает трафик, но как его смотреть в zabbix? Создать тип данных SSH агент, и скриптом снимать значение с ipfw count?

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        Зачем ssh если можно через пользовательские проверки https://www.zabbix.com/documentation...userparameters

        Comment

        • Melanxolik
          Senior Member
          • Nov 2009
          • 174

          #5
          Oleg, я вам ведь уже схему c ipfw count расписал, неужели так трудно реализовать?

          Вешаете ipfw count на каждый ip, дальше с помощью UserParameters снимаете показания счетчиков.

          Или вам требуется выложить решение по пунктам, что за чем и куда нажать?

          Comment

          • dimugric
            Member
            • Apr 2013
            • 59

            #6
            2 Oleg
            Не знаю наск-ко интересной Вам покажется информация, но я могу описать как мониторил вх/исх трафик на маршрутизаторах (в принципе и на компе, где угодно), используя snmp (настроить snmp так же в любой ОС - проблем нет).
            Параметр ifDescr (покажет какие адреса на интерфейсах/vlan`ах), его Oid 1.3.6.1.2.1.2.2.1.2 . Чтоб не быть голословным, даю пример:
            Code:
            # snmpwalk -c community -v 2c 192.168.100.1 1.3.6.1.2.1.2.2.1.2
            IF-MIB::ifDescr.4 = STRING: ether1
            IF-MIB::ifDescr.5 = STRING: ether2
            IF-MIB::ifDescr.6 = STRING: ether3
            --------------------------------
            IF-MIB::ifDescr.13 = STRING: ether11
            IF-MIB::ifDescr.15 = STRING: vrrp
            IF-MIB::ifDescr.16 = STRING: ovpn
            IF-MIB::ifDescr.24 = STRING: vlan1
            IF-MIB::ifDescr.40 = STRING: vlan10
            Выбираем нужный интерфейс, например, IF-MIB::ifDescr.24 = STRING: vlan1 (24й)
            Теперь параметры вх и исх трафика
            ifInOctets 1.3.6.1.2.1.2.2.1.10 - Полное число полученных байтов, включая символы заголовков.
            ifOutOctets 1.3.6.1.2.1.2.2.1.16 - Полное количество отправленных октетов с интерфейса, включая символы заголовков.
            Теперь очередной пример (на нашем 24м интерфейсе):
            # snmpwalk -c community -v 2c 192.168.100.1 1.3.6.1.2.1.2.2.1.10.24
            IF-MIB::ifInOctets.24 = Counter32: 10707117
            Тут берется OID и через точку дописывается номер интерфейса (.24 на конце)
            Аналогично с ifOut.
            Потом закидываешь в Заббикс и строишь Item с плавающей точкой
            p.s. не сторонник агентов, хотя кто-то пользует их и говорит что всё гуд

            Comment

            • Melanxolik
              Senior Member
              • Nov 2009
              • 174

              #7
              И к чему вы это?
              у него конкретная проблема, пачка ip на одном интерфейсе, надо мониторить траф не по интерфейсу, а по каждому ip.
              Это решение и так понятное, мониторить интерфейс как 2 пальца, а вот ip только через счетчики.

              Comment

              • Oleg
                Junior Member
                • Nov 2013
                • 10

                #8
                Melanxolik, на lissyara.su это вы? я просто тут написал до вашего ответа там(первые мои посты тут выходят через сутки после модерации), теперь все понятно, дерзаю, хотя пошагово былобы вообще хорошо

                Comment

                • Melanxolik
                  Senior Member
                  • Nov 2009
                  • 174

                  #9
                  Oleg, начинайте реализовывать, а мы поможем, готового решения вместо вас никто не будет делать, ведь как говорится:
                  если за вас сделают эту задачу, а на кой тогда вы?

                  по этому, пишите свои мысли, как вы это сделаете, а многоуважаемые собраники этого общества с радостью поправят вас и наставят на путь истинный.

                  Comment

                  • Oleg
                    Junior Member
                    • Nov 2013
                    • 10

                    #10
                    подскажите, как из
                    00102 126583 14885605 count ip from any to x.x.x.x via em0
                    выбрать 14885605 - требуемое значение?
                    пробовал так: UserParameter=ip_traf,ipfw show | awk ' /'x.x.x.x'/ {print $3} '
                    zabbix_get -s 127.0.0.1 -p 10050 -k "ip_traf"
                    но видимо из за того что zabbix вместо $3 пытается что то подставить, результат получается пустой
                    Last edited by Oleg; 09-11-2013, 20:29.

                    Comment

                    • Melanxolik
                      Senior Member
                      • Nov 2009
                      • 174

                      #11
                      root@host:/root # echo "00102 126583 14885605 count ip from any to x.x.x.x via em0" | awk '{print $3}'
                      14885605
                      root@host:/root #

                      UserParameter назовите как-то прилично, у вас будет их пачка на In и Out, потом будете путаться.
                      к примеру номер rule или ip который считаете можно передавать уже из сервера.

                      к примеру:
                      UserParameter=ip_traf[*],ipfw show $1 | awk '{print $3} ' || echo 555

                      будет соответствовать элементу данных с номером правила таким-то, зачем 555? затем чтобы если у вас будет возвращенно не верное значение, вы видели что возврат 555 означает проблема получения данных от ipfw

                      Оттолкнитесь также от того что вызывать заранее известный номер правила в цепочке более производительней чем grep по всему и находить нужный элемент данных.
                      Last edited by Melanxolik; 09-11-2013, 22:28.

                      Comment

                      • Oleg
                        Junior Member
                        • Nov 2013
                        • 10

                        #12
                        До названия потом доберусь, сейчас c основным пытаюсь разобраться
                        UserParameter=ip_traf,ipfw show 102 | awk '{print $3}' || echo 555
                        (без параметра, для надежности)

                        root@# zabbix_get -s 127.0.0.1 -p 10050 -k "ip_traf"
                        пустая строка
                        root@#
                        причем все работает, если не правильно написать название - ip_traf2 например
                        ZBX_NOTSUPPORTED
                        ipfw show 102 | awk '{print $3}' || echo 555 - исправно выдает значение

                        Comment

                        • Melanxolik
                          Senior Member
                          • Nov 2009
                          • 174

                          #13
                          агента после внесения изменений перезапускали?
                          что в момент ошибки говорит лог файл агента.

                          теперь медитирую, ipfw является уровнем ядра и требует root привелегий.
                          не много переделывать надо.
                          sudo ipfw show
                          и дальше по теме.
                          временно можетет для забикс в sudo

                          zabbix ALL=NOPASSWD: ALL
                          но для ipfw надо указать полный путь в userparameter
                          /sbin/ipfw

                          Comment

                          • Oleg
                            Junior Member
                            • Nov 2013
                            • 10

                            #14
                            Да, так и есть, sudo помогло, спасибо
                            но осталась проблемка
                            UserParameter=ip_traf[*],ipfw show $1 |
                            эта часть работает, все в порядке, а эта нет
                            awk '{print $3} ' || echo 555
                            выдает полностью
                            00102 156906 17599131 count ip from any to x.x.x.x via em0
                            если записать непосредственно
                            UserParameter=ip_traf,ipfw show 102 |awk '{print $3} ' || echo 555
                            то все правильно работает
                            Last edited by Oleg; 10-11-2013, 22:15.

                            Comment

                            • Melanxolik
                              Senior Member
                              • Nov 2009
                              • 174

                              #15
                              Есть еще вариант, попробовать awk заменить на cut
                              echo "00102 126583 14885605 count ip from any to x.x.x.x via em0" | cut -d ' ' -f3
                              к сожалению так не могу сказать сейчас, надо проверять, у меня были заморочки с этим моментом, но по плану разбор только через пару недель.

                              Comment

                              Working...