Difference between revisions of "F5 Big IP Monitoring"

From UVOO Tech Wiki
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
```
 +
Working with
 +
https://github.com/scottdware/go-bigip
 +
 +
https://pkg.go.dev/github.com/scottdware/go-bigip
 +
 +
https://f5-sdk.readthedocs.io/en/latest/
 +
 +
as F5 is no longer under public development in github which is unfortunate.
 +
https://github.com/F5Networks/f5-common-python "NO LONGER UNDER ACTIVE DEVELOPMENT"
 +
```
 +
 +
  
 
Going to try and get telemetry streaming working. Nice thing no firewalls to worry about.  
 
Going to try and get telemetry streaming working. Nice thing no firewalls to worry about.  
  
- https://help.sumologic.com/07Sumo-Logic-Apps/22Security_and_Threat_Detection/F5_-_BIG-IP_LTM/01Collect_Logs_for_the_F5_-_BIG-IP_LTM_App
+
```
 +
https://help.sumologic.com/07Sumo-Logic-Apps/22Security_and_Threat_Detection/F5_-_BIG-IP_LTM/01Collect_Logs_for_the_F5_-_BIG-IP_LTM_App
 +
```
  
  
Line 12: Line 27:
  
 
https://help.sumologic.com/01Start-Here/Quick-Start-Tutorials
 
https://help.sumologic.com/01Start-Here/Quick-Start-Tutorials
 +
 +
 +
https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/userguide/installation.html
 +
 +
 +
https://clouddocs.f5.com/products/extensions/f5-telemetry-streaming/latest/event-listener.html
 +
 +
https://pkg.go.dev/github.com/scottdware/go-bigip
 +
```
 +
// package bigip
 +
 +
package main
 +
 +
import (
 +
        "fmt"
 +
        "github.com/scottdware/go-bigip"
 +
)
 +
 +
func main() {
 +
        // Connect to the BIG-IP system.
 +
        fmt.Println("foo")
 +
        f5 := bigip.NewSession("host", "user", "pass", nil)
 +
        fmt.Println("bar")
 +
 +
        // Get a list of all VLAN's, and print their names to the console.
 +
        vlans, err := f5.Vlans()
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
 +
        for _, vlan := range vlans.Vlans {
 +
                fmt.Println(vlan.Name)
 +
        }
 +
 +
        pools, err := f5.Pools()
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
 +
        for _, pool := range pools.Pools {
 +
                fmt.Println(pool.Name)
 +
        }
 +
 +
}
 +
 +
 +
func stash() {
 +
        // Get a list of all VLAN's, and print their names to the console.
 +
        f5 := bigip.NewSession("host", "user", "pass", nil)
 +
        vlans, err := f5.Vlans()
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
 +
        for _, vlan := range vlans.Vlans {
 +
                fmt.Println(vlan.Name)
 +
        }
 +
 +
        pools, err := f5.Pools()
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
 +
        for _, pool := range pools.Pools {
 +
                fmt.Println(pool.Name)
 +
        }
 +
 +
        poolMembers, err := f5.PoolMembers("/Demo/pool_host.foo.com")
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
        fmt.Println("pMs", poolMembers)
 +
 +
        for _, poolMember := range poolMembers.PoolMembers {
 +
                fmt.Println(poolMember)
 +
        }
 +
 +
 +
        virtualServers, err := f5.VirtualServers()
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
        fmt.Println("objects", virtualServers)
 +
 +
        nodes, err := f5.Nodes()
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
        fmt.Println("objects", nodes)
 +
 +
        selfIPs, err := f5.SelfIPs()
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
        fmt.Println("objects", selfIPs)
 +
 +
        routes, err := f5.Routes()
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
        fmt.Println("objects", routes)
 +
 +
        internalDataGroups, err := f5.InternalDataGroups()
 +
        if err != nil {
 +
                fmt.Println(err)
 +
        }
 +
        fmt.Println("objects", internalDataGroups)
 +
}
 +
```

Latest revision as of 20:37, 22 February 2022

Working with
https://github.com/scottdware/go-bigip

https://pkg.go.dev/github.com/scottdware/go-bigip

https://f5-sdk.readthedocs.io/en/latest/

as F5 is no longer under public development in github which is unfortunate.
https://github.com/F5Networks/f5-common-python "NO LONGER UNDER ACTIVE DEVELOPMENT"

Going to try and get telemetry streaming working. Nice thing no firewalls to worry about.

https://help.sumologic.com/07Sumo-Logic-Apps/22Security_and_Threat_Detection/F5_-_BIG-IP_LTM/01Collect_Logs_for_the_F5_-_BIG-IP_LTM_App

https://clouddocs.f5.com/products/extensions/f5-telemetry-streaming/latest/

https://clouddocs.f5.com/products/extensions/f5-telemetry-streaming/latest/setting-up-consumer.html#sumologic-ref

https://help.sumologic.com/03Send-Data/Sources/02Sources-for-Hosted-Collectors/HTTP-Source

https://help.sumologic.com/01Start-Here/Quick-Start-Tutorials

https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/userguide/installation.html

https://clouddocs.f5.com/products/extensions/f5-telemetry-streaming/latest/event-listener.html

https://pkg.go.dev/github.com/scottdware/go-bigip

// package bigip

package main

import (
        "fmt"
        "github.com/scottdware/go-bigip"
)

func main() {
        // Connect to the BIG-IP system.
        fmt.Println("foo")
        f5 := bigip.NewSession("host", "user", "pass", nil)
        fmt.Println("bar")

        // Get a list of all VLAN's, and print their names to the console.
        vlans, err := f5.Vlans()
        if err != nil {
                fmt.Println(err)
        }

        for _, vlan := range vlans.Vlans {
                fmt.Println(vlan.Name)
        }

        pools, err := f5.Pools()
        if err != nil {
                fmt.Println(err)
        }

        for _, pool := range pools.Pools {
                fmt.Println(pool.Name)
        }

}


func stash() {
        // Get a list of all VLAN's, and print their names to the console.
        f5 := bigip.NewSession("host", "user", "pass", nil)
        vlans, err := f5.Vlans()
        if err != nil {
                fmt.Println(err)
        }

        for _, vlan := range vlans.Vlans {
                fmt.Println(vlan.Name)
        }

        pools, err := f5.Pools()
        if err != nil {
                fmt.Println(err)
        }

        for _, pool := range pools.Pools {
                fmt.Println(pool.Name)
        }

        poolMembers, err := f5.PoolMembers("/Demo/pool_host.foo.com")
        if err != nil {
                fmt.Println(err)
        }
        fmt.Println("pMs", poolMembers)

        for _, poolMember := range poolMembers.PoolMembers {
                fmt.Println(poolMember)
        }


        virtualServers, err := f5.VirtualServers()
        if err != nil {
                fmt.Println(err)
        }
        fmt.Println("objects", virtualServers)

        nodes, err := f5.Nodes()
        if err != nil {
                fmt.Println(err)
        }
        fmt.Println("objects", nodes)

        selfIPs, err := f5.SelfIPs()
        if err != nil {
                fmt.Println(err)
        }
        fmt.Println("objects", selfIPs)

        routes, err := f5.Routes()
        if err != nil {
                fmt.Println(err)
        }
        fmt.Println("objects", routes)

        internalDataGroups, err := f5.InternalDataGroups()
        if err != nil {
                fmt.Println(err)
        }
        fmt.Println("objects", internalDataGroups)
}