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) }