使用API接口,自动化巡检F5负载均衡设备
- 前言
- F5 的API接口
- 关于认证
- 利用python实现自动化巡检
- 成果
前言
目前公司的监控系统监控项比较粗略,无法监控如F5设备集群状态、主备机配置同步状态等信息。
利用F5设备自带的API,通过python程序,可获取相关信息,从而实现自动化巡检、监控等需求。
用到的python库:request、json、time
实现功能:自动化巡检F5设备上一次主备切换时间、主备机配置同步状态、HA状态等信息
F5 的API接口
F5 (以LTM设备为例)的API全名叫做 iControl REST API。
通俗点说,就是向F5设备发送一个http请求,通过认证后,F5会返回json格式数据。数据中可以包括VS、POOL名称、VS、POOL状态等等信息。除查询类操作外,也可以通过API接口完成新建VS、POOL等变更类操作。
利用API接口,可以很方便的对F5进行自动化操作。
- restful设计风格;
- 认证;
- 查询类操作,可实现监控、自动化巡检等需求;
- 变更类操作,可实现自动化部署;
关于认证
目前公司使用的Cisco ACS认证系统,经过本人实验,使用AAA用户无法完成认证。
使用F5中的local用户,可通过认证。 原因暂时未知。
利用python实现自动化巡检
设计思路:
使用python requrest库,模拟http get 、post等请求,获取F5设备相关信息。将获取的json格式数据转换为dict数据结构,取相应的键值,整理并写入到文本文件中。
如下代码供参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import requests import json import time auth, ip = ('admin', 'epi@66585006'), '192.168.100.246' timestamp= time.strftime("%Y-%m-%d %H-%M-%S", time.localtime()) url= 'https://' + ip + '/mgmt/tm/cm/sync-status' #获取F5设备配置同步状态 url2= 'https://' + ip + '/mgmt/tm/cm/device' #获取F5设备型号、可用模块、failover主备状态 url3= 'https://' + ip + '/mgmt/tm/sys/failover' #获取F5设备上一次failover切换时间 result_failover= requests.get(url3, verify= False, auth= auth) resp_failover= result_failover.text failover_dict= json.loads(resp_failover) result_sync= requests.get(url, verify= False, auth= auth) resp_sync= result_sync.text sync_dict= json.loads(resp_sync) resp_hastatus= requests.get(url2, verify= False, auth= auth) hastatus_dict= json.loads(resp_hastatus.text) filename= 'f5/'+ timestamp + '.txt' with open(filename, 'a') as f: f.write(ip+ ' last failover time: '+ failover_dict['apiRawValues']['apiAnonymous']) f.write(ip+ ' sync status is :'+ sync_dict['entries']['https://localhost/mgmt/tm/cm/sync-status/0']['nestedStats']['entries']['color']['description']+ '\n') f.write('HA status:'+ '\n'+ hastatus_dict['items'][0]['hostname']+ ','+ hastatus_dict['items'][0]['failoverState']+ '\n'+ hastatus_dict['items'][1]['hostname']+ \ ','+ hastatus_dict['items'][1]['failoverState']+ '\n\n') |
成果
巡检完成后,根据巡检时间生成文本文件。
文件中包括设备上一次主备切换时间、主备机配置同步状态、HA状态等信息。