Skip to content

Commit 6005494

Browse files
authored
Merge pull request #16 from f5devcentral/module4-ladt-intro
Module4 ladt intro
2 parents c6bbe8e + e1e738a commit 6005494

9 files changed

+246
-0
lines changed
Loading
Loading
211 KB
Loading
Loading
120 KB
Loading
Loading

docs/class1/module4/lab1.rst

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
.. _LADT - Overview:
2+
3+
F5 LADT Overview
4+
================
5+
6+
In this lab, we'll run through an overview of the **F5 Local API Discovery Tool**. At a high level, the **F5 LADT** is:
7+
8+
*The AST Local API Discovery Tool (LADT) is a fork of the Application Study Tool focused on analyzing data about customer APIs based on data from classic F5 BIG-IP logs.*
9+
10+
*The LADT receives per-http-request data from F5 BIG-IP devices and stores relevant fields for periodic batch analysis. Output of the analysis is a list of likely API endpoints, whether or not they are authenticated, and the number of requests processed by each endpoint. API detection logic is based on a subset of official F5 product offerings, with some advanced functionality (e.g. schema discovery and Machine Learning analysis) excluded for performance reasons.*
11+
12+
Example API Detection Output
13+
----------------------------
14+
15+
.. image:: images/api-detection-screenshot.png
16+
:width: 800
17+
18+
System Overview
19+
---------------
20+
21+
The F5 LADT relies on a specially-crafted iRule to export per-request metadata to the analysis system, running on-prem. The analysis system consists of:
22+
23+
- Opentelemetry Collector: For receiving incoming logs, processing, and forwarding them to storage system
24+
- Clickhouse Database: For storing log data and running analysis queries
25+
- Analysis Job: Runs periodically to generate results
26+
- Grafana: For visualizing results, and system component states
27+
28+
.. image:: images/system-overview.png
29+
:width: 800
30+
31+
System Prerequisites and Recommendations
32+
----------------------------------------
33+
34+
- Linux system with docker (or compatible) - Installation Instructions
35+
- F5 BIG-IP with logging iRule (contact your F5 Team for access)
36+
- Network connectivity (default TCP port 6514) between the BigIP and instance running LADT
37+
38+
Minimal system specs for running the Local API Discovery Tool will depend heavily on expected traffic load.
39+
40+
The following performance characteristics were observed with an Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz running localized testing
41+
(single TCP+TLS connection meant to simulate a stream of data from a single BigIP Device). Actual message throughput
42+
under real world network conditions would likely be quite a bit lower.
43+
44+
.. list-table:: Performance Characteristics
45+
:widths: 15 25 25 25 25
46+
:header-rows: 1
47+
48+
* - Msg/Sec
49+
- Collector CPU Util
50+
- Clickhouse CPU Util
51+
- Collector Mem Util
52+
- Clickhouse Mem Util
53+
* - 0
54+
- 0.5%
55+
- 0.8%
56+
- 40MiB
57+
- 546MiB
58+
* - 1
59+
- 0.7%
60+
- 1.3%
61+
- 41.5MiB
62+
- 629MiB
63+
* - 10
64+
- 0.8%
65+
- 1.6%
66+
- 58MiB
67+
- 629MiB
68+
* - 100
69+
- 1.7%
70+
- 1.8%
71+
- 66MiB
72+
- 646MiB
73+
* - 1000
74+
- 8%
75+
- 2.8%
76+
- 115MiB
77+
- 650MiB
78+
* - 10000
79+
- 59.3%
80+
- 40%
81+
- 176MiB
82+
- 698MiB
83+
* - 20000
84+
- 133%
85+
- 44%
86+
- 216MiB
87+
- 750MiB
88+
* - 30000
89+
- 180%
90+
- 47%
91+
- 216MiB
92+
- 798MiB
93+
* - 40000
94+
- 235%
95+
- 70%
96+
- 225MiB
97+
- 948MiB
98+
* - 54000
99+
- 298%
100+
- 106%
101+
- 245MiB
102+
- 1000MiB
103+
104+
The analysis script adds an additional ~10% CPU and 250MiB of load to the clickhouse instance while performing analysis.
105+
106+
.. list-table:: Analysis Characteristics
107+
:widths: 25 25
108+
:header-rows: 1
109+
110+
* - Analyzed Messages
111+
- Analysis Duration Sec
112+
* - 1000
113+
- 113ms
114+
* - 10000
115+
- 0.9s
116+
* - 10000
117+
- 6.67s
118+
* - 20000
119+
- 14.7s
120+
* - 1.04M
121+
- 1.12min
122+
* - 2.2M
123+
- 2.51min
124+
* - 10M
125+
- 4.06min
126+
127+
Disk space usage likewise depends on volume, but clickhouse provides a good amount of compression (here 758 million entries are stored in ~210MiB).
128+
129+
.. list-table:: Disk Space Usage
130+
:widths: 15 15 15 15 15 15
131+
:header-rows: 1
132+
133+
* - Rows
134+
- Disk Size
135+
- Bytes Size
136+
- Compressed Size
137+
- Uncompressed Size
138+
- Ratio
139+
* - 758799480
140+
- 210.24MiB
141+
- 220452423
142+
- 209.25 MiB
143+
- 21.16 GiB
144+
- 0.00965486284484136
145+
146+
.. note:: As previously mentioned, we won't get digging into the installation details or process within this lab module.
147+
148+
If you're interested in going down that path and learning more, please visit the `F5 LADT GitHub Repo's Installation section <https://github.com/f5devcentral/ast-api-discovery/blob/main/README.md#installation>`_
149+
150+
Select **Next** below for to learn how to access the F5 LADT Grafana instance in the UDF lab environment.

docs/class1/module4/lab2.rst

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
.. _LADT - Grafana Instance Access:
2+
3+
Accessing the F5 LADT Instance Dashboards
4+
=========================================
5+
6+
We've pre-provisioned an instance of F5 LADT in the UDF lab environment. It's ready for you to dive in and take a look. Just follow the instructions below!
7+
8+
Accessing F5 LADT Grafana Instance
9+
----------------------------------
10+
11+
#. From within the UDF course deployment's **LADT** System, locate and select **ACCESS**, then **Grafana**.
12+
13+
.. image:: images/udf_ladt_grafana_access.png
14+
:width: 800
15+
16+
#. Once the new browser tab has loaded, you will be presented with the self-installed F5 LADT Grafana login. Enter the following credentials and select **Log in**.
17+
18+
Username
19+
20+
.. code-block:: console
21+
22+
admin
23+
24+
Password
25+
26+
.. code-block:: console
27+
28+
11F5Networks11
29+
30+
.. image:: ../module2/images/grafana_login.png
31+
:width: 800
32+
33+
#. You'll be presented with the Grafana homepage. From here, select the hamburger menu next to **Home** in the upper left corner, then **Dashboards**
34+
35+
.. image:: images/ladt_grafana_home.png
36+
:width: 800
37+
38+
#. Once the Dashboards page has loaded, you can either expand the list of dashboards by selecting the **>** symbol next to **Local API Discovery** or selecting the **Local API Discovery** folder itself.
39+
40+
.. image:: images/ladt_dashboards.png
41+
:width: 800
42+
43+
API Detection Dashboard
44+
-----------------------
45+
46+
#. The **API Detection Dashboard** has three sections, as outlined below. Contract the *System Overview* and *System State Detail* sections by selecting the **v** next to each section title, as we're more interested in the *Detection Results*.
47+
48+
* System Overview
49+
* Clickhouse Service Status
50+
* OTel Service Status
51+
* Log Analyzer Status
52+
* Last Analysis Time
53+
* Logs Analyzed Last Time
54+
* New Logs Since Last Analysis
55+
- System State Detail
56+
- Analysis Settings
57+
- Logs Last Processed by Host
58+
- Logs Received
59+
- Logs Processed at Last Analysis
60+
- Last Analysis Duration
61+
- CPU Utilization
62+
- Memory Usage
63+
- Detection Results
64+
- Application Name
65+
- HTTP Method
66+
- Path
67+
- Authentication Detected
68+
- Sensitive Headers Present
69+
- Sensitive Body Present
70+
- Sensitive Data Types
71+
- # of Requests
72+
73+
.. image:: images/api_detection_dashboard.png
74+
:width: 800
75+
76+
As detailed above, **Detection Results** is where all of the API endpoints and their detected properties will be listed. Straight away, you will be able to get a view of the number of requests an API resource has seen for a given method and whether or not sensitive data or headers have been detected.

docs/class1/module4/module4.rst

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
.. _Exploring the F5 LADT:
2+
3+
Module 4: Exploring the F5 Local API Discovery Tool
4+
===================================================
5+
6+
Here we'll provide a sneak peak at an extension of the **F5 AST** called the **F5 Local API Discovery Tool (LADT)**. The **F5 LADT** is a new development which students can explore in the UDF lab environment, and even get their hands on from the official `F5 DevCentral LADT GitHub Repo! <https://github.com/f5devcentral/ast-api-discovery>`_
7+
8+
.. note:: At the time of this lab module's publication, the UDF lab environment is not geared toward students performing installation and configuration.
9+
10+
We will be amending the lab in order to mimick that of the F5 AST portions; allowing students to either interact with a pre-installed copy and/or run through the process of installing it themselves.
11+
12+
13+
14+
Please select **Next** and proceed to the :ref:`LADT - Overview`.
15+
16+
.. toctree::
17+
:maxdepth: 1
18+
:glob:
19+
20+
lab*

0 commit comments

Comments
 (0)