What?GNMIS is a user interface to RRD collections. It doesn't actively collect data, it is a presentation and searching tool.
UW System Network:
- 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'
- 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.
- 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
[m7h@$HOST custom_stats]$ pwd
[m7h@$HOST custom_stats]$ cat test
or by specifying RRD filenames directly
[m7h@$HOST]$ cat /tmp/genstatspage_tmp/a0a11bc591ceff3f77040763fd8e3391
- 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
How GNMIS updates itself
- GNMIS uses cached info out of mysql
- RRD filenames match one of two patterns; classic mode or dynamic mode
- Classic mode; '_' is used as a deliminator to populate the 'device', 'interface', 'other_data' and 'dataset' fields.
- Dynamic mode: '_,_' is used as a deliminator. key/value pairs are separated by the '=' char
- Columns and indexes are created as needed during update; there are several configuration options available to assist.
- Interface description and bandwidth information is gleamed from FIDO.
There should be very few reasons to run gnmis_update by hand. If you do, try to run as user 'net' and be cognizant of the two below options. The two below options are 'slow' if you are updating the entire dataset [1,000,000+ files] but 'fast' if you are only updating a small directory or two.
Usage: /usr/local/gnmis/bin/gnmis_update.pl [options] [directories]
-u, --update Update rrdlast time in DB [slow]
-v, --verify Verify calculated columns [slow]