From aa6a107abc0e321f2adb454116286c66e893ebff Mon Sep 17 00:00:00 2001
From: sunty <1172534965@qq.com>
Date: 星期二, 29 十月 2019 20:45:21 +0800
Subject: [PATCH] add es cluster manger
---
controllers/es.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/controllers/es.go b/controllers/es.go
index d566366..93d686f 100644
--- a/controllers/es.go
+++ b/controllers/es.go
@@ -2,9 +2,12 @@
import (
"basic.com/valib/logger.git"
+ "bytes"
+ "encoding/json"
"fmt"
"github.com/gin-gonic/gin"
"math/rand"
+ "os/exec"
"strconv"
"strings"
"webserver/cache"
@@ -153,3 +156,56 @@
}
return dataSource
}
+
+func GetEsClusterInfo(ip string) ([]map[string]interface{}, error){
+ serverIp := ""
+ if ip != "" {
+ serverIp = ip
+ } else {
+ localConf, err2 := cache.GetServerInfo()
+ if err2 !=nil || localConf.ServerIp == "" {
+ logger.Debug("localConfig is wrong!!!")
+ return nil,err2
+ }
+ serverIp = localConf.ServerIp
+ }
+ str := "curl "+serverIp+":9200/_cat/nodes?v"
+ cmd := exec.Command("sh","-c",str)
+ var out bytes.Buffer
+ cmd.Stdout = &out
+ err := cmd.Run()
+ if err != nil {
+ return nil,err
+ }
+ infos := strings.Split(string(out.String()),"\n")
+ totalNodes := len(infos)-1
+ var nodeInfos []map[string]interface{}
+ for i:=1;i<totalNodes ;i++ {
+ nodeInfo := make(map[string]interface{})
+ context := strings.Fields(infos[i])
+ nodeIp := context[0]
+ Type := context[8]
+ var nodeType string
+ if Type == "*"{
+ nodeType = "涓昏妭鐐�"
+ }
+ if Type == "-"{
+ nodeType = "浠庤妭鐐�"
+ }
+ nodeInfo["ip"] = nodeIp
+ nodeInfo["nodeType"] = nodeType
+ url := "http://"+nodeIp+":9200"
+ buf := esutil.httpGet(url)
+ var info interface{}
+ json.Unmarshal(buf,&info)
+ tmpInfo := info.(map[string]interface{})
+ tmpName := tmpInfo["name"].(string)
+ versinInfo := tmpInfo["version"].(map[string]interface{})
+ buildDate := versinInfo["build_date"].(string)
+ nodeInfo["name"] = tmpName
+ nodeInfo["buildDate"] = buildDate
+ nodeInfos = append(nodeInfos, nodeInfo)
+ }
+
+ return nodeInfos,nil
+}
--
Gitblit v1.8.0