How to parse the output from tmsh shell.
How to write your own scripts to automate manual or complex actions on the F5 load balancer.
Solution
By default the 'show' action generate human readable output. With the additional option 'field-fmt' you can generate more machine-readable format that is more suitable for parsing.
lbal1(Active)(tmos.ltm.virtual)# show vs_1.1.1.1 Ltm::Virtual Server: vs_1.1.1.1 --------------------------------------------------------- Status Availability : available State : enabled Reason : The virtual server is available CMP : enabled CMP Mode : all-cpus Traffic ClientSide Ephemeral General Bits In 89.1G 0 - Bits Out 1.1T 0 - Packets In 89.5M 0 - Packets Out 124.7M 0 - Current Connections 54 0 - Maximum Connections 334 0 - Total Connections 2.6M 0 - Min Conn Duration/msec - - 367 Max Conn Duration/msec - - 186.4M Mean Conn Duration/msec - - 84.1K Total Requests - - 6.0M
lbal1(Active)(tmos.ltm.virtual)# show vs_1.1.1.1 field-fmt ltm virtual vs_1.1.1.1 { clientside.bits-in 89.1G clientside.bits-out 1.1T clientside.cur-conns 67 clientside.max-conns 334 clientside.pkts-in 89.5M clientside.pkts-out 124.7M clientside.tot-conns 2.6M cs-max-conn-dur 186.4M cs-mean-conn-dur 76.7K cs-min-conn-dur 367 ephemeral.bits-in 0 ephemeral.bits-out 0 ephemeral.cur-conns 0 ephemeral.max-conns 0 ephemeral.pkts-in 0 ephemeral.pkts-out 0 ephemeral.tot-conns 0 name vs_95.138.158.17 tot-requests 6.0M virtual-server.cmp-enable-mode all-cpus virtual-server.cmp-enabled enabled virtual-server.status.availability-state available virtual-server.status.enabled-state enabled virtual-server.status.status-reason The virtual server is available }
To create your own scripts you can use grep to parse the output above or take it to the next level and write a native script in TCL using the tmsh API.
References
- https://devcentral.f5.com/wiki/TMSH.ConfigSearch.ashx
- https://devcentral.f5.com/community/group/aft/1180665/asg/53
- https://devcentral.f5.com/wiki/TMSH.tmsh__get_config.ashx
- https://devcentral.f5.com/wiki/TMSH.tmsh__get_status.ashx
No comments:
Post a Comment