Page tree
Skip to end of metadata
Go to start of metadata

10 Comments

  1. Unknown User (tsergey)

    8[12:50]    dvolodin: Я придумал тему для обсуждения
    8[12:54]    dvolodin: и вот второе пятничное
    8[12:54]    dvolodin: я сделал uptime discovery
    8[12:54]    dvolodin: настраивается как и другие методы
    8[12:54]    dvolodin: дергает uptime с железки
    8[12:55]    dvolodin: и ведет две коллекции в базе -- Uptime и Reboot
    8[12:56]    dvolodin: https://bitbucket.org/nocproject/noc/commits/f600c32c18f52341c2cefa273db078e48a03e7e4
    8[12:56]    dvolodin: в uptime попадут интервалы непрерывной работы
    8[12:57]    dvolodin: в reboot, соответсвенно - если просекли, что uptime упал
    8[12:58]    dvolodin: метод тривиальный, грузит систему минимально
    8[12:58]    dvolodin: позволяет отловить проблемы, связанные с постоянными перезагрузками

    https://bitbucket.org/nocproject/noc/commits/f600c32c18f52341c2cefa273db078e48a03e7e4

  2. Unknown User (tsergey)

    /opt/noc/etc/noc.conf 

    добавляем

    [uptime_discovery]
    # Enable caps discovery process
    enabled = true
    
    
    
    
  3. Unknown User (tsergey)

    включается:

    Service Activation \ Setup \ Managed Object Profiles

    8[13:39]    dvolodin: для запуска нужно открыть и сохранить профиль
  4. Unknown User (tsergey)

    проверить, реализован ли метод для оборудования:

    Service Activation \ Managed Object \

    MO + Edit \ Scripts \ get_uptime:

    152557
  5. Unknown User (tsergey)

    проверить что не так со скриптом:

    под "noc"

    noc@noc:/opt/noc$ ./noc debug-script -c "community" get_uptime "MO"

     мой результат
    noc@noc:/opt/noc$ ./noc debug-script -c montomcomro get_uptime s565-1-1.intt
    2015-04-30 14:18:14,999 Using JSON library: cjson
    2015-04-30 14:18:15,141 SSH: Using gmpy
    2015-04-30 14:18:16,102 Connecting to MongoDB {'username': 'noc', 'password': '********', 'db': 'noc'}
    2015-04-30 14:18:16,229 Connecting to MongoDB {'username': 'noc', 'password': '********', 'db': 'noc'}
    2015-04-30 14:18:16,243 Loading PeriodicRegistry
    2015-04-30 14:18:16,254 Registering MetricType
    2015-04-30 14:18:16,260 Loading compiled MIBs
    2015-04-30 14:18:16,260 Loading compiled MIBs from 'cmibs'
    2015-04-30 14:18:16,260 Loading MIB: RFC1213-MIB
    2015-04-30 14:18:16,261 Loading MIB: SNMPv2-MIB
    2015-04-30 14:18:16,261 Loading MIB: CISCO-PPPOE-MIB
    2015-04-30 14:18:16,261 Loading MIB: CISCO-VPDN-MGMT-MIB
    2015-04-30 14:18:16,262 Loading MIB: IF-MIB
    2015-04-30 14:18:16,262 Loading MIB: IP-MIB
    2015-04-30 14:18:16,271 Configuring metric mappings sa.managedobject -> object.{{object.name|qm}}.{{metric_type|qm}}
    2015-04-30 14:18:16,271 Configuring metric mappings inv.interface -> object.{{object.managed_object.name|qm}}.interface.{{object.name|qm}}.{{metric_type|qm}}
    2015-04-30 14:18:16,273 Loading DownloaderRegistry
    2015-04-30 14:18:16,304 Loading ProfileRegistry
    2015-04-30 14:18:17,151 Loading ScriptRegistry
    2015-04-30 14:18:17,245 Adding FTS index for sa.managedobject
    2015-04-30 14:18:17,265 Registering ConnectionType
    2015-04-30 14:18:17,270 Registering ObjectModel
    2015-04-30 14:18:17,272 Registering Capability
    2015-04-30 14:18:17,279 Adding FTS index for vc.vc
    2015-04-30 14:18:17,302 Adding FTS index for ip.vrf
    2015-04-30 14:18:17,304 Adding FTS index for ip.prefix
    2015-04-30 14:18:17,306 Adding FTS index for ip.address
    2015-04-30 14:18:17,755 Setting up 'select' polling method
    2015-04-30 14:18:17,768 Activating 'select' poller
    2015-04-30 14:18:17,769 Loading private ssh key from 'etc/ssh/id_rsa'
    2015-04-30 14:18:17,782 Loading public ssh key from 'etc/ssh/id_rsa.pub'
    access_profile {
      profile: "DLink.DxS"
      scheme: TELNET
      address: "192.168.251.61"
      port: 23
      user: *
      password: *
      snmp_ro: *
      attrs {
        key: "Boot PROM"
        value: "1.00.B06"
      }
      attrs {
        key: "HW version"
        value: "A2"
      }
      attrs {
        key: "platform"
        value: "DES-3028"
      }
      attrs {
        key: "Serial Number"
        value: "P1CV2A4022962"
      }
      attrs {
        key: "vendor"
        value: "DLink"
      }
      attrs {
        key: "version"
        value: "2.94.B07"
      }
      caps {
        capability: "SNMP"
        bool_value: true
      }
      caps {
        capability: "SNMP | Bulk"
        bool_value: true
      }
      caps {
        capability: "SNMP | IF-MIB"
        bool_value: true
      }
      caps {
        capability: "SNMP | IF-MIB | HC"
        bool_value: true
      }
    }
    object_name: "s565-1-1.intt"
    script: "DLink.DxS.get_uptime"
    timeout: 120
    
    2015-04-30 14:18:17,831 Running script thread
    2015-04-30 14:18:17,832 Creating transaction id=609039406 method=None callback=None
    2015-04-30 14:18:17,832 Running socket factory (SelectPoller)
    2015-04-30 14:18:17,834 Capabilities: {u'SNMP | IF-MIB': True, u'SNMP | Bulk': True, u'SNMP': True, u'SNMP | IF-MIB | HC': True}
    2015-04-30 14:18:17,837 [Generic.get_uptime(s565-1-1.intt, 192.168.251.61)] Running
    2015-04-30 14:18:17,837 Running script: Generic.get_uptime ({}), timeout 120s
    2015-04-30 14:18:17,837 Register socket SNMPGetSocket (None)
    2015-04-30 14:18:18,834 Tick
    2015-04-30 14:18:18,835 3 TICKS TO EXIT
    2015-04-30 14:18:18,835 [SNMPGetSocket] Initializing socket
    2015-04-30 14:18:18,835 [Generic.get_uptime(s565-1-1.intt, 192.168.251.61)] 192.168.251.61 SNMP GET 1.3.6.1.2.1.1.3.0
    2015-04-30 14:18:18,884 [Generic.get_uptime(s565-1-1.intt, 192.168.251.61)] 192.168.251.61 SNMP GET REPLY: 1.3.6.1.2.1.1.3.0 77378615
    2015-04-30 14:18:18,885 [SNMPGetSocket] Closing socket
    2015-04-30 14:18:18,885 Unregister socket SNMPGetSocket
    2015-04-30 14:18:18,886 Resetting wait ticks
    2015-04-30 14:18:18,888 Script returns with result: 773786.15 (1050.56ms)
    2015-04-30 14:18:18,888 [Generic.get_uptime(s565-1-1.intt, 192.168.251.61)] Closing
    2015-04-30 14:18:18,888 [SNMPGetSocket] Closing socket
    2015-04-30 14:18:19,890 Tick
    2015-04-30 14:18:19,890 3 TICKS TO EXIT
    2015-04-30 14:18:20,891 Tick
    2015-04-30 14:18:20,891 2 TICKS TO EXIT
    2015-04-30 14:18:21,893 Tick
    2015-04-30 14:18:21,893 1 TICKS TO EXIT
    2015-04-30 14:18:22,894 Tick
    2015-04-30 14:18:22,894 EXIT
    2015-04-30 14:18:22,894 SCRIPT RESULT: Generic.get_uptime(s565-1-1.intt, 192.168.251.61)
    773786.15
    2015-04-30 14:18:22,894 Shutting down the factory
    2015-04-30 14:18:22,895 Metrics:
        noc.socketfactory.handle.closed_reads: 0
        noc.socketfactory.handle.reads: 1
        noc.socketfactory.handle.writes: 0
        noc.socketfactory.loops: 6
        noc.socketfactory.sockets.count: 0
        noc.socketfactory.sockets.register: 1
        noc.socketfactory.sockets.unregister: 0
        noc.socketfactory.ticks: 5
    2015-04-30 14:18:22,895 0 TICKS TO EXIT
    2015-04-30 14:18:22,895 Stopping socket factory
    
    
    
  6. Unknown User (tsergey)

    root@noc:/opt/noc# mongo noc
    MongoDB shell version: 2.6.3
    connecting to: noc
    > db.noc.fm.reboots.count()
    384
    > db.noc.fm.uptimes.count()
    1228
    > quit()
    root@noc:/opt/noc#
    
    
  7. Unknown User (tsergey)

    root@noc:/opt/noc# echo "db.noc.fm.reboots.count()" | mongo noc
    MongoDB shell version: 2.6.3
    connecting to: noc
    4849
    bye
    
    
  8. Unknown User (tsergey)

    Добавили отчет

    Fault Management \ Reports \ Reboots

     

  9. Unknown User (evyscr)

    При раннем запуске (фиг знает, сколько с тех пор поменяли) успел словить занесение в uptime одного устройства более одного раза (в одной записи аптайм обновлялся, в другой - вроде как нет). Соответсвенно, имелся ложный reboot в соответствующей коллекции.

    На 2015.05.20 наблюдаю в uptimes 5 записей по одному устройству.

    upd: Изучил новую гадость в монге, написал запрос:

    db.noc.fm.uptimes.aggregate([{"$group" : { "_id" : "$object", "cnt" : { "$sum" : 1 }}}, { "$match" : { "cnt" : { "$gt" : 1 }}}])

    Что-то дофига девайсов вспыло. Например, девайс с годичным аптаймом имеет 13 записей в uptimes и 12 в reboots.

    upd2:. Утверждается, что пофиксили.

  10. Unknown User (tsergey)

    При выяснение проблем с большим количеством джобов была рекомендация выставить

    Service Activation \ Setup \ Managed Object Profiles — Профиль — Uptime Discovery: Min. interval = 300