databasedoc
Differences
This shows you the differences between two versions of the page.
| databasedoc [2007/05/11 10:53] – jodal | databasedoc [2007/05/11 14:39] (current) – Moved to devel. jodal | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | |||
| - | [[TableOfContents]] | ||
| - | |||
| - | ====== Introduction ====== | ||
| - | |||
| - | This documents gives detailed information on the design of the NAV database. Currently (version 3.1) NAV | ||
| - | is split into four separate databases, with a total of **94 tables**: | ||
| - | |||
| - | * The main database " | ||
| - | | ||
| - | The " | ||
| - | |||
| - | * The "NAV profiles" | ||
| - | The "NAV profiles" | ||
| - | |||
| - | * The " | ||
| - | |||
| - | * The " | ||
| - | | ||
| - | |||
| - | ====== NAVdb (" | ||
| - | |||
| - | Allthough this is one big database, we have here split NAVdb in 9 different logical groups of tables. This | ||
| - | is shown on 5 different diagrams: | ||
| - | |||
| - | * [[http:// | ||
| - | * Netbox related tables | ||
| - | * The OID database | ||
| - | * Tables for serviceMon | ||
| - | * Tables used by Device Management | ||
| - | * [[http:// | ||
| - | * Router related topology | ||
| - | * Switch related topology | ||
| - | * [[http:// | ||
| - | * The event and alert system | ||
| - | * [[http:// | ||
| - | * The message and maintenance system | ||
| - | * [[http:// | ||
| - | * The traffic map (vlanplot) | ||
| - | |||
| - | |||
| - | |||
| - | ===== Netbox related tables ===== | ||
| - | |||
| - | This [[http:// | ||
| - | group of tables in this section. | ||
| - | |||
| - | ==== netbox ==== | ||
| - | |||
| - | The netbox table is the hart of the hart so to speak, the most central table of them all. | ||
| - | The netbox tables contains information on all IP devices that NAV manages with adhering | ||
| - | information and relations. | ||
| - | |||
| - | < | ||
| - | netboxid | ||
| - | ip IP address of the netbox | ||
| - | roomid | ||
| - | typeid | ||
| - | sysname | ||
| - | Histically MibII system.sysname was used as source, but we now use dns. | ||
| - | catid | ||
| - | subcat | ||
| - | orgid | ||
| - | ro snmp read community | ||
| - | rw snmp write community | ||
| - | prefixid | ||
| - | up whether the box is up and running (as seen from pping) | ||
| - | snmp_version | ||
| - | snmp_agent | ||
| - | upsince | ||
| - | uptodate | ||
| - | </ | ||
| - | |||
| - | ==== netboxinfo ==== | ||
| - | |||
| - | The netboxinfo table is the place to store additional info on a netbox. | ||
| - | |||
| - | < | ||
| - | netboxinfoid | ||
| - | netboxid | ||
| - | key not alway used, adds another dimension to (var,val). gDD uses i.e. this when storing collected | ||
| - | CDP data for a netbox. | ||
| - | var | ||
| - | val value | ||
| - | </ | ||
| - | |||
| - | ==== device ==== | ||
| - | |||
| - | The device table contains all physical devices in the network. As opposed to | ||
| - | the netbox table, the device table focuses on the physical box with its serial | ||
| - | number. The device may appear as different net boxes or may appear in different | ||
| - | modules throughout its lifetime. | ||
| - | |||
| - | < | ||
| - | deviceid | ||
| - | productid | ||
| - | serial | ||
| - | hw_ver | ||
| - | fw_ver | ||
| - | sw_ver | ||
| - | auto whether this device is discovered automatically by gDD or not | ||
| - | active | ||
| - | deviceorderid | ||
| - | </ | ||
| - | |||
| - | ==== module ==== | ||
| - | |||
| - | The module table defines modules. A module is a part of a netbox of category GW, SW and GSW. | ||
| - | A module has ports; i.e router ports and/or switch ports. A module is also a phyiscal | ||
| - | device with a serial number. | ||
| - | |||
| - | < | ||
| - | moduleid | ||
| - | deviceid | ||
| - | netboxid | ||
| - | module | ||
| - | model the model description (as given by the vendor) | ||
| - | descr | ||
| - | up whether the module is up and running (as detected by moduleMon. modeleMon is a plugin to gDD) | ||
| - | downsince | ||
| - | </ | ||
| - | |||
| - | ==== mem ==== | ||
| - | |||
| - | The mem table describes the memory (memory and nvram) of a netbox. | ||
| - | |||
| - | < | ||
| - | memid | ||
| - | netboxid | ||
| - | memtype | ||
| - | device | ||
| - | size size of the memory in byte | ||
| - | used how much of the memory that is used | ||
| - | </ | ||
| - | |||
| - | ==== room ==== | ||
| - | |||
| - | The room table defines a wiring closes / netork room / server room | ||
| - | |||
| - | < | ||
| - | roomid | ||
| - | locationid | ||
| - | descr | ||
| - | opt1 additional info | ||
| - | opt2 " | ||
| - | opt3 " | ||
| - | opt4 " | ||
| - | </ | ||
| - | |||
| - | ==== location ==== | ||
| - | |||
| - | The location table defines a group of rooms; i.e. a campus. | ||
| - | |||
| - | < | ||
| - | locationid | ||
| - | descr | ||
| - | </ | ||
| - | |||
| - | ==== org ==== | ||
| - | |||
| - | The org table defines an organization. | ||
| - | * An organization is in charge of a given netbox. | ||
| - | * An organization is using a given prefix (to derive this relation you must adopt the NAV guidelines for router descriptions as explained in SubnetsAndVlans). | ||
| - | |||
| - | < | ||
| - | orgid | ||
| - | parent | ||
| - | descr | ||
| - | opt1 additional info | ||
| - | opt2 " | ||
| - | opt3 " | ||
| - | </ | ||
| - | |||
| - | ==== cat ==== | ||
| - | |||
| - | The cat table defines the categories of a netbox (GW, | ||
| - | |||
| - | < | ||
| - | catid | ||
| - | (GW, | ||
| - | descr | ||
| - | req_snmp | ||
| - | (false for SRV and OTHER, true for the five others) | ||
| - | </ | ||
| - | |||
| - | ==== subcat ==== | ||
| - | |||
| - | The subcat table defines subcategories within a category. A category may have many subcategories. | ||
| - | A subcategory belong to one and only one category. | ||
| - | |||
| - | < | ||
| - | subcatid | ||
| - | descr | ||
| - | catid | ||
| - | </ | ||
| - | |||
| - | ==== netboxcategory ==== | ||
| - | |||
| - | A netbox may be in many subcategories. This relation is defined here. | ||
| - | |||
| - | < | ||
| - | netboxid | ||
| - | category | ||
| - | </ | ||
| - | |||
| - | ==== type ==== | ||
| - | |||
| - | The type table defines the type of a netbox, the sysobjectid being the unique identifier. | ||
| - | |||
| - | < | ||
| - | typeid | ||
| - | vendorid | ||
| - | typename | ||
| - | descr | ||
| - | sysobjectid | ||
| - | cs_at_vlan | ||
| - | chassis | ||
| - | frequency | ||
| - | cdp | ||
| - | tftp whether the type supports tftp storage | ||
| - | </ | ||
| - | |||
| - | ===== The OID database ===== | ||
| - | |||
| - | This [[http:// | ||
| - | |||
| - | ==== snmpoid ==== | ||
| - | |||
| - | The snmpoid table defines all OIDs used during snmp data gathering and/or Cricket data collection. | ||
| - | |||
| - | < | ||
| - | snmpoidid | ||
| - | snmpoid | ||
| - | oidkey | ||
| - | oidsource | ||
| - | match_regex | ||
| - | getnext | ||
| - | If false; this OID is a leaf OID. | ||
| - | decodehex | ||
| - | uptodate | ||
| - | the Edit Database tool this value will initially be false. | ||
| - | defaultfreq | ||
| - | inherit this value in netboxsnmpoid. Most OIDs default to 6hrs (21600), modulemon to 1 hrs (3600). | ||
| - | descr | ||
| - | oidname | ||
| - | mib the MIB the oid belongs to | ||
| - | </ | ||
| - | |||
| - | ==== netboxsnmpoid ==== | ||
| - | |||
| - | The netboxsnmpoid table defines which netboxes answers to which snmpoids. | ||
| - | |||
| - | < | ||
| - | netboxid | ||
| - | snmpoidid | ||
| - | frequency | ||
| - | </ | ||
| - | |||
| - | ===== Tables for serviceMon ===== | ||
| - | |||
| - | This [[http:// | ||
| - | |||
| - | ==== service ==== | ||
| - | |||
| - | The service table defines the services on a netbox that serviceMon monitors. | ||
| - | |||
| - | < | ||
| - | serviceid | ||
| - | netboxid | ||
| - | active | ||
| - | handler | ||
| - | version | ||
| - | up whether serviceMon finds that the service is up/down | ||
| - | </ | ||
| - | |||
| - | ==== serviceproperty ==== | ||
| - | |||
| - | Each service may have an additional set of attributes. They are defined here. | ||
| - | |||
| - | < | ||
| - | serviceid | ||
| - | property | ||
| - | value the value of the property | ||
| - | </ | ||
| - | |||
| - | ===== The RRD database ===== | ||
| - | |||
| - | This [[http:// | ||
| - | |||
| - | ==== rrd_file ==== | ||
| - | |||
| - | The rrd_file contains metainformation on all RRD files that NAV | ||
| - | uses. Each RRD file has statistics for a certain netbox | ||
| - | |||
| - | < | ||
| - | rrd_fileid | ||
| - | path | ||
| - | filename | ||
| - | step how often the rrd fil is updated (in seconds) | ||
| - | subsystem | ||
| - | | ||
| - | netboxid | ||
| - | key if relevant, which part of the netbox the rrd file has statistics for, i.e. | ||
| - | which table; service / swport or gwport | ||
| - | value i.e. which serviceid / swportid / gwportid | ||
| - | </ | ||
| - | |||
| - | ==== rrd_datasource ==== | ||
| - | |||
| - | An rrd_file consists of a set of datasources defined in this table. | ||
| - | A datasource is a data set, i.e. outOctets for a given switchport on a given switch. | ||
| - | |||
| - | < | ||
| - | rrd_datasourceid primary key | ||
| - | rrd_fileid | ||
| - | name name of the source (ds0, | ||
| - | descr further description | ||
| - | dstype | ||
| - | units units used on y-axis (seconds, bytes, etc) | ||
| - | threshold | ||
| - | May be stored as an integer or a percentage number. | ||
| - | max for thresholdmon: | ||
| - | the threshold is stored as percentage. | ||
| - | delimiter | ||
| - | lower than the threshold. | ||
| - | thresholdstate | ||
| - | data source, if it is inactive, we have not. | ||
| - | </ | ||
| - | |||
| - | ===== Tables used by Device Management ===== | ||
| - | |||
| - | This [[http:// | ||
| - | |||
| - | ==== product ==== | ||
| - | |||
| - | The product table is used be Device Management to register products. | ||
| - | Not compulsary. | ||
| - | |||
| - | < | ||
| - | productid | ||
| - | productno | ||
| - | descr | ||
| - | vendorid | ||
| - | </ | ||
| - | |||
| - | ==== deviceorder ==== | ||
| - | |||
| - | The devicerorder table is used by Device Management to place orders. | ||
| - | Not compulsary. An order consists of a set of devices (on or more) | ||
| - | of a certain product. | ||
| - | |||
| - | |||
| - | < | ||
| - | deviceorderid | ||
| - | registered | ||
| - | ordered | ||
| - | arrived | ||
| - | username | ||
| - | orgid | ||
| - | retailer | ||
| - | ordernumber | ||
| - | comment | ||
| - | productid | ||
| - | updatedby | ||
| - | lastupdated | ||
| - | |||
| - | note: the amount is not registered in deviceorder, | ||
| - | i.e. is 5, then 5 deviceorder events are posted on the eventq (I think...). | ||
| - | </ | ||
| - | |||
| - | ==== vendor ==== | ||
| - | |||
| - | The vendor table defines vendors. A type is of a vendor. | ||
| - | A product is of a vendor. | ||
| - | |||
| - | < | ||
| - | vendorid | ||
| - | </ | ||
| - | |||
| - | ===== Router related topology tables ===== | ||
| - | |||
| - | This [[http:// | ||
| - | topology related tables. | ||
| - | |||
| - | |||
| - | ==== gwport ==== | ||
| - | |||
| - | The gwport table defines the router ports connected to a module. | ||
| - | Only router ports that are //not// shutdown are included. | ||
| - | Router ports without defined IP adresses are also excluded. | ||
| - | |||
| - | < | ||
| - | gwportid | ||
| - | moduleid | ||
| - | ifindex | ||
| - | link whether the router port is operState up or down, apparently not in use | ||
| - | masterindex | ||
| - | points to the gwportid of the master port. | ||
| - | interface | ||
| - | speed speed in Mbps (1000 => 1 Gbps) | ||
| - | metric | ||
| - | portname | ||
| - | to_netboxid | ||
| - | to_swportid | ||
| - | |||
| - | |||
| - | </ | ||
| - | |||
| - | ==== gwportprefix ==== | ||
| - | |||
| - | The gwportprefix table defines the router port IP addresses, one or more. | ||
| - | HSRP is also supported. | ||
| - | |||
| - | < | ||
| - | gwportid | ||
| - | prefixid | ||
| - | gwip ip address defines on the router port | ||
| - | hsrp boolean. If true, the ip address is an hsrp address | ||
| - | |||
| - | Note: this allows for secondary addresses on router ports. | ||
| - | </ | ||
| - | |||
| - | ==== prefix ==== | ||
| - | |||
| - | The prefix table stores IP prefixes. | ||
| - | |||
| - | < | ||
| - | prefixid | ||
| - | netaddr | ||
| - | vlanid | ||
| - | </ | ||
| - | |||
| - | ==== vlan ==== | ||
| - | |||
| - | The vlan table defines the IP broadcast domain / vlan. | ||
| - | A broadcast domain often has a vlan value, it may consist of many IP prefixes, it | ||
| - | is of a network type, it is used by an organization (org) and has a user group (usage) within the org. | ||
| - | |||
| - | < | ||
| - | vlanid | ||
| - | vlan vlan value | ||
| - | nettype | ||
| - | orgid org. of the vlan, reference to the org table | ||
| - | unageid | ||
| - | netident | ||
| - | acccording to the suggested NAV syntax. | ||
| - | description | ||
| - | acccording to the suggested NAV syntax. | ||
| - | </ | ||
| - | |||
| - | ==== nettype ==== | ||
| - | |||
| - | The nettype table defines network type;lan, core, link, elink, loopback, closed, static, reserved, scope. | ||
| - | For a definition se SubnetsAndVlans. The network types are predefined in NAV and may not be altered. | ||
| - | |||
| - | < | ||
| - | nettypeid | ||
| - | - lan, link core, elink, static, scope etc | ||
| - | descr | ||
| - | edit Prefixes that are reserved, but not in operation or define your outer scope may be | ||
| - | added manually in the Edit Database tool. For these netttypes (reserved and scope) edit=' | ||
| - | </ | ||
| - | |||
| - | ==== usage ==== | ||
| - | |||
| - | The usage table defines the user group (student, staff etc). | ||
| - | Usage categories are maintained in the edit database tool. | ||
| - | |||
| - | < | ||
| - | usageid | ||
| - | descr | ||
| - | </ | ||
| - | |||
| - | ==== arp ==== | ||
| - | |||
| - | The arp table contains (ip, mac, time start, time end) | ||
| - | |||
| - | < | ||
| - | arpid | ||
| - | netboxid | ||
| - | sysname | ||
| - | router is deleted, arp has historic data) | ||
| - | prefixid | ||
| - | ip ip address of the arp entry | ||
| - | mac mac address of the arp entry | ||
| - | start_time | ||
| - | end_time | ||
| - | (typically 4 hours after the last packet sent). | ||
| - | </ | ||
| - | |||
| - | ===== Switch | ||
| - | |||
| - | This [[http:// | ||
| - | topology related tables. | ||
| - | |||
| - | ==== swport ==== | ||
| - | |||
| - | The swport table defines the switchports connected to a module. | ||
| - | |||
| - | < | ||
| - | swportid | ||
| - | moduleid | ||
| - | ifindex | ||
| - | port port number (integer) if appliqable | ||
| - | interface | ||
| - | link wheather the port has link. ' | ||
| - | speed speed of the port in Mbps (1000 => 1 Gbps) | ||
| - | duplex | ||
| - | media media type - not collected ??? USED? | ||
| - | vlan vlan value of non trunk ports. This value is | ||
| - | also in the swportvlan table - in report it | ||
| - | is taken from swport vlan, not from here. | ||
| - | trunk | ||
| - | portname | ||
| - | to_netboxid | ||
| - | to_swportid | ||
| - | </ | ||
| - | |||
| - | ==== swportvlan ==== | ||
| - | |||
| - | The swportvlan table defines the vlan values on all switch ports. | ||
| - | dot1q trunk ports typically have several rows in this table. | ||
| - | |||
| - | < | ||
| - | swportvlanid | ||
| - | swportid | ||
| - | vlanid | ||
| - | direction | ||
| - | ' | ||
| - | </ | ||
| - | |||
| - | ==== swportallowedvlan ==== | ||
| - | |||
| - | Stores a hexstring that has " | ||
| - | allowed to traverse a given trunk. | ||
| - | |||
| - | To make this information more readable a | ||
| - | help table (range) and two views (allowedvlan and allowedvlan_both) are added to NAV | ||
| - | in version 3.1. They are not documented in any further detail for the time being. | ||
| - | |||
| - | < | ||
| - | swportid | ||
| - | hextring | ||
| - | </ | ||
| - | |||
| - | ==== swportblocked ==== | ||
| - | |||
| - | This table defines the spanning tree blocked ports for a given vlan for a given switch port. | ||
| - | |||
| - | < | ||
| - | swportid | ||
| - | vlan vlan value | ||
| - | </ | ||
| - | |||
| - | ==== swp_netbox ==== | ||
| - | |||
| - | A help table used in the process of building the physical | ||
| - | topology of the network. swp_netbox defines the candidates | ||
| - | for next hop physical neighborship. | ||
| - | |||
| - | < | ||
| - | swp_netboxid | ||
| - | netboxid | ||
| - | ifindex | ||
| - | to_netboxid | ||
| - | to_swportid | ||
| - | misscnt | ||
| - | </ | ||
| - | |||
| - | ==== netbox_vtpvlan ==== | ||
| - | |||
| - | A help table that contains the vtp vlan database of a switch. | ||
| - | For certain cisco switches cam information is gathered | ||
| - | using a community@vlan string. It is then necessary to know all | ||
| - | vlans that are active on a switch. The vtp vlan table is an | ||
| - | extra source of information. | ||
| - | |||
| - | < | ||
| - | netboxid | ||
| - | vtpvlan | ||
| - | </ | ||
| - | |||
| - | ==== cam ==== | ||
| - | |||
| - | The cam table defines (swport, mac, time start, time end) | ||
| - | |||
| - | < | ||
| - | camid | ||
| - | netboxid | ||
| - | sysname | ||
| - | cam data are historic | ||
| - | ifindex | ||
| - | module | ||
| - | port port number for the cam entry | ||
| - | mac mac address found on the port | ||
| - | start_time | ||
| - | end_time | ||
| - | bridge tables are typically 5 minutes) | ||
| - | misscnt | ||
| - | and failed. We do not want to terminate these cam entries | ||
| - | right away. It is configurable how many misscnt the camlogger | ||
| - | should tolerate. | ||
| - | </ | ||
| - | |||
| - | ===== Cabling system database ===== | ||
| - | |||
| - | ==== cabling ==== | ||
| - | |||
| - | The cabling table documents the cabling from the wirering closet' | ||
| - | number to the end user's room number. | ||
| - | |||
| - | < | ||
| - | cablingid | ||
| - | roomid | ||
| - | jack jack number | ||
| - | building | ||
| - | targetroom | ||
| - | descr | ||
| - | category | ||
| - | </ | ||
| - | |||
| - | ==== patch ==== | ||
| - | |||
| - | The patch table documents the cross connect from switch port to jack. | ||
| - | |||
| - | < | ||
| - | patchid | ||
| - | swportid | ||
| - | cablingid | ||
| - | split If a split cable is used in the jack end, specify type and leaf. | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Event system ===== | ||
| - | |||
| - | This [[http:// | ||
| - | event system tables. | ||
| - | |||
| - | ==== eventq ==== | ||
| - | |||
| - | The event queue. Additional data in eventqvar. | ||
| - | Different subsystem (specified in source) post events on the event queue. | ||
| - | Normally event engine is the target and will take the event off the event | ||
| - | queue and process it. getDeviceData are in some cases the target. | ||
| - | |||
| - | < | ||
| - | eventqid | ||
| - | source | ||
| - | (reference to subsystem table) | ||
| - | target | ||
| - | (reference to subsystem table). | ||
| - | Usually event engine, may be gDD | ||
| - | deviceid | ||
| - | netboxid | ||
| - | subid a sub value on the netbox, may be ... | ||
| - | time time the event was posted | ||
| - | eventtypeid | ||
| - | state state of the event; s=start, e=end, x=not stateful | ||
| - | value value if applickable | ||
| - | severity | ||
| - | eventtype | ||
| - | </ | ||
| - | |||
| - | ==== eventtype ==== | ||
| - | |||
| - | Defines event types. | ||
| - | |||
| - | < | ||
| - | eventtypeid | ||
| - | (i.e boxState, serviceState, | ||
| - | eventtypedesc | ||
| - | stateful | ||
| - | |||
| - | subsystem | ||
| - | </ | ||
| - | |||
| - | ==== subsystem ==== | ||
| - | |||
| - | Defines the subsystems that post or receives an event. | ||
| - | |||
| - | < | ||
| - | name name of subsystem that posts (source) or | ||
| - | receives (target) event on the eventq | ||
| - | descr | ||
| - | </ | ||
| - | |||
| - | ==== eventqvar ==== | ||
| - | |||
| - | Defines additional (key,value) tuples that follow events. | ||
| - | |||
| - | < | ||
| - | eventqid | ||
| - | var | ||
| - | val value | ||
| - | </ | ||
| - | |||
| - | ==== alertq ==== | ||
| - | |||
| - | The alert queue. Additional data in alertqvar and alertmsg. | ||
| - | Event engine posts alerts on the alert queue (and in addition | ||
| - | on the alerthist table). Alert engine will process the data on | ||
| - | the alert queue and send alerts to users based on their alert | ||
| - | profiles. When all signed up users have received the alert, alert engine | ||
| - | will delete the alert from alertq (but not from alert history). | ||
| - | |||
| - | < | ||
| - | alertqid | ||
| - | source | ||
| - | (reference to subsystem table) | ||
| - | deviceid | ||
| - | netboxid | ||
| - | subid a sub value on the netbox, may be ... | ||
| - | time time the event was posted | ||
| - | eventtypeid | ||
| - | alerttypeid | ||
| - | state state of the event; s=start, e=end, x=not stateful | ||
| - | value value if applickable | ||
| - | severity | ||
| - | </ | ||
| - | |||
| - | ==== alerttype ==== | ||
| - | |||
| - | Defines the alert types. An event type may have many alert types. | ||
| - | |||
| - | < | ||
| - | alerttypeid | ||
| - | eventtypeid | ||
| - | alerttype | ||
| - | alerttypedesc | ||
| - | </ | ||
| - | |||
| - | ==== alertmsg ==== | ||
| - | |||
| - | Event engine will, based on alertmsg.conf, | ||
| - | one message for each configured alert channel (email, sms), one message for | ||
| - | each configured language. The data are stored in the alertmsg table. | ||
| - | |||
| - | < | ||
| - | alertqid | ||
| - | msgtype | ||
| - | language | ||
| - | msg the message text | ||
| - | </ | ||
| - | |||
| - | ==== alertqvar ==== | ||
| - | |||
| - | Defines additional (key,value) tuples that follow alert. | ||
| - | Note: the eventqvar tuples are passed along to the alertqvar table | ||
| - | so that the variables may be used in alert profiles. | ||
| - | |||
| - | < | ||
| - | alertqid | ||
| - | var | ||
| - | val value | ||
| - | </ | ||
| - | |||
| - | |||
| - | ==== alerthist ==== | ||
| - | |||
| - | The alert history. Simular to the alert queue with one important distinction; | ||
| - | alert history stores statefull events as one row, with the start and end time | ||
| - | of the event. | ||
| - | |||
| - | < | ||
| - | alerthistid | ||
| - | source | ||
| - | (reference to subsystem table) | ||
| - | deviceid | ||
| - | netboxid | ||
| - | subid a sub value on the netbox, may be ... | ||
| - | start_time | ||
| - | end_time | ||
| - | eventtypeid | ||
| - | alerttypeid | ||
| - | value value if applickable | ||
| - | severity | ||
| - | </ | ||
| - | |||
| - | ==== alerthistvar ==== | ||
| - | |||
| - | Defines additional (key,value) tuples that follow the alerthist record. | ||
| - | |||
| - | < | ||
| - | alerthistid | ||
| - | state state of the event; s=start, e=end, x=not stateful | ||
| - | var | ||
| - | val value | ||
| - | </ | ||
| - | |||
| - | ==== alerthistmsg ==== | ||
| - | |||
| - | To have a history of the formatted messages too, they are stored in alerthistmsg. | ||
| - | |||
| - | < | ||
| - | alerthistid | ||
| - | state state of the event; s=start, e=end, x=not stateful | ||
| - | msgtype | ||
| - | language | ||
| - | msg the message text | ||
| - | </ | ||
| - | |||
| - | ==== alertengine ==== | ||
| - | |||
| - | Used by alert engine to keep track of processed alerts. | ||
| - | |||
| - | < | ||
| - | lastalertqid | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Messages and maintenance ===== | ||
| - | |||
| - | This [[http:// | ||
| - | message and maintenance tables. | ||
| - | |||
| - | ==== emotd ==== | ||
| - | |||
| - | The table contains the messages registered in the messages tool. | ||
| - | Each message has a timeframe for when it is published on the NAV main page. | ||
| - | |||
| - | < | ||
| - | emotdid | ||
| - | author | ||
| - | last_changed | ||
| - | time | ||
| - | type type of message: error (unplanned situation), | ||
| - | scheduled outage (planned), information, | ||
| - | title title of the message (text) | ||
| - | description | ||
| - | detail | ||
| - | affected | ||
| - | downtime | ||
| - | publish_start | ||
| - | publish_end | ||
| - | published | ||
| - | replaces_emotd | ||
| - | the message it replaces. | ||
| - | title_en | ||
| - | detail_en | ||
| - | affected_en | ||
| - | downtime_en | ||
| - | </ | ||
| - | |||
| - | ==== maintenance ==== | ||
| - | |||
| - | Each message may have a maintenance window. This is stored here. | ||
| - | A location, room, netbox or service may be set on maintenance. | ||
| - | This is given by emotd_related. | ||
| - | |||
| - | < | ||
| - | maintenanceid | ||
| - | emotdid | ||
| - | maint_start | ||
| - | maint_end | ||
| - | state takes the values ' | ||
| - | or ' | ||
| - | </ | ||
| - | |||
| - | ==== emotd_related ==== | ||
| - | |||
| - | The (key,value) pairs that are on maintenance. | ||
| - | |||
| - | < | ||
| - | emotdid | ||
| - | key may be location / room / netbox or module | ||
| - | value | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Traffic map ===== | ||
| - | |||
| - | |||
| - | The traffic map (vlanplot) uses three tables to store values on positioning of | ||
| - | routers in the graph and on the use of containers. | ||
| - | This [[http:// | ||
| - | traffic map tables. | ||
| - | |||
| - | Also, see more documentation on the TrafficMap. | ||
| - | |||
| - | ==== vp_netbox_xy ==== | ||
| - | |||
| - | The table is used for positioning nodes (routers) on the traffic map. | ||
| - | A netbox may be positioned in more than one container (because we show the | ||
| - | other side of the link, the netboxes themself always only belong to one container). | ||
| - | |||
| - | < | ||
| - | vp_netbox_xyid | ||
| - | pnetboxid | ||
| - | x the X coordinate | ||
| - | y the Y coordinate | ||
| - | vp_netbox_grp_infoid | ||
| - | </ | ||
| - | |||
| - | ==== vp_netbox_grp_info ==== | ||
| - | |||
| - | The table keeps information on all containers used by the traffic map. | ||
| - | Editing containers is done in Edit Database. | ||
| - | |||
| - | < | ||
| - | vp_netbox_grp_infoid | ||
| - | name name of the container. The top container is named _Top. | ||
| - | hideicons | ||
| - | iconname | ||
| - | directory this will be used. | ||
| - | x the X coordinate of the container placement on _Top. | ||
| - | y the Y coordinate of the container placement on _Top. | ||
| - | </ | ||
| - | |||
| - | ==== vp_netbox_grp ==== | ||
| - | |||
| - | The table maps netboxes to containers. This information is maintained by Edit Database. | ||
| - | |||
| - | < | ||
| - | vp_netbox_grp_infoid | ||
| - | pnetboxid | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | ====== The "NAV profiles database" | ||
| - | |||
| - | The "NAV Profiles" | ||
| - | This [[http:// | ||
| - | As the figure suggests, the "NAV Profiles" | ||
| - | |||
| - | * Tables managed by the **user admin** tool (yellow tables) | ||
| - | * Tables managed by **alertEngine** (green tables) | ||
| - | * The rest (blue and red) are used by **Alert Profiles**. | ||
| - | |||
| - | The last 6 tables, not included on the figure, can be grouped as follows: | ||
| - | * accountorg relates users to organizations, | ||
| - | * privilege and accountgroupPrivilege relates privilege to users, administered by **user admin** | ||
| - | * navbarlink and accountbarlink relates to the users setup for **nav bar preferences** | ||
| - | * defaultfilter is an additional table uses by **Alert Profiles**. | ||
| - | |||
| - | To sum up, the 27 tables can be grouped as follows: | ||
| - | |||
| - | * **user admin** has 10 tables. | ||
| - | * **nav bar user preference** has 2 tables. | ||
| - | * **alert Engine** has 2 tables. | ||
| - | * **Alert Profiles** has 13 tables. | ||
| - | |||
| - | We do not document the database in further detail here, but refer to | ||
| - | [[http:// | ||
| - | quite well documented! | ||
| - | |||
| - | ====== The " | ||
| - | |||
| - | The " | ||
| - | |||
| - | ==== blocked_reason ==== | ||
| - | |||
| - | < | ||
| - | blocked_reasonid | ||
| - | text A reason for blocking a given set of switch ports | ||
| - | </ | ||
| - | |||
| - | ==== identity ==== | ||
| - | |||
| - | < | ||
| - | identityid | ||
| - | mac | ||
| - | blocked_status | ||
| - | blocked_reasonid | ||
| - | swportid | ||
| - | We find sysname, | ||
| - | swsysname | ||
| - | swvendor | ||
| - | swip current ip of switch, kept for consistency check | ||
| - | swmodule | ||
| - | swport | ||
| - | swifindex | ||
| - | community | ||
| - | ip current ip of computer | ||
| - | dns | ||
| - | netbios | ||
| - | starttime | ||
| - | lastchanged | ||
| - | autoenable | ||
| - | autoenablestep | ||
| - | multiple | ||
| - | mail the mail address the warning was sent to | ||
| - | secret | ||
| - | userlock | ||
| - | orgid | ||
| - | determined | ||
| - | </ | ||
| - | |||
| - | ==== event ==== | ||
| - | |||
| - | < | ||
| - | eventid | ||
| - | identityid | ||
| - | event_comment | ||
| - | blocked_status | ||
| - | blocked_reasonid | ||
| - | eventtime | ||
| - | autoenablestep | ||
| - | username | ||
| - | </ | ||
| - | |||
| - | |||
| - | ==== block ==== | ||
| - | |||
| - | The block table, in lack of a better name, is a run where we do automatic blocking | ||
| - | of computers based on input ip-list. | ||
| - | |||
| - | < | ||
| - | blockid | ||
| - | blocktitle | ||
| - | blockdesc | ||
| - | mailfile | ||
| - | reasonid | ||
| - | private | ||
| - | determined | ||
| - | incremental | ||
| - | blocktime | ||
| - | userid | ||
| - | active | ||
| - | lastedited | ||
| - | lastedituser | ||
| - | inputfile | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | ====== The " | ||
| - | |||
| - | The logger database contains 6 tables. The database is used for storing Cisco syslog messages in a | ||
| - | structured manner. The database has no relation to other parts of NAV, thus the logger system can be looked upon | ||
| - | as a separate system (the origin table could potentially relate to the netbox table in a later | ||
| - | version...). | ||
| - | |||
| - | See [[http:// | ||
| - | the NAV Cisco syslog analyzer tool. The chapter also includes a database figure, almost uptodate; the system table no longer exists and there is a newpriority reference from message to priority. | ||
| - | |||
| - | ==== message ==== | ||
| - | |||
| - | Contains the syslog messages with reference | ||
| - | < | ||
| - | id primary key | ||
| - | message | ||
| - | time timestamp when the message was posted | ||
| - | origin | ||
| - | type reference to the type table, the message type, indirectly priority | ||
| - | newpriority | ||
| - | by rules defined in the syslog config file. | ||
| - | </ | ||
| - | |||
| - | ==== origin ==== | ||
| - | |||
| - | The box that has sent the syslog message | ||
| - | < | ||
| - | origin | ||
| - | name name of the box (switch, | ||
| - | category | ||
| - | </ | ||
| - | |||
| - | ==== category ==== | ||
| - | |||
| - | < | ||
| - | category | ||
| - | </ | ||
| - | |||
| - | |||
| - | ==== type ==== | ||
| - | |||
| - | < | ||
| - | type | ||
| - | priority | ||
| - | facility | ||
| - | mnemonic | ||
| - | </ | ||
| - | |||
| - | ==== priority ==== | ||
| - | |||
| - | Defines the eight Cisco priority levels. This table is predefined in NAV filled with | ||
| - | the eight rowa of data. | ||
| - | |||
| - | < | ||
| - | priority | ||
| - | keyword | ||
| - | description | ||
| - | </ | ||
| - | |||
| - | ==== errorerror ==== | ||
| - | |||
| - | Contains messages that deviate from the cisco syslog message format and thus cannot be stored in | ||
| - | the given structure. | ||
| - | |||
| - | < | ||
| - | id primary key | ||
| - | message | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
databasedoc.1178880822.txt.gz · Last modified: (external edit)
