01 - Visualization of F5 BIG-IP metrics on Grafana using Prometheus and Telemetry Streaming service
This user guide is all about configuration and deployment of telemetry streaming service on F5 BIG-IP device and scraps those metrics by Prometheus which will be finally visualized by the Grafana. One can select the relevant metrics scraped by the Prometheus and visualize them on the Grafana which will be demonstrated later in the guide.
Note: More detailed steps along with configuration images can be found on : |
This guide is heavily based on the work performed by Michael O'Leary and one can view on here. The purpose of this guide is to document a little more elaborated guide for both learning and deployment aspects and also address the possible issues that could be faced during the process of deployment.
Telemetry streaming (TS) is an iControl LX extension delivered as a TMOS-independent RPM file with the ability to declaratively aggregate, normalize and forward statistics and events from the BIG-IP to a consumer application by posting a single TS JSON declaration to TS’s declarative REST API endpoint. Additional information about Telemetry streaming can be found here.
Prometheus is an open-source monitoring solution that stores time series data like metrics whereas Grafana allows visualizing the data stored in Prometheus and also supports a wide range of other sources.
A short briefing about the architecture diagram in case of this user-deployment case scenario, the F5 BIG-IP system is on standalone mode with a management IP of 172.20.100.173, and both Prometheus and Grafana services are running on the same host with an IP address of 192.168.180.191 where the service port for Prometheus is on default – 9090 and the service port for Grafana is 5000.
The whole deployment guide is broadly divided into the following sections and one can jump to the required step if they have achieved the previous configuration successfully:
- Section I: Download and install Telemetry Streaming
- Section II: Telemetry Streaming Declaration on the F5 BIG-IP device
- Section III: Configuration of Prometheus
- Section IV: Configuration on Grafana using Prometheus as a data source
Section I: Download and install Telemetry Streaming
We need to first download and install the telemetry streaming package on the F5 BIG-IP device. Since the telemetry streaming package is an RPM file that can be downloaded and can install through GUI or curl command on the CLI of the F5 BIG-IP device.
In this user manual guide, we will download and then upload the telemetry streaming package on the BIG-IP using the iControl/iApp LX framework.
One can use the alternative way which can be found here.
First, we need to download the RPM file, one can find the latest telemetry streaming RPM file on the F5 Telemetry site on GitHub and download the latest RPM file.
The GitHub page to download telemetry streaming can be found here.
After downloading the file, you need to access your F5 BIG-IP GUI with your admin privilege account then follow the following steps:
Go To iApps module > Package Management LX > Import > Browse to the downloaded location > Select
Section II: Telemetry Streaming Declaration on the F5 BIG-IP device
Once the download and installation of the F5 telemetry streaming package have been completed, we need to send a Telemetry Streaming declaration to configure a Telemetry Streaming pull consumer target.
Before we jump into this configuration, we need to create a new user with an administrator role on the F5 BIG-IP device and you can just continue with the default admin user on the further configuration.
We can create a new user in the following steps:
- Go to System > Users > User List
- Click on Create button
- Input the new user’s name and password
- Select role as administrator then add
- Click on the Finished button
As we’re using Prometheus on this user-guide manual so, the Telemetry Streaming consumer target will be Prometheus which is hosted on 192.168.180.191:5000
We can either use Postman or using curl command on the CLI of the F5 BIG-IP device to configure a Telemetry Streaming pull consumer target.
Configuration using Postman application
Just follow the following steps for the configuration of the telemetry streaming consumer target using the Postman application.
Step I: Open the Postman and create a new tab
Step II: Select the GET method and paste the following link
https://<big-ip-management-ip-address>/mgmt/shared/telemetry/declare
Step III: Browse on Auth field and fill up the credentials
Use the credentials used to log into F5 BIG-IP (in this case, recently created new user)
Step IV: Select on Body option
Change the method into POST, then select raw sub-option and then JSON data format. Past the Telemetry Streaming declaration on the body section and then click on the send button.
{ "class": "Telemetry", "My_Poller": { "class": "Telemetry_System_Poller", "interval": 0 }, "My_System": { "class": "Telemetry_System", "enable": "true", "systemPoller": [ "My_Poller" ] }, "metrics": { "class": "Telemetry_Pull_Consumer", "type": "Prometheus", "systemPoller": "My_Poller" } }
|
Step V: Verify the response as the success status
Select GET HTTP method on https://<big-ip-management-ip-address>/mgmt/shared/telemetry/declare
Step VI: Verify the available metrics
Create a new tab on Postman:
- On the URL section
https://<big-ip-management-ip-address>/mgmt/shared/telemetry/pullconsumer/metrics
- On the authorization section, use the same credentials used before