====== The report tool ======
{{tools:report.png| }} The report tool presents a number of reports with information from your network. The report tool also links to the "IP address scope - graphical view" and the services matrix.
Each NAV report is in essence an SQL query to the database. It shown its data in a number of columns. The
data is in many cases also hyperlinks to other reports or other tools in NAV. The whole report system
is highly configurable, the basis for the system is the configuration file report.conf. Details on
the configuration is provided [[#report.conf|below]].
===== Reports =====
An example report showing all your network equipment sorted by type:
{{screenshot:3.3:equipmentypes.png|The equipment type report}}
From this report you can drill down on a particularly type and see the number of devices you have of this
type. That will display another report (the netbox report) with more information on each device. From
here you can go to other reports, i.e. a switch port report for a given switch, or a room showing
equipment in a given room.
Tips:
* To navigate back to the report home page, use the "current path" provided below the NAV bar.
* The search bars on top are short-cuts to interesting reports. The room search lets you go directly to a room of interest. You may also search for a particular port name, or you may dive directly into the IP device center of a device in interest.
===== IP address scope - graphical view =====
For large networks the task of maintaining the total IP address scope may be a challenge in itself. It is useful to have an overview of all the subnets in operation, and what is more, how full they are, i.e. how many machines they contain. NAV introduces a tabular view that gives an excellent overview on a single page:
{{ screenshot:3.3:prefixmatrix.png?700 |The prefix matrix }}
A prerequisite for this tool to work is that you have seeded your database with one or more scope prefixes. The scope prefixes defines your total address room. You may have both IPv4 and IPv4 scopes. Each scope can be visualized as shown in the example.
You may also use the reserved prefix option in Seed Database. A reserved prefix is a prefix that is allocated for a purpose, but is not yet in production. For more info on registering scope and reserved prefixes [[seedessentials#prefix|see here]].
A brief explanation of the functionality in the prefix matrix:
* Layout
* For IPv4 each row is a /24 scope and the columns counts from 0-255
* For IPv6... (to be completed)
* A coloured area means that this prefix is in use or allocated
* reserved prefixes are brown
* in cases where there are many small subnets (meaning too small to display in a good manner), the row is blue
* prefixes in use follow a colour scheme based on their utilization rate:
* a very heavily used prefix will be red
* a lightly used prefix will have a light colour
* The displayed percentage is the actual percentage of the IP addresses in the prefix that are in use. If you click on this link you will be directed to the machine tracker that can display the actual IP addresses (and mac addresses) that are in use.
* If you click on the row titles on the left you will be directed to a report displaying all prefixes in that area
* If you click on an actual allocated prefix you will e directed to a report displaying details regarding this prefixes
* If you uncheck the "Show unused address rows" you will get a collapsed view removing rows where there are no allocations.
===== Service matrix =====
This tool is quite simple and only useful if you use the NAV service monitor to an extent. It displays
all servers and services in a matrix showing operational status.
====== Configuration ======
As mentioned the report system is highly configurable, you can alter the configuration file "report.local.conf", either adding new reports or overloading existing reports that exists in "report.conf".
==== Report configuration ====
The NAV reports are made based on the ''report.conf'' configuration file. You can expand this file
with new reports as you like in ''report.local.conf''. Each report is in essence an SQL-query to the database (with some
limitations). It is easy to make hyper links from data in the report to other reports or elsewhere.
An example report is given, this is the router port report:
gwport {
$description = "Extended information about router ports.";
$sql= "
SELECT netbox.sysname, gwport.ifindex, gwport.interface, module.module,
gwport.link, gwport.speed, prefixcount, metric, netbox.netboxid,
gwportid, gwport.portname, n2.sysname AS otherbox, swport.interface AS remoteif
FROM netbox
JOIN module ON (netbox.netboxid=module.netboxid)
JOIN gwport ON (module.moduleid=gwport.moduleid)
LEFT JOIN (SELECT gwportid, COUNT(gwportid) AS prefixcount
FROM gwportprefix
GROUP BY gwportid) tempaggr1 USING (gwportid)
LEFT JOIN netbox AS n2 ON (gwport.to_netboxid=n2.netboxid)
LEFT JOIN swport ON (gwport.to_swportid=swport.swportid)
";
$title = "Router ports";
$hide = "netboxid,gwportid";
$name_sysname="Router";
$name_interface="Interface";
$name_gwip="IP address";
$name_speed="Mbps";
$name_portname="Description";
$name_prefixcount="#prefix";
$name_otherbox="Connected to";
$name_remoteif="Remote if";
$order_by="sysname,ifindex";
$url_sysname="netbox?sysname=$sysname";
$url_module="modules?sysname=$sysname&module=$module";
$url_prefixcount="gwip?sysname=$sysname&ifindex=$ifindex";
$url_otherbox="netbox?sysname=$otherbox";
$url_remoteif="swport?b1.sysname=$otherbox&s1.interface=$remoteif";
$explain_gwp="Router Ports";
$sum="gwport";
}
The syntax of the report configuration is:
Each report is enclosed within brackets:
r1{
...
}
This report is seen as ''https://your_nav/report/r1''
Further explanation of the report configuration syntax:
^Command ^Description |
| $description="..."; | Textual description of what the report shows |
| $sql="SELECT ..."; | The SQL query |
| $title="..."; | The report title |
| $name_MYCOL | Changes the column header. |
| $explain_MYCOL | Shows an explanation as popup in the browser when you hold the curser over the column header.|
| $order_by | Defines the default ordering of the sql query. By clicking on the column headers in the report, you can sort/reverse sort on other criteria. |
| $url_MYCOL | Makes a hyperlink to another report or elsewhere. Takes parameters from the current report|
| $hide | Columns that must be included in the $sql because they are used in $url. $hide will not show the column in the report. |
| $extra | Extra "static" columns at the right that can be used for hyperlinks |
| $sum | Show the sum total of a given column (which must contain numeric values) |