F5 Big IP Monitoring
		
		
		
		
		
		Jump to navigation
		Jump to search
		
		
	
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://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)
}