在使用Nginx VT Module模块对Nginx做状态监控时,VTS页面会有非常多不想要的Server Zones信息,特别是页面内容特别多的时候,这个会拖慢我们快速找到想要数据的进度。
如何对不想要的数据做删除呢?
官方文档提供了删除接口:
GitHub - vozlt/nginx-module-vts: Nginx virtual host traffic status module
例如:删除www.abc.com这个zone
使用浏览器访问或者使用curl 命令执行
http://<替换IP>/vt_status/status/control?cmd=delete&group=server&zone=www.abc.com
$ curl http://<IP>/vt_status/status/control?cmd=delete&group=server&zone=www.abc.com
上面是单个删除,那要批量全部删除呢?
首先,先将当前VTS页面转成JSON格式,将JSON内容保存下来,比如:ngx_vs.json
其次,写一段Python程序,读入JSON,获取当前JSON里面serverZones块里面的serverzone名称,比如:www.bwtpeh.com
import json
import urllib3
if __name__ == '__main__':
with open('ngx_vs.json', 'r') as read_content:
obj = json.load(read_content)
obj_str = json.dumps(obj)
obj_dict = json.loads(obj_str)
http_client = urllib3.PoolManager()
serverZones = obj_dict['serverZones']
for sz in serverZones:
print(sz)
url = 'http://<替换IP>/vt_status/status/control?cmd=delete&group=server&zone='+sz
r = http_client.request('GET', url)
print(r.data)
#break
这时候,再去查看VTS页面就会发现非常干净整洁。可以将该脚本放到定时任务,定期执行清理。