> For the complete documentation index, see [llms.txt](https://docs.bindplane.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bindplane.com/integrations/sources/f5-big-ip.md).

# F5 BIG-IP

Connects to an F5 BIG-IP device's iControl REST API over HTTPS, authenticating with a username and password, and scrapes metrics for nodes, pools, pool members, and virtual servers on a fixed interval. Metrics are collected by the upstream OpenTelemetry `bigip` receiver.

### Supported Telemetry

| Platform | Metrics | Logs | Traces |
| -------- | ------- | ---- | ------ |
| Linux    | ✓       |      |        |
| Windows  | ✓       |      |        |
| macOS    | ✓       |      |        |

### Prerequisites

* A reachable F5 BIG-IP device with its iControl REST API enabled and listening over HTTPS (port `443` by default).
* A BIG-IP user account whose credentials the collector can use to authenticate. The account needs read access to the statistics this source scrapes (nodes, pools, pool members, virtual servers). For creating users and assigning roles, see F5's official documentation: [Manage user accounts and roles](https://techdocs.f5.com/en-us/bigip-15-0-0/big-ip-systems-user-account-administration/user-roles.html).
* Network reachability from the collector host to the BIG-IP management endpoint on the configured port. Open that path in any host or cloud firewall between them.
* For strict TLS verification, the certificate authority that signed the BIG-IP server certificate must be available to the collector (either trusted by the host OS or supplied via the CA file parameter). For mutual TLS, a client certificate and key trusted by the BIG-IP device are also required.

### Configuration

<figure><img src="/files/cZaQg77zUW4HAdc3FKeq" alt="Bindplane docs - F5 BIG-IP - image 1"><figcaption></figcaption></figure>

**Metrics**

| Parameter | Type    | Required | Default   | Description                                                                |
| --------- | ------- | -------- | --------- | -------------------------------------------------------------------------- |
| Address   | String  | Yes      | *(empty)* | The hostname or IP address of the BIG-IP environment.                      |
| Port      | Integer | No       | 443       | The TCP port of the BIG-IP environment.                                    |
| Username  | String  | Yes      | *(empty)* | Username used for authenticating with BIG-IP.                              |
| Password  | String  | Yes      | *(empty)* | Password used for authenticating with BIG-IP. Stored as a sensitive value. |

**Advanced**

| Parameter                           | Type    | Required | Default   | Description                                                                                                                         |
| ----------------------------------- | ------- | -------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Collection Interval                 | Integer | No       | 60        | How often (seconds) to scrape for metrics.                                                                                          |
| Strict TLS Certificate Verification | Boolean | No       | false     | Enable to require TLS certificate verification.                                                                                     |
| TLS Certificate Authority File      | String  | Yes      | *(empty)* | Certificate authority used to validate TLS certificates. Only applies when Strict TLS Certificate Verification is enabled.          |
| Mutual TLS Authentication           | Boolean | No       | false     | Enable to require TLS mutual authentication. Only applies when Strict TLS Certificate Verification is enabled.                      |
| Mutual TLS Client Certificate File  | String  | Yes      | *(empty)* | A TLS certificate used for client authentication, if mutual TLS is enabled. Only applies when Mutual TLS Authentication is enabled. |
| Mutual TLS Client Private Key File  | String  | Yes      | *(empty)* | A TLS private key used for client authentication, if mutual TLS is enabled. Only applies when Mutual TLS Authentication is enabled. |
| Metrics                             | Metrics | No       | *(empty)* | Toggle the individual node, pool, pool member, and virtual server metrics you wish to collect on and off.                           |

### Examples

#### Scrape a BIG-IP device with default TLS behavior

Collect metrics from a BIG-IP device at `10.0.0.10:443` every 60 seconds. With Strict TLS Certificate Verification left disabled, the collector does not verify the server certificate, which is convenient for self-signed certificates in lab environments.

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Source
metadata:
  name: f5-big-ip
spec:
  type: bigip
  parameters:
    - name: address
      value: 10.0.0.10
    - name: port
      value: 443
    - name: username
      value: monitoring
    - name: password
      value: REPLACE_WITH_PASSWORD
    - name: collection_interval
      value: 60
```

### Configuration Tips

* Leave Strict TLS Certificate Verification off only for trusted internal or lab networks. In production, enable it and supply the CA file so the collector validates the BIG-IP server certificate.
* Use a dedicated, least-privilege BIG-IP account for the collector rather than an administrative login.
* Use the Metrics toggle to disable metrics you do not need, reducing scrape volume and downstream cardinality.

### Troubleshooting

#### No metrics arriving

Symptoms: the source connects but produces no metrics, or the collector logs connection errors.

Solutions:

1. Confirm the BIG-IP iControl REST API is reachable from the collector host on the configured Address and Port (default `443`), and that no firewall blocks the path.
2. Verify the Username and Password are correct and the account has read access to the requested statistics.

#### TLS handshake or certificate errors

Symptoms: scrapes fail with TLS verification or handshake errors after enabling Strict TLS Certificate Verification.

Solutions:

1. Provide a TLS Certificate Authority File that signed the BIG-IP server certificate, or ensure the host OS already trusts it.
2. If Mutual TLS Authentication is enabled, confirm the client certificate and private key are valid and trusted by the BIG-IP device.

### Standalone Source

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Source
metadata:
  name: f5-big-ip
spec:
  type: bigip
  parameters:
    - name: address
      value: 10.0.0.10
    - name: port
      value: 443
    - name: username
      value: monitoring
    - name: password
      value: REPLACE_WITH_PASSWORD
    - name: collection_interval
      value: 60
    - name: strict_tls_verify
      value: false
```

### Related Resources

* [F5 BIG-IP user account administration and roles](https://techdocs.f5.com/en-us/bigip-15-0-0/big-ip-systems-user-account-administration/user-roles.html)
* [OpenTelemetry `bigip` receiver reference](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/bigipreceiver)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bindplane.com/integrations/sources/f5-big-ip.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
