博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python监控远程tcp服务
阅读量:5893 次
发布时间:2019-06-19

本文共 1658 字,大约阅读时间需要 5 分钟。

#!/usr/bin/env python

#coding: utf-8

import os, sys, re

import json
import requests
import time
import urllib2, base64
from socket import *

def checkTcpPort(host,port):

result = int
try:
s = socket(AF_INET, SOCK_STREAM)
s.settimeout(1)
code = s.connect_ex((host,port))
#print code
s.close()
result = code
except Exception, e:
result = 111
return result

上报

def uploadToAgent(p):

method = "POST"
handler = urllib2.HTTPHandler()
opener = urllib2.build_opener(handler)
url = ""
request = urllib2.Request(url, data=json.dumps(p))
request.add_header('Content-Type','application/json')
request.get_method = lambda: method
try:
connection = opener.open(request)
except urllib2.HTTPError,e:
connection = e

if connection.code == 200:    print connection.read()else:    print '{"err":1,"msg":"%s"}' % connection

print "开始 "

准备上报数据

def zuzhuangData(tags = '', value = ''):

endpoint = "10.0.2.90"
metric = "userdefine"
key = "remotetcpcheck"
timestamp = int(time.time())
step = 60
vtype = "GAUGE"

i = {        'Metric' :'%s.%s'%(metric,key),        'Endpoint': endpoint,        'Timestamp': timestamp,        'Step': step,        'value': value,        'CounterType': vtype,        'TAGS': tags        }return i

p = []

with open("./ip.txt") as f:
for line in f:
results = re.findall("(\S+)",line)
print results
host = results[0]
port = int(results[1])
description = results[2]
tags = "host=%s,port=%s,description=%s"%(host,port,description)
value = checkTcpPort(host,port)
p.append(zuzhuangData(tags,value))

print json.dumps(p, sort_keys=True,indent = 4)

uploadToAgent(p)

ips.txt

www.baidu.com 80 百度
www.sina.com.cn 80 新浪

转载地址:

转载于:https://blog.51cto.com/dadloveu/2069494

你可能感兴趣的文章
struts2+extjs
查看>>
MariaDB初识
查看>>
php安装swoole扩展支持openssl和wss遇到的坑
查看>>
Apache2.4.33安装无systemctl/service status/state显示
查看>>
花花世界花家姐 舒淇:花花世界花我不会倒追
查看>>
intellij 快捷键
查看>>
大数据时代最值得关注的15大技术趋势
查看>>
【人工智能】一张图看懂华为云EI的年度心路历程
查看>>
命令总结-12.25
查看>>
全栈数据之数据挖掘的33个知识点整理
查看>>
Docker的系统资源限制及验证
查看>>
C++基础教程
查看>>
在大公司呆5年,你就废了
查看>>
mac mamp mysql no start servel
查看>>
系统分析和设计工具
查看>>
数据恢复和文件粉碎的原理简介
查看>>
windows下配置虚拟主机
查看>>
Go语言中数组和切片的用法
查看>>
磁盘分区工具fdisk和parted实战操作演练
查看>>
find命令
查看>>