显示访问elasticsearch集群的IP

原创
2014/12/14 21:13
阅读数 1.1K

        研发环境的集群可能有好多组在用,有些个可能使用不当或者执行繁重统计,性能测试什么的,导致集群压力很大,影响别人。这个时候需要第一时间找出谁在使用集群。日常维护用fabric的,本来不用界面的,界面是个意外之作。扫描就是端口扫描,用来辅助我判断对方的,比如开着80端口,我点过去是个ETL,那我就知道了。




#!/usr/bin/env python
# encoding: utf-8

from collections import Counter
from fabric.api import cd,run,execute,env,hosts
from fabric.colors import *

env.hosts=['localhost']
env.password = 'root'
env.warn_only = True

def source_task(ips):
	res = run('netstat -nt|grep ":9300\|:9200"')
	if res.strip()=="": return
	lines=[]
	for x in res.split("\n"):
		a = x.split()
		if ":9300" in a[3] or ":9200" in a[3]:
			lines.append(a[4].split(":")[3])
	ips.extend(lines)
def get_host():
	ips=[]
	execute(source_task,ips)
	return Counter(ips)
def es_task(command):
	run("/opt/elasticsearch-1.3.2/bin/service/elasticsearch "+command)
if __name__=="__main__":
   print get_host()


展开阅读全文
打赏
0
3 收藏
分享
加载中
更多评论
打赏
0 评论
3 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部