GNMIS

GNMIS

What?

GNMIS is a user interface to RRD collections.  It doesn't actively collect data, it is a presentation and searching tool.


Where?

Campus: http://stats.net.wisc.edu/cgi-bin/gnmis.fcgi

UW System Network: https://stats.uwsys.net/cgi-bin/gnmis.fcgi


Basic Searching

  • Reset by clicking on the "GNMIS" title link at the top of page
  • The search box will query all columns for matching data
  • "Rock" button will execute query
  • "I'm Feeling Lucky" button will execute query and immediately graph matches
  • "Get Dangerous" button toggles detailed search options
  • "Lists" selection will restrict query to custom search list

Verbose Searching

  • The Available Datasets list are clickable which will restrict query results to the selected dataset
  • Searchable columns
    • Match any field
    • device
    • interface
    • Application (eg. gMegaFlow)
    • service
    • BGP AS Number
    • Class (eg. Internal or External)
    • counter
    • description
    • DNS domain
    • IP Family (eg INET, INET6 or total)
    • filter
    • FQDN/IP
    • ipv4
    • ipv6
    • gMegaFlow modifiers
    • Statistic
    • other_data
    • port
    • IP protocol number
    • queue
    • Interface speed (bits per second)
    • subnet4
    • subnet6
    • BGP AS Type (path, origin)
    • dataset

Using the Search Boxes

  • By default, search terms will be executed as either MYSQL 'LIKE' matches or REGEXP; automatically determined.  Search online for how to use mysql search syntax.  There are other modes of search available.
    • You can negate a search by starting your parameter with '!'
    • You can specify an exact match like, use '=$MATCH' [example, '=this string'
    • You can specify a direct mysql call like so '==IS NULL'

Creating lists

  • After executing a search, you can add [or remove] RRDs from a list.  
  • The list names are global, so exercise caution.
  • To select a row, use the checkbox that is the leftmost column
  • For example, to create a list, choose some rows, optionally type a name next to the 'Add' box, and then hit Add.  If you do NOT type a name, a unix epoch based name will be created for you.  This is convenient to make adhoc lists quickly.
  • You can delete a list by removing all entries from the list
  • You can copy a list by selecting all and adding to a new list
  • Use the 'Lists:' drop down to restrict the gnmis database and search terms to a predefined RRD list.

Saving searches

  • After executing a search, you can save [new or overwrite] an existing search by providing a name and clicking "Save Search As:".  The search names are global, so exercise caution.
  • You can display a search by choosing it from the dropdown
  • You can delete a search by running a search and choosing the "delete" button

Things to know

  • Hub mode is configurable and sets default search options per installation
  • Unless 'show old data' is checked, rrd files that have not been updated for a day are hidden
  • Stat Files means that all files will be stat'd to verify last update time; otherwise, the last time the database was updated will be used.  The database is updated hourly via CRON.
  • Unlimited rows: results are limited to 500 matches by default
  • RRD List; instead of returning a table, return a list of RRDs; useful as an API call
  • RRD Number; instead of returning a table, return the number of matching RRDs; useful as an API call
  • Based on configuration, some columns, such as subnet or IP searching, use different types of searches.
  • If the built in search tools are insufficient and you have access to the gnmis machine, you can also create custom graph links by either using dynamic GNMIS queries
[@$HOST custom_stats]$ pwd /usr/local/ns/custom_stats
[@$HOST custom_stats]$ cat test
#dynamic=http://stats.net.wisc.edu/cgi-bin/gnmis.fcgi?device=r-peer&interface=sp-[0-9]-0-0-0&dataset==bytes&rrd_list_only=1
#dynamic=http://stats.net.wisc.edu/cgi-bin/gnmis.fcgi?dataset==gMegaFlow-active-as&rrd_list_only=1

or by specifying RRD filenames directly

[@$HOST]$ cat /tmp/genstatspage_tmp/a0a11bc591ceff3f77040763fd8e3391
#datatype=cpu|bytes&hostname=^fa-csscplat-b380-5-ban-pri7s$&interface=bas|Not
/var/local/mrtg/ban/fa-csscplat-b380-5-ban-pri7s_bas_bytes.rrd
/var/local/mrtg/ban/fa-csscplat-b380-5-ban-pri7s_cpu.rrd 

Results

  • Clicking a value in a column other than 'dataset' adds that key/value pairing to the search query
  • Click '+' next to a column header requires that column to be NOT NULL
  • Click '-' next to a column header requires that column to be NULL
  • Clicking the name of a column header changes the sort order.
  • Graph Everything will show a graph for every dataset returned
  • Stack/Plot/Total will combine corresponding datasets.  Not all of these combinations result in useful graphs.  Items can be grouped based on unique combinations discovered by GNMIS.
  • Individual items can be added/removed to lists.

Fun novelty searches

  • interface box: '(g|x)e-[0-9]-[0-9]-[0-9]' = Show all 1 and 10 gig juniper ports


Keywords:
gnmis rrd search 
Doc ID:
25536
Owned by:
Michael H. in Network Services
Created:
2012-08-08
Updated:
2026-04-29
Sites:
Network Services, University of Wisconsin System Network