Перейти к содержанию


New release schedule

Starting with 0.7 branch the release schedule has been change. We have introduced additional interim releases (every few weeks) between full releases. Interim releases represents points of relative stability, when new features are implemented and worked as expected, while not all features for new release is implemented yet. So the user can decide which version is to use in production: relatively stable interim, when new features are required, or stay on latest release. Learn more about new versioning scheme


mongodb 1.8 or later and pymongo 1.1 or later are required. Install them according to your operation system policy. Then:

  1. Create mongodb user for NOC:

    /opt/noc$ mongo
    MongoDB shell version: 1.8.2
    connecting to: test
    > use noc
    > db.addUser("noc", "password")
  2. Change [nosql] section of etc/noc.conf. Refer to noc.conf reference for details.

  3. FastCGI daemon noc-fcgi was replaced by full-blown HTTP server noc-web. You may need to change your HTTP server configuration from FastCGI to reverse proxy. Refer to the "Webserver Setup" reference for instructions

  4. Finish the update as usually:

    /opt/noc$ ./scripts/post-update

Infrastructure changes

New site and collaboration services

Quickly growing DevTeam demands new approaches and tools. As a result, new site and collaboration services, including Jira, Confluence, FishEye and Jenkins are introduced to community. See "New services on nocproject.org" for details.

Project got new official logo. See New project's logo for details.

New UI

NOC gots a new ExtJS4 web ui, offering desktop-like look and feel and rich sets of widgets. See ExtJS examples for details.

REST/JSON interface

NOC Client-to-server communications changing. New UI uses REST/JSON interface, open to third-party applications.

PEP8 code formatting convenctions

A lot of Python sources has been reformatted according to PEP8

Continuous integration and testing

Continuous integration system has been introduced, testing each commit against over 1800 unittests

noc-web daemon

flup-based FastCGI daemon noc-fcgi has been replaced with Tornado - based noc-web HTTP-server. See "Webserver Setup" for details

MS Active Directory authentication backend

New AD authentication backend can be used to integrate NOC into existing MS Windows domains. See noc.conf for details:

./noc shortcut
/opt/noc$ python manage.py ...
/opt/noc$ ./noc ...

are the same

kevent polling method fixed

kevent polling method works on both FreeBSD and Mac OS X systems

Service Activation

MRT throttling

max_mrt_rate_per_sae and max_mrt_rate_per_shard noc-sae.conf parameters can be used to limit script starting rate to avoid excessive load on centralized AAA infrastructures

Better MRT scheduling

Adaptive MRT timeout calculation and smart map task scheduling help to avoid the spikes of load and distribute tasks more evenly

MRT logging

mrt_log noc-sae.conf parameters enables additional MRT logging into separate CSV files in the <logdir>/mrt directory

./noc versioninventory

New versioninventory CLI tool available:

/opt/noc$ ./noc versioninventory @selector

Command Snippets improvements

  • Snippets got additional Ignore CLI errors option to silently ignore CLI errors during snippet execution
  • Managed Objects access permissions are counted when running new snippet

SAE-Activator protocol protection

SAE-Activator RPC protocol got optional ssh-like protection to encrypt/verify and compress transmitted data

New profiles

  • Alentis.NetPing
  • AlliedTelesis.AT9400
  • AlliedTelesis.AT9900
  • Brocade.IronWare
  • Cisco.IOSXR
  • DLink.DxS_Smart
  • DLink.DGS3100
  • Eltex.MES
  • Ericsson.SEOS
  • Fortinet.Fortigate
  • OS.Linux
  • Zyxel.ZyNOS_EE

New scripts

  • Cisco.ASA: Cisco.ASA.get_interfaces
  • Cisco.IOS: Cisco.IOS.get_interfaces, Cisco.IOS.get_switchport
  • EdgeCore.ES: EdgeCore.ES.add_vlan, EdgeCore.ES.remove_vlan
  • HP.ProCurve: HP.ProCurve.get_interfaces
  • Juniper.JUNOS: Juniper.JUNOS.get_bfd_sessions
  • MikroTik.RouterOS: MikroTik.RouterOS.get_arp, MikroTik.RouterOS.get_license, MikroTik.RouterOS.get_vlans
  • OS.FreeBSD: OS.FreeBSD.get_interface_status
  • Zebra.Zebra: Zebra.Zebra.get_version
  • ZyXEL.ZyNOS: Zyxel.ZyNOS.get_interface_status, Zyxel.ZyNOS.get_portchannel, Zyxel.ZyNOS.get_switchport

Script improvements

  • SNMP support for Alcatel.OS62xx.get_version, DLink.DxS.get_version, DLink.DxS.get_interface_status, Huawei.VRP.get_version
  • Cisco.IOS.get_spanning_tree recognises ports in ALTERNATE state
  • Cisco.IOS.get_lldp_neighbors properly detets disabled LLDP
  • HP.ProCurve.get_spanning_tree gots RSTP mode support
  • DLink.DxS restores CLI pager status on exit
  • DLink.DxS got SIM support
  • Improved compatibility with DLink DGS-3100 series

API Improvements

  • Profiles can install additional script methods via Profile.setup_script()/Profile.add_script_method()
  • f5.BIGIP: with self.tmsh(): construction
  • Fine grained script result caching: with self.cached(): and self.cli/self.snmp.get* cached= parameters
  • New interfaces: IGetObjectsStatus, IGetIfIndex, IGetBFDSession
  • Profile.get_linecard() method

Fault Management

NOC gots a new Fault Management implementation with event correlation and root cause analysis. New implementation follows rule-based approach and backed by high-performance mongodb database and cabable to collect, analyze and correlate more than 500 events per second per node. Built-in rule set trained to analyze 189 types of network events and detect 77 types of network problems on commonly used network platforms. Built in rule set can easily be extended and trained.

FM now can use Precompiled MIBs

IP Address Management (IPAM)

  • Do not ping broadcast addresses

Peering Management

  • Interactive prefix-list builder has been rewritten to new UI
  • ARIN database support
  • Client cone analysis
  • Prefix-list builder now uses mongodb cache and works about 3 times faster

DNS Management

  • DNSZoneRecordType.is_visible field is renamed to is_active