Ad Widget

Collapse

Хитрый мониторинг vpn туннелей

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Zillah
    Junior Member
    • Dec 2009
    • 15

    #1

    Хитрый мониторинг vpn туннелей

    Собственно туннели живут на 2-х 2811 кошках.
    Требуются данные:
    1) вх/исх траффик в туннеле
    2) потери в туннеле
    3) задержки в туннеле
    4) опционально статус интерфейса(на самом деле пп. 2-3 дадут и эту инфу при определенных условиях)
    Некоторая специфика: туннели могут в разное время быть то на одной то на другой кошке. (даже не спрашивайте почему)

    Отсюда непонятно как решить задачу без ручной перенастройки п.1(и 4), так как тут привязка к интерфейсу.
    С пп. 2-3 собственно нет проблем кроме того момента когда надо знать на какой кошке сейчас туннель.

    Возможно я несколько не так подхожу к решению, ну или кто поделится советом - буду рад.

    PS Пока правлю ручками... но это ужасно...
    PPS Забыл добавить, динамический индекс конечно же по ifDescr, по крайней мере они при "переездах" не изменяются...
    Last edited by Zillah; 19-09-2011, 11:38.
  • gdgsoft
    Senior Member
    • Apr 2009
    • 202

    #2
    Первое что в голову пришло - написать свой скрипт, который будет лезть на кошки, "совокуплять данные" и делать выброс результатов через zabbix_trapper. По крайней мере я так обычно делаю.
    Zabbix 2.4.2
    PHP 5.4.5
    Oracle Linux 6.5
    VmWare ESXi 4

    MariaDB 10.0.15
    Oracle Linux 6.5
    Supermicro SYS-6027TRF(64Gb+RAID-10 600Gb SAS15k)

    Comment

    • Zillah
      Junior Member
      • Dec 2009
      • 15

      #3
      Originally posted by gdgsoft
      Первое что в голову пришло - написать свой скрипт, который будет лезть на кошки, "совокуплять данные" и делать выброс результатов через zabbix_trapper. По крайней мере я так обычно делаю.
      Ну так то да, можно к скрипу еще и RRD с графопостроителем прикрутить, и выкинуть заббикс. )
      Я думал чего нибудь есть в 1.8 )

      Пока пришло в голову собирать не привязанные к ифейсу данные как есть (найти туннель на 2-х кошках по идее не так и сложно). А вот туннеле-зависимые данные привязывать к кошкам и перебивать в случае необходимости... хотя бы меньше править... :0/

      Comment

      • inform11
        Senior Member
        • Aug 2010
        • 176

        #4
        Originally posted by zillah
        Собственно туннели живут на 2-х 2811 кошках.
        Требуются данные:
        1) вх/исх траффик в туннеле
        2) потери в туннеле
        3) задержки в туннеле
        4) опционально статус интерфейса(на самом деле пп. 2-3 дадут и эту инфу при определенных условиях)
        Некоторая специфика: туннели могут в разное время быть то на одной то на другой кошке. (даже не спрашивайте почему)

        Отсюда непонятно как решить задачу без ручной перенастройки п.1(и 4), так как тут привязка к интерфейсу.
        С пп. 2-3 собственно нет проблем кроме того момента когда надо знать на какой кошке сейчас туннель.

        Возможно я несколько не так подхожу к решению, ну или кто поделится советом - буду рад.

        Ps Пока правлю ручками... но это ужасно...
        Pps Забыл добавить, динамический индекс конечно же по ifdescr, по крайней мере они при "переездах" не изменяются...

        Давай попробуем разобраться...
        собственно 1,2,3,4 - делается элементарно, но вот специфика вносит маленькие трудности...
        Скорее всего туннели могут быть на разных сиськах, потому что работает технология hsrp. Если я прав, то в каждый момент времени активный только один девайс.
        Не плохо бы конфиг сиськи в студию
        ну или хотя бы конфиг туннеля, и интерфейса к которому прикручен туннель.
        А там ужо будем плясать по месту
        Last edited by inform11; 20-09-2011, 06:13.

        Comment

        • Zillah
          Junior Member
          • Dec 2009
          • 15

          #5
          Originally posted by inform11
          Скорее всего туннели могут быть на разных сиськах, потому что работает технология hsrp. Если я прав, то в каждый момент времени активный только один девайс.
          Все более прозаично, с периодичностью раз в 2-6 мес возникает потребность сбалансировать обе кошки по нагрузке. Бывает что вдруг одна загибается с CPULoad 70% в то время когда вторая бамбук курит.
          Дада, уже заказываем 2911... но срок поставки там ой ой, жить то сейчас хочется. ;o)

          Собственно даже проще вопрос, средствами ZBX можно как то опрашивать 2 кошки, искать там определенный ifDescr и если он есть хоть на одной получить статус ifIn... ifOut... скриптами то понятно, что угодно можно наворотить, но мне кажется что как то проще и в ZBX можно... ;o)

          ЗЫ ifDescr будет уникальным...
          ЗЗЫ ifDescr используется как ключ, опять же из-за "специфики", индекс и имя тунеля могут изменятся в процессе ручной миграции... ну а ifDescr проще копирнуть ;o)

          Comment

          • inform11
            Senior Member
            • Aug 2010
            • 176

            #6
            Originally posted by Zillah
            Все более прозаично, с периодичностью раз в 2-6 мес возникает потребность сбалансировать обе кошки по нагрузке. Бывает что вдруг одна загибается с CPULoad 70% в то время когда вторая бамбук курит.
            Дада, уже заказываем 2911... но срок поставки там ой ой, жить то сейчас хочется. ;o)


            Отсюда непонятно как решить задачу без ручной перенастройки п.1(и 4), так как тут привязка к интерфейсу.
            С пп. 2-3 собственно нет проблем кроме того момента когда надо знать на какой кошке сейчас туннель.
            честно говоря не понял ответа на свой вопрос.
            Ну попробую ответить в двух словах.
            1. если две ваши сиськи работают по HSRP, и туннели могут терминироваться на любой из них, в зависимости от того, какая сейчас активная. соответственно нужно опрашивать интерфейсы именно на активной сиське. тогда будем получать самые свежие данные о туннеле
            в не зависимости от того на какой сиське он терминировался.
            например настройка на вашей сиське:

            interface Tunnel0
            ip address 10.0.0.1 255.255.255.252
            keepalive 5 4
            tunnel source 10.10.10.1
            tunnel destination 20.20.20.1

            попробуйте снимать данные по снмп, обращаясь к адресу 10.10.10.1
            т.е. tunnel source

            я думаю все получится.
            Last edited by inform11; 21-09-2011, 07:12.

            Comment

            • Zillah
              Junior Member
              • Dec 2009
              • 15

              #7
              Originally posted by inform11
              честно говоря не понял ответа на свой вопрос.
              Ну попробую ответить в двух словах.
              ...
              Прошу прощения что не ответил сразу на вопрос... HSRP конечно.
              Следуя Вашему совету попробовал и все получилось. Спасибо!

              Вот тут еще идея осенила...
              Выборка сейчас происходит по динамическому индексу которые смотрит на ifAlias:
              Code:
              ifInOctets["index","ifAlias","vpn.xxx"]
              Но логичнее, мне кажется, смотреть на IP туннеля... вот пока не могу найти как по SNMP его...
              Хотя в моём случае это будет неудобно...
              Last edited by Zillah; 22-09-2011, 06:24.

              Comment

              • inform11
                Senior Member
                • Aug 2010
                • 176

                #8
                я смотрю на туннели так:
                ifOperStatus["index","ifDescr","Tunnel31"]
                ifInOctets["index","ifDescr","Tunnel31"]
                ifOutOctets["index","ifDescr","Tunnel31"]

                а вааще параметров в SNMP дохрена, и любой можно использовать.
                чтобы увидеть все что знает моя железяка по SNMP, я делал так:
                snmpwalk -c public -v 2c 10.10.10.1 > cisco_snmp.txt

                но должны быть мибы поставлены, иначе получишь данные в виде цифирок и иди потом их разбери...
                Last edited by inform11; 23-09-2011, 06:51.

                Comment

                Working...