属性文件properties
es.cluster=10.2.4.15,10.2.4.42,10.2.4.43
es.port=9300
es.name=SOC-15
构建客户端
public static boolean start() {
try {
Settings settings = Settings.settingsBuilder()
.put("cluster.name", es_cluster_name)
.put("transport.tcp.compress", true).build();
TransportAddress[] addressArr = new TransportAddress[eshostlist
.size()];
for (int i = 0; i < eshostlist.size(); i++) {
try {
addressArr[i] = new InetSocketTransportAddress(
InetAddress.getByName(eshostlist.get(i)), es_port);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
client = TransportClient.builder().settings(settings).build().addTransportAddresses(addressArr);
return checkEsClusterHealth();
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
通过属性文件读取集群ip 然后封装eshostlist (自己声明eshostlist 类型为List<String>)
InputStream is = ElasticMonitor.class
.getResourceAsStream("/monconfig.properties");
Properties props = new Properties();
try {
props.load(is);
} catch (IOException e) {
e.printStackTrace();
}
// kafka broker地址
es_cluster = props.getProperty("es.cluster");
es_port = Integer.parseInt(props.getProperty("es.port"));
es_cluster_name = props.getProperty("es.name");
// 截取初始化属性文件eshost
String[] sourceStrArray = es_cluster.split(",");
for (int i = 0; i < sourceStrArray.length; i++) {
eshostlist.add(sourceStrArray[i]);
}
获取集群信息 例如健康度
public static boolean checkEsClusterHealth(){
//获取集群信息健康度 黄 红 报警 绿色不报警
ClusterStatsResponse esStatus = client.admin().cluster().prepareClusterStats().execute().actionGet();
esStatus.getNodes();
// System.out.println(esStatus);
ClusterStatsNodeResponse[] csnr = esStatus.getNodes();
for(int i = 0 ;i<csnr.length;i++){
System.out.println(csnr[i].nodeInfo());
}
String clusterStatus = String.valueOf(esStatus.getStatus());
System.out.println("clusterStatus:"+clusterStatus);
if("GREEN".equals(clusterStatus)){
client.close();
return true;
}else{
client.close();
return false;
}
}