zabbix api lld
来源:互联网 发布:asp.net vb.net控件 编辑:程序博客网 时间:2024/05/21 09:26
cat api_discovery.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import json,os,re
def api_params(url):
RK=re.findall('routeKey=(.+)\&api',url)
find_route_key=''.join(RK)
AK=re.findall('apiKey=(.+)\&par',url)
find_api_key=''.join(AK)
return find_route_key,find_api_key,url
def api_file_read(api_params):
Api_file=open('/etc/zabbix/api_monitor/api_list.file')
Api_list=[]
for url in Api_file.readlines():
url=url.strip('\n')
if url != "":
Format_file=api_params(url)
Api_list += [{'{#APIKEY}':Format_file[1],'{#ROUTEKEY}':Format_file[0],'{#API}':Format_file[2]}]
return json.dumps({'data':Api_list},sort_keys=True,indent=4,separators=(',',':'))
if __name__ == '__main__':
discovery_data=api_file_read(api_params)
# -*- coding: UTF-8 -*-
import requests,sys,re
def target_api_status(url):
try:
rg=requests.post(url,timeout=1)
get_requcode=rg.json()
return get_requcode['code']
except Exception,e:
get_requcode='TargetAPI TimeOut'
return get_requcode
def target_api_speed(url):
rs=requests.get(url)
get_reqespeed=rs.elapsed.microseconds/1000.00/1000.00
return get_reqespeed
def api_params(url):
find_route_key=re.findall('routeKey=(.+)\&api',url)
find_api_key=re.findall('apiKey=(.+)\&par',url)
return find_route_key,find_api_key,url
def find_api(Apikey,Routekey):
Api_file=open('/etc/zabbix/api_monitor/api_list.file')
for Api_url in Api_file.readlines():
Api_url=Api_url.strip('\n')
if "apiKey="+Apikey and "routeKey="+Routekey in Api_url:
return Api_url
def api_monitor(url,Routekey,api_status):
monitor_api='http://192.168.1.158:8788/api/monitor/reportRouteStatus'
payload={'routeKey':Routekey,'connectStatus':api_status}
try:
post_apimonitor=requests.post(monitor_api,params=payload,timeout=0.5)
return post_apimonitor
except Exception,e:
return 'MonitorAPI TimeOut'
def main():
Arg_select = sys.argv[1]
Apikey=sys.argv[2]
Routekey=sys.argv[3]
url=find_api(Apikey,Routekey)
requ_code=target_api_status(url)
requ_speed=target_api_speed(url)
if requ_code == 200 and requ_speed < 5:
api_status="0"
if Arg_select == 'code':
print requ_code
elif Arg_select == 'speed':
print requ_speed
else:
api_status="-1"
if Arg_select == 'code':
print requ_code
elif Arg_select == 'speed':
print requ_speed
#api_monitor(url,Routekey,api_status)
if __name__ == '__main__':
main()
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import json,os,re
def api_params(url):
RK=re.findall('routeKey=(.+)\&api',url)
find_route_key=''.join(RK)
AK=re.findall('apiKey=(.+)\&par',url)
find_api_key=''.join(AK)
return find_route_key,find_api_key,url
def api_file_read(api_params):
Api_file=open('/etc/zabbix/api_monitor/api_list.file')
Api_list=[]
for url in Api_file.readlines():
url=url.strip('\n')
if url != "":
Format_file=api_params(url)
Api_list += [{'{#APIKEY}':Format_file[1],'{#ROUTEKEY}':Format_file[0],'{#API}':Format_file[2]}]
return json.dumps({'data':Api_list},sort_keys=True,indent=4,separators=(',',':'))
if __name__ == '__main__':
discovery_data=api_file_read(api_params)
print discovery_data
# -*- coding: UTF-8 -*-
import requests,sys,re
def target_api_status(url):
try:
rg=requests.post(url,timeout=1)
get_requcode=rg.json()
return get_requcode['code']
except Exception,e:
get_requcode='TargetAPI TimeOut'
return get_requcode
def target_api_speed(url):
rs=requests.get(url)
get_reqespeed=rs.elapsed.microseconds/1000.00/1000.00
return get_reqespeed
def api_params(url):
find_route_key=re.findall('routeKey=(.+)\&api',url)
find_api_key=re.findall('apiKey=(.+)\&par',url)
return find_route_key,find_api_key,url
def find_api(Apikey,Routekey):
Api_file=open('/etc/zabbix/api_monitor/api_list.file')
for Api_url in Api_file.readlines():
Api_url=Api_url.strip('\n')
if "apiKey="+Apikey and "routeKey="+Routekey in Api_url:
return Api_url
def api_monitor(url,Routekey,api_status):
monitor_api='http://192.168.1.158:8788/api/monitor/reportRouteStatus'
payload={'routeKey':Routekey,'connectStatus':api_status}
try:
post_apimonitor=requests.post(monitor_api,params=payload,timeout=0.5)
return post_apimonitor
except Exception,e:
return 'MonitorAPI TimeOut'
def main():
Arg_select = sys.argv[1]
Apikey=sys.argv[2]
Routekey=sys.argv[3]
url=find_api(Apikey,Routekey)
requ_code=target_api_status(url)
requ_speed=target_api_speed(url)
if requ_code == 200 and requ_speed < 5:
api_status="0"
if Arg_select == 'code':
print requ_code
elif Arg_select == 'speed':
print requ_speed
else:
api_status="-1"
if Arg_select == 'code':
print requ_code
elif Arg_select == 'speed':
print requ_speed
#api_monitor(url,Routekey,api_status)
if __name__ == '__main__':
main()
cat userparameter_api.conf
UserParameter=api.discovery,python /etc/zabbix/api_monitor/api_discovery.py
UserParameter=api.monitor[*],python /etc/zabbix/api_monitor/api_monitor.py $1 $2 $3
0 0
- zabbix api lld
- zabbix jmx lld 最佳实践
- zabbix利用lld监控memcached
- zabbix利用脚本和lld监控web
- Zabbix用好LLD,立马感觉高大上许多
- 使用iostat和LLD实现zabbix监控IO性能
- 【zabbix】利用LLD自动发现功能监控多Tomcat实例
- 【zabbix】利用LLD自动发现功能监控多Memcached实例
- 【zabbix】利用LLD自动发现功能监控多Redis实例
- 使用iostat和LLD实现zabbix监控IO性能
- oracle -lld zabbix实际还是没现成方案
- ZABBIX API
- zabbix api
- Zabbix通过MegaCli实现对LSI Raid卡硬盘监控(LLD)
- zabbix api 使用
- zabbix api调用
- zabbix api python auth
- JAVA访问Zabbix API
- 方格填数
- Java笔试题——2的100次方,不用大数据类(Biginteger)来解答
- 安卓正则表达式
- Java从入门到精通阅读笔记(第4版)6
- Socket 基础编程(一)
- zabbix api lld
- 欧拉与鸡蛋
- 学习音频信号处理,该如何入门?
- 全面解析Angular中$Apply()及$Digest()的区别
- 手把手教你如何搭建一个自己的安卓快速开发框架之BaseActivity(一)
- 191. Number of 1 Bits#1(Done)
- Spring源码学习--AbstractApplicationContext(八)
- 6 猜数字游戏 (15分)——数学分析能力
- 开箱即用!Android四款系统架构工具