本文通过ES提供的Restful Api来简单监控各节点的内存及负载。
#!/usr/bin/python
#coding:utf8
import sys, re, time, datetime, socket, smtplib
import os, urllib, urllib2, json, string
DOMAIN_NAME = "es.op.xxx.com"
NODES_URL = "http://"+DOMAIN_NAME+":9200/_cluster/state/nodes,master_node"
NODE_STAT_URL = "http://"+DOMAIN_NAME+":9200/_nodes/%s/stats?human=true"
HEAP_THRESHOLD = 90
LOAD_THRESHOLD = 30
def main():
nodes_name = get_nodes()
for node_id in nodes_name :
node_info = get_node_info(node_id)
indices, jvm, load = extract_node_info(node_info)
if jvm['heap_used_percent'] < HEAP_THRESHOLD and load[2] < LOAD_THRESHOLD:
continue;
print time.ctime(), nodes_name[node_id], jvm, load, indices
content = "机器名: ".decode('utf-8') + nodes_name[node_id] + "\n";
content += "当前索引: ".decode('utf-8') + str(