Nasuni Dashboards provides a framework for viewing time series data across a customer's entire Nasuni stack. Supported data sources currently include Edge Appliance SNMP data as well as the Global File Acceleration (GFA) Telemetry REST API.
-
Telegraf is an agent for collecting, processing, aggregating, and writing metrics.
-
InfluxDB is an open-source time series database for saving data.
-
Grafana is a multi-platform open-source analytics and interactive visualization web application for displaying data.
-
This package stack has only been validated with the component versions documented in the README file.
-
Nasuni Support is limited to Nasuni APIs and Protocols (SMB, NFS, SNMP, GFA Telemetry). Nasuni API and Protocol bugs should be reported to Nasuni Customer Support.
-
GitHub project bugs, questions, and feature requests should be submitted as “Issues” in GitHub under its repositories.
Nasuni Dashboards has been validated with these component versions:
-
Telegraf: 1.23.4
-
InfluxDB: 1.8.10
-
Grafana: 9.1.0
-
OSes:
-
Rocky Linux 8.6 or 9.0 minimal, sourced from cloud marketplace offerings or Rocky Linux ISO
-
Windows Server 2019 or 2022 64-bit (x86)
-
-
Sizing: 4 vCPU, 16GB RAM, and 100GB boot disk
The data sources used with Nasuni Dashboards should be accessible from the VM:
-
Outbound:
-
SNMP: UDP 161 access to monitored Edge Appliances
-
GFA Telemetry REST API: TCP 443 access to https://gfa-telemetry-1.api.nasuni.com
-
-
Inbound:
- Grafana: TCP Port 3000 for access to the default Grafana UI
InfluxDB is designed to run on solid-state drives (SSDs) and memory-optimized instances. The Telegraf agent collects data for InfluxDB and does not require independent sizing.
vCPU or CPU (Cores) | RAM (GB) | IOPS | Writes per second | Queries per second | Unique series |
---|---|---|---|---|---|
2-4 | 2-4 | 500 | < 5,000 | < 5 | < 100,000 |
4-6 | 8-32 | 500-1000 | < 250,000 | < 25 | < 1,000,000 |
8+ | 32+ | 1000+ | > 250,000 | > 25 | > 1,000,000 |
-
Grafana is very lightweight in its use of memory and CPU.
-
Minimum recommended memory: 255 MB
-
Minimum recommended CPU: 1
-
In the NMC, click Filers in the top bar.
-
Click SNMP Settings on the left navigation menu under Filer Settings.
-
For each Edge Appliance that should be monitored, select the Edge Appliances. (Note: Only select multiple Edge Appliances if all values are shared.)
-
Click the Edit Filers button in the upper right.
-
Enable your desired SNMP protocol versions:
a. SNMPv3 (most secure): Set Enable v3 Support to On. Enter a Username and Password.
b. SNMPv1/v2: Set Enable v1,v2c Support to On. Set the Community Name to public (or to what you plan to use).
-
Enter your preferred System Location and System Contact.
-
Click Save SNMP Settings.
To use the GFA Telemetry API:
-
You must have a volume under GFA management (Active or Observation mode)
-
You must create a Global File Accelerator API key on the Nasuni dashboard. Note: If the link is not accessible, you may not be licensed for GFA. Contact your Nasuni Account Manager for assistance.
Deploy a Rocky Linux or Windows VM that meets the requirements for Nasuni Dashboards.
NOTE: Be sure to update all the OS packages by running (Linux)
sudo dnf update
To use hostnames rather than IP addresses for the Telegraf SNMP agent configuration, DNS is required. Two common scenarios for DNS configuration:
-
DHCP: DHCP is typically used for Cloud VMs, but can also be used on-premises. If the DNS server provided by DHCP is not authoritative for Edge Appliance hostnames, you can override the DNS server settings.
-
To enable static DNS with DHCP for Rocky Linux, ssh to the VM and run the following command to disable DHCP updates to DNS:
sudo tee -a /etc/NetworkManager/conf.d/disable-resolve.conf-managing.conf > /dev/null <<EOT [main] dns=none EOT
-
Edit /etc/resolv.conf, specifying nameserver entries for the DNS servers that are authoritative for Edge Appliance DNS.
sudo vi /etc/resolv.conf
-
-
Static IP: Ensure that the DNS servers you specify are authoritative for Edge Appliance DNS.
From your computer (Rocky Linux) or the Windows VM (Windows Install), click the green Code button within the Nasuni Labs nasuni-dashboards repository and select the Download ZIP option to download a local copy of the repository and extract the contents.
Expand Rocky Linux Installation Instructions
To install InfluxDB on Rocky Linux, ssh to the VM and run the following commands:
-
Update all packages (-y argument skips confirmation; for manual confirmation, remove it):
sudo yum -y update
-
Install wget (if not present):
sudo yum -y install wget
-
Switch to your home directory and use wget to download InfluxDB :
cd ~ && wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.10.x86_64.rpm
-
Install InfluxDB:
sudo yum -y localinstall influxdb-1.8.10.x86_64.rpm
-
Start and enable the InfluxDB service:
sudo systemctl start influxdb && sudo systemctl enable influxdb
-
Add firewall rules if the firewall service is running. First, check if the firewall service is running:
systemctl status firewalld --no-pager
If the firewall service is running, the output will be similar to the following:
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor pr
Active: active (running) since Mon 2021-12-18 16:05:15 CET; 50min ago
Docs: man:firewalld(1)
If the firewall is not running, the output will be similar to the following:
Unit firewalld.service could not be found.
If the firewall service is running, configure the firewall for InfluxDB (only required if the firewall was running), then reload the firewall configuration:
sudo firewall-cmd --add-port=8086/tcp --permanent && sudo firewall-cmd --reload
Expand Windows Installation Instructions
To install InfluxD on Windows, connect to the Windows VM and follow these instructions:
-
Run PowerShell as an administrator, then enter the following commands to download and install InfluxDB:
cd ~\Downloads ; Invoke-WebRequest https://dl.influxdata.com/influxdb/releases/influxdb-1.8.10_windows_amd64.zip -UseBasicParsing -OutFile influxdb-1.8.10_windows_amd64.zip ;Expand-Archive .\influxdb-1.8.10_windows_amd64.zip -DestinationPath .\ ;mkdir 'c:\Program Files\InfluxData\InfluxDB' ;mv .\influxdb-1.8.10-1\* 'c:\Program Files\InfluxData\InfluxDB\'
-
Download and configure the NSSM service manager to make InfluxDB run as a Windows Service (The final output should show "Status: Running", "Name: InfluxDB"):
cd ~\Downloads ;Invoke-WebRequest https://nssm.cc/release/nssm-2.24.zip -UseBasicParsing -OutFile nssm-2.24.zip ;Expand-Archive .\nssm-2.24.zip -DestinationPath .\ ;mkdir 'c:\Program Files\NSSM' ;mv .\nssm-2.24\win64\nssm.exe 'c:\Program Files\NSSM\' ;cd 'c:\Program Files\NSSM\' ;.\nssm.exe install InfluxDB "C:\Program Files\InfluxData\InfluxDB\influxd.exe" ;.\nssm.exe set InfluxDB Description "InfluxDB Time-Series Database" ;Start-Service InfluxDB ; Get-Service InfluxDB
-
Open the InfluxDB shell:
-
Rocky Linux - ssh to the VM and run the following commands:
influx
-
Windows - Use PowerShell to open the InfluxDB shell:
Start-Process "C:\Program Files\InfluxData\InfluxDB\influx.exe"
-
-
Create the database for use by Grafana using the InfluxDB (Rocky Linux and Windows):
create database nasuni
-
Confirm that the database was created:
show databases
-
Confirm that nasuni is listed.
-
Exit the InfluxDB shell:
exit
Expand Rocky Linux Installation Instructions
-
Use wget to download Telegraf:
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.23.4-1.x86_64.rpm
-
Install Telegraf and SNMP dependencies:
sudo yum -y localinstall telegraf-1.23.4-1.x86_64.rpm && sudo yum -y install net-snmp net-snmp-utils
-
Backup the default Telegraf configuration file:
sudo mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.bak
Expand Windows Installation Instructions
-
Run PowerShell as an administrator, then run commands to download and install Telegraf:
cd ~\Downloads ;Invoke-WebRequest https://dl.influxdata.com/telegraf/releases/telegraf-1.23.4_windows_amd64.zip -UseBasicParsing -OutFile telegraf-1.23.4_windows_amd64.zip ;Expand-Archive .\telegraf-1.23.4_windows_amd64.zip -DestinationPath .\ ;mkdir 'c:\Program Files\Telegraf' ;mv .\telegraf-1.23.4\* 'C:\Program Files\Telegraf\' ;mv 'C:\Program Files\Telegraf\telegraf.conf' 'C:\Program Files\Telegraf\telegraf.conf.bak'
-
Edit the telegraf.conf file:
-
Rocky Linux: On your computer, open the telegraf.conf file from the extracted Nasuni Dashboards repository zip archive in a text editor, select all, and copy the contents to your clipboard. Return to the VM ssh session, open vi, and paste the contents from step 2, customizing the values for the sections below:
sudo vi /etc/telegraf/telegraf.conf
-
Windows: In the Windows VM, copy the contents of the telegraf.conf file from the extracted Nasuni Dashboards repository zip archive to "C:\Program Files\Telegraf\telegraf.conf" and make the edits outlined in the next set of steps. One way to do this is to run Notepad or Notepad++ as an administrator, and paste the contents of telegraf.conf. Example to open telegraf.conf for editing in Notepad using PowerShell (running PowerShell as administrator):
notepad.exe "C:\Program Files\Telegraf\telegraf.conf"
-
-
If you installed influxDB on a dedicated host (single-node installs can skip this step), go the [outputs.influxdb] section, update the urls value with the InfluxDB IP address, and confirm the port. You can use the search function in vi to jump to the appropriate section of the file. Type / followed by the string you want to search for, and then press Return. The following example assumes the default port and InfluxDB running on the same host as Telegraf:
urls = ["http://127.0.0.1:8086"]
-
In the [inputs.snmp] section, update the agents value with the FQDN of all Edge Appliances to be monitored. For example (Note: The last entry does not require a trailing comma):
agents = [ "edge1.yourdomain.com", "edge2.yourdomain.com", "edge3.yourdomain.com" ]
-
In the [inputs.snmp] section, update protocol-specific values based on the protocol configured for your Edge Appliances and NMC:
-
SNMPv3
-
sec_name = "<username>"
(match the Username supplied in the Nasuni SNMP UI) -
auth_password = "<password>"
(match the Password supplied in the Nasuni SNMP UI)
-
-
SNMPv2: The included telegraf.conf assumes SNMPv3, so some values must be changed from the defaults and commented/uncommented (comment lines begin with #) to use SNMPv2:
-
version = 2
-
community = "public"
(uncomment this line and set the value if not using the public default) -
comment out (add # to the beginning) lines SNMPv3-related lines that start with the following:
-
sec_name
-
auth_protocol
-
auth_password
-
sec_level
-
-
-
-
In the [inputs.snmp.tags] section, update the customer and country values with appropriate information for your environment. Use two-letter country codes for the country value:
-
customer = "<CustomerName>"
-
country = "<CountryCode>"
-
-
To use the optional Global File Acceleration (GFA) Telemetry API data source, make the following changes to the [inputs.http] section (located directly above the [inputs.snmp] section):
-
urls (uncomment this line)
-
headers (uncomment the first headers line and enter the <GFA API Key> from the NOC Dashboard)
-
headers (uncomment the second headers line and enter a string/name to use as a unique identifier for this connection)
-
-
Save and close the file. For Rocky Linux editors using vi, press Esc, type :x, and press Enter.
-
Make final changes to the telegraf.conf file permissions (Linux) and start Telegraf:
-
Rocky Linux
-
Set the ownership and permissions for telegraf.conf:
sudo chown root:root /etc/telegraf/telegraf.conf && sudo chmod 644 /etc/telegraf/telegraf.conf
-
Restart the Telegraf service and confirm the Telegraf service is running. Look for Active: active (running) :
sudo systemctl restart telegraf && systemctl status telegraf --no-pager
-
-
Windows
- Run PowerShell as an administrator to install Telegraf as a Windows service and start it (The final output should show "Status: Running","Name: Telegraf"):
cd "C:\Program Files\Telegraf" ;.\telegraf.exe --service install --config "C:\Program Files\Telegraf\telegraf.conf" ;Start-Service Telegraf ; Get-Service Telegraf
-
Expand Rocky Linux Installation Instructions
-
Switch to your home directory and use wget to download Grafana:
cd ~ && wget https://dl.grafana.com/oss/release/grafana-9.1.0-1.x86_64.rpm
-
Install Grafana and plugins:
sudo yum -y install grafana-9.1.0-1.x86_64.rpm && sudo grafana-cli plugins install grafana-clock-panel
-
Start and enable the Grafana service:
sudo systemctl start grafana-server && sudo systemctl enable grafana-server
-
Confirm the Grafana service is running. Look for Active: active (running):
systemctl status grafana-server --no-pager
-
Configure the firewall for Grafana (only required if the firewall is enabled):
sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp && sudo firewall-cmd --reload
Expand Windows Installation Instructions
-
Run PowerShell as an administrator, and run commands to download and install Grafana. Accept all the defaults (Grafana will automatically be installed as a Windows service and started) :
cd ~\Downloads ;Invoke-WebRequest https://dl.grafana.com/oss/release/grafana-9.1.0.windows-amd64.msi -UseBasicParsing -OutFile grafana-9.1.0.windows-amd64.msi ;.\grafana-9.1.0.windows-amd64.msi
-
If Windows firewall is active, open TCP port 3000 for inbound access so remote computers can access the Grafana Dashboard:
New-NetFirewallRule -DisplayName “Allow Grafana Port 3000” -Direction Inbound -LocalPort 3000 -Protocol TCP -Action Allow
-
Use a web browser to connect to Grafana (http://fqdn-of-vm:3000).
-
Log in to Grafana. The default username is admin, and the default password is admin. Grafana will prompt you to change the default password after logging in.
-
Under the Configuration (gear) icon, add InfluxDB as a data source using the details from your install, and test the connection. For the default single-node installation, use the following information:
-
Database: nasuni
- Click Save & test to complete adding the InfluxDB data source. A green checkbox should appear alongside a message that the Data source is working.
- From the Grafana left navigation bar, click the Dashboards (four squares) icon, then click the Import link. On the Import page, click Import and upload the PerformanceDashboard.json file from the extracted repository zip archive.
-
The Options screen opens. Select the InfluxDB data source name, which should be InfluxDB (default), and click Import.
-
Navigate to the newly-imported dashboard to view the performance information for your Edge Appliances. Here is an example of expected output for the dashboard:
-
If using the GFA Telemetry API data source, import the associated GFA dashboards. From the Grafana left navigation bar, click the Dashboards (four squares) icon, then click the Import link. On the Import page, click Import and upload the GFAVolumes.json file from the extracted repository zip archive accepting the defaults and saving the configuration. Repeat for the GFAAppliances.json and GFAMiscellaneous.json files.
-
Navigate to the newly-imported GFA Volumes dashboard. Here is an example of expected output for the dashboard:
- If you are using the GFA Miscellaneous dashboard, you will need to install the Gantt Chart plugin. Follow the instructions https://grafana.com/grafana/plugins/marcusolsson-gantt-panel/?tab=installation to download and install the plugin.
Telegraf depends on SNMP data from the Edge Appliances to work. You can confirm that SNMP is configured and working on the Edge Appliance by connecting to the server where you installed the TIG stack over SSH (Rocky Linux) or RDP (Windows) and using SNMP utilities to load SNMP data.
Expand Rocky Linux Snmpwalk Instructions
Snmpwalk can be used to test SNMP connectivity and inspect values returned for an SNMP Object Identifier (OID). Nasuni publishes a full list of OIDs for the Nasuni Edge Appliance. Snmpwalk for Linux is automatically installed when installing Nasuni Dashboards, although the syntax to use it differs by SNMP version.
snmpwalk -v3 -l authnoPriv -u <snmpUsername> -a SHA -A '<snmpPassword>' -On <edgeApplianceHostnameOrIP> .1.3.6.1.4.1.42040
Populate snmpUsername, snmpPassword (enclosed in single quotes to handle special characters), and edgeApplianceHostnameOrIP with the relevant values for your environment. Here's an example of the populated command:
snmpwalk -v3 -l authnoPriv -u admin -a SHA -A 'myPassword123' -On edge1.domain.com .1.3.6.1.4.1.42040
The OID at the end corresponds to the root OID of the Nasuni MIB and will list all values in it.
snmpwalk -v 2c -c <communityName> -On <edgeApplianceHostnameOrIP> .1.3.6.1.4.1.42040
Populate communityName and edgeApplianceHostnameOrIP with the relevant values for your environment. Here's an example of the populated command:
snmpwalk -v 2c -c public -On edge1.domain.com .1.3.6.1.4.1.42040
Expand Windows SNMP Troubleshooting Info
Windows does not include SNMP troubleshooting tools, although a number of third-party tools are available. SnmpGet is an easy to use command-line SNMP utility for Windows. It can be used to verify SNMP connectivity and inspect values returned for an SNMP Object Identifier (OID). Nasuni publishes a full list of OIDs for the Nasuni Edge Appliance. After downloading SnmpGet, CD to the directory where you saved the file using PowerShell and run it by using the version specific SNMP commands below.
.\SnmpGet.exe -v:3 -sn:"<snmpUsername>" -ap:SHA -aw:"<snmpPassword>" -r:"<edgeApplianceHostnameOrIP>" -o:<OidToQuery>
Populate snmpUsername, snmpPassword, edgeApplianceHostnameOrIP, and OidToQuery with the relevant values for your environment. Here's an example of the populated command:
.\SnmpGet.exe -v:3 -sn:"admin" -ap:SHA -aw:"myPassword123" -r:"edge1.domain.com" -o:.1.3.6.1.4.1.42040.1.1.0
.\SnmpGet.exe -v:2 -c:"<communityName>" -r:"<edgeApplianceHostnameOrIP>" -o:<OidToQuery>
Populate communityName, edgeApplianceHostnameOrIP, and OidToQuery with the relevant values for your environment. Here's an example of the populated command:
.\SnmpGet.exe -v:2 -c:"nasuni" -r:"edge1.domain.com" -o:1.3.6.1.4.1.42040.1.1.0
If Telegraf reports errors in /var/log/telegraf/telegraf.log, the source of the problem is most likely with the formatting or contents of telegraf.conf.
The telegraf.conf file uses the TOML file format. Omitting or adding unexpected characters to telegraf.conf can invalidate the configuration file. You can validate telegraf.conf using a TOML file validator such as the TOML Lint website.
Run the following command to test telegraf.conf (the command will report a verbose error if it encounters a problem):
-
Rocky Linux
telegraf --config /etc/telegraf/telegraf.conf --test
-
Windows
Run the following command in PowerShell:
cd "c:\Program Files\telegraf" ; .\telegraf.exe --config "C:\Program Files\Telegraf\telegraf.conf" --test
If Telegraf reports an error parsing JSON_V2 (used for the GFA Telemetry data source), your version of Telegraf is too old. Telegraf added JSON_V2 parsing in version 1.19. Update to the validated version of Telegraf for Nasuni Dashboards to correct this issue.
To edit edit the telegraf.conf file:
-
Rocky Linux
sudo vi /etc/telegraf/telegraf.conf
-
Windows
Run the following command in PowerShell to open telegraf.conf for editing in Notepad:
notepad.exe "C:\Program Files\Telegraf\telegraf.conf"
Always restart the Telegraf service after editing telegraf.conf to load the new settings.
-
Rocky Linux
systemctl restart telegraf
-
Windows
Run PowerShell as an administrator and run the following command:
Restart-Service Telegraf ; Get-Service Telegraf
It is easy to add performance monitoring for newly-deployed Edge Appliances.
-
Edit telegraf.conf using the instructions above. In the [inputs.snmp] section, update the agents value to include the additional Edge Appliance monitor and save the changes. (Note that the last entry does not need a trailing comma.)
-
Restart the Telegraf servcie using the instructions above.
When decommissioning a Nasuni Edge Appliance, it is good to clean up the InfluxDB database to save disk space and remove stale data from Grafana.
-
To remove the Nasuni Edge Appliance IP or FQDN from Telegraf, edit the telegraf.conf file.
-
In the [inputs.snmp] section, update the agents value to remove the unwanted Edge Appliance monitor and save telegraf.conf. (Note that the last entry does not need a trailing comma.)
-
Start/Restart the Telegraf service using the instructions above.
-
Open the InfluxDB shell:
-
Rocky Linux
influx
-
Windows
Run PowerShell as an administrator and run the following command to open the InfluxDB shell:
Start-Process "C:\Program Files\InfluxData\InfluxDB\influx.exe"
-
-
Identify the correct database for Nasuni:
show databases
-
Access the database:
use <database_name>
The database_name is "nasuni", which was created in the "Creating the InfluxDB database" above.
-
Display the series (a logical grouping of data defined by shared measurement, tag set, and field key):
show series
-
Identify the agent_host to delete.
-
Delete all series for the agent_host:
drop series where "agent_host" = '<IP or FQDN>'
-
Verify if the command was successful:
show series
-
Exit:
exit