remodeling
This commit is contained in:
		
							parent
							
								
									7160cc3b6f
								
							
						
					
					
						commit
						5c5d1844a2
					
				
							
								
								
									
										131
									
								
								config.go
									
									
									
									
									
								
							
							
						
						
									
										131
									
								
								config.go
									
									
									
									
									
								
							@ -1,131 +0,0 @@
 | 
			
		||||
package config_manager_go
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"os"
 | 
			
		||||
	"log"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"loafle.com/overflow/crawler_go/config"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"strings"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	OVERFLOW_CONFIG_PATH = "/Overflow/Config"
 | 
			
		||||
)
 | 
			
		||||
type ConfigManager struct {
 | 
			
		||||
	idMap map[string]string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *ConfigManager) readByTempConfig(cn *config.Config) (error) {
 | 
			
		||||
	pwd, err := os.Getwd()
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	b, err := ioutil.ReadFile(pwd+"/example.json")
 | 
			
		||||
	err = json.Unmarshal(b,&cn)
 | 
			
		||||
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *ConfigManager) writeConfig(cn config.Config) (error){
 | 
			
		||||
	var fileName = cn.Id
 | 
			
		||||
	fileJson, _ := json.Marshal(cn)
 | 
			
		||||
	path, _ := c.getFilePath(cn)
 | 
			
		||||
 | 
			
		||||
	err := ioutil.WriteFile(path + "/" + fileName + ".json", fileJson, 0644)
 | 
			
		||||
 | 
			
		||||
	c.idMap[cn.Id] = path + "/"
 | 
			
		||||
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *ConfigManager) getFilePath(cn config.Config) (string, error){
 | 
			
		||||
	var parentPath string = strings.Join(configSettingFolder,"")
 | 
			
		||||
 | 
			
		||||
	cctmp := cn.Crawler.Container
 | 
			
		||||
	cctmps := strings.Split(cctmp,"_")
 | 
			
		||||
	containerPath := cctmps[0]
 | 
			
		||||
 | 
			
		||||
	cns := strings.Split(cn.Crawler.Name, "_")
 | 
			
		||||
	cnf := cns[0]
 | 
			
		||||
 | 
			
		||||
	rs := parentPath + OVERFLOW_CONFIG_PATH +"/"+containerPath+"/"+cnf
 | 
			
		||||
 | 
			
		||||
	err := checkFolder(rs)
 | 
			
		||||
 | 
			
		||||
	return rs, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *ConfigManager) AddConfig(b []byte) (error) {
 | 
			
		||||
	var err error
 | 
			
		||||
	cn := config.Config{}
 | 
			
		||||
 | 
			
		||||
	if len(b) == 0 || b == nil {
 | 
			
		||||
		err = c.readByTempConfig(&cn)
 | 
			
		||||
	} else {
 | 
			
		||||
		err = json.Unmarshal(b, &cn)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	c.writeConfig(cn)
 | 
			
		||||
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *ConfigManager) GetConfigById(id string) (string) {
 | 
			
		||||
	return c.idMap[id]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func checkFolder(path string) (error) {
 | 
			
		||||
 | 
			
		||||
	_, err := os.Stat(path)
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Println(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if os.IsNotExist(err) {
 | 
			
		||||
		err = nil
 | 
			
		||||
		os.MkdirAll(path, os.ModePerm)
 | 
			
		||||
	}
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewConfigManager() *ConfigManager {
 | 
			
		||||
	var c ConfigManager
 | 
			
		||||
	c.idMap = make(map[string]string)
 | 
			
		||||
 | 
			
		||||
	return &c
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func Start(b []byte)  {
 | 
			
		||||
	// config json stream read
 | 
			
		||||
	// config json byte read
 | 
			
		||||
 | 
			
		||||
	var err error
 | 
			
		||||
	cm := ConfigManager{}
 | 
			
		||||
	c := config.Config{}
 | 
			
		||||
	cm.idMap = make(map[string]string)
 | 
			
		||||
 | 
			
		||||
	if len(b) == 0 || b == nil {
 | 
			
		||||
		err = cm.readByTempConfig(&c)
 | 
			
		||||
	} else {
 | 
			
		||||
		err = json.Unmarshal(b, &c)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	cm.writeConfig(c)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// config json save folder
 | 
			
		||||
// create folder for config
 | 
			
		||||
// config json parse
 | 
			
		||||
@ -1,6 +0,0 @@
 | 
			
		||||
package config_manager_go
 | 
			
		||||
 | 
			
		||||
import "os"
 | 
			
		||||
 | 
			
		||||
var hasVendorName = true
 | 
			
		||||
var configSettingFolder = []string{os.Getenv("/etc/overflow/config")}
 | 
			
		||||
							
								
								
									
										195
									
								
								config_manager.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										195
									
								
								config_manager.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,195 @@
 | 
			
		||||
package config_manager_go
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"gopkg.in/yaml.v2"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"loafle.com/overflow/agent_api/config_manager"
 | 
			
		||||
	"loafle.com/overflow/agent_api/observer"
 | 
			
		||||
	"loafle.com/overflow/agent_api/observer/messages"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
	"strings"
 | 
			
		||||
	"sync"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type configManager struct {
 | 
			
		||||
	config_manager.ConfigManager // interface implements
 | 
			
		||||
 | 
			
		||||
	addCh    chan interface{}
 | 
			
		||||
	removeCh chan interface{}
 | 
			
		||||
 | 
			
		||||
	configs      map[string]*config_manager.Config
 | 
			
		||||
	globalConfig config_manager.GlobalConfig
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _configManager *configManager
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	var once sync.Once
 | 
			
		||||
	once.Do(func() {
 | 
			
		||||
		_configManager = NewConfigManager()
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	// regist handlers
 | 
			
		||||
	agentStartHandler()
 | 
			
		||||
	addSensorHandler()
 | 
			
		||||
	removeSensorHandler()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewConfigManager() *configManager {
 | 
			
		||||
	c := &configManager{
 | 
			
		||||
		configs:  make(map[string]*config_manager.Config, 0),
 | 
			
		||||
		addCh:    make(chan interface{}, 0),
 | 
			
		||||
		removeCh: make(chan interface{}, 0),
 | 
			
		||||
	}
 | 
			
		||||
	return c
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configManager) getConfigPath() string {
 | 
			
		||||
	return c.globalConfig.Paths.RootFolder + c.globalConfig.Paths.ConfigFolder
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configManager) getContainerPath() string {
 | 
			
		||||
	return c.getConfigPath() + "container/"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func appendSeperator(str string) string {
 | 
			
		||||
	if strings.LastIndex(str, "/") != len(str)-1 {
 | 
			
		||||
		return str + "/"
 | 
			
		||||
	}
 | 
			
		||||
	return str
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configManager) loadGlobalConfig(path string) {
 | 
			
		||||
	data, err := ioutil.ReadFile(path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
	}
 | 
			
		||||
	err = yaml.Unmarshal([]byte(data), &c.globalConfig)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configManager) loadCrawlerConfigAll() error {
 | 
			
		||||
 | 
			
		||||
	root := c.getConfigPath()
 | 
			
		||||
	files, err := ioutil.ReadDir(root)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Panic(err)
 | 
			
		||||
	}
 | 
			
		||||
	for _, file := range files {
 | 
			
		||||
		if file.IsDir() == true {
 | 
			
		||||
			c.loadCrawlerConfig(root, file.Name())
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configManager) loadCrawlerConfig(root string, dir string) {
 | 
			
		||||
 | 
			
		||||
	separator := ""
 | 
			
		||||
	if strings.LastIndex(root, "/") != len(root)-1 {
 | 
			
		||||
		separator = "/"
 | 
			
		||||
	}
 | 
			
		||||
	currentDir := root + separator + dir
 | 
			
		||||
	files, err := ioutil.ReadDir(currentDir)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, file := range files {
 | 
			
		||||
		if file.IsDir() == true {
 | 
			
		||||
			c.loadCrawlerConfig(currentDir, file.Name())
 | 
			
		||||
		} else {
 | 
			
		||||
			b, err := ioutil.ReadFile(currentDir + separator + file.Name())
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Panic(err)
 | 
			
		||||
			}
 | 
			
		||||
			var m = config_manager.Config{}
 | 
			
		||||
			json.Unmarshal(b, &m)
 | 
			
		||||
			c.configs[file.Name()] = &m
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configManager) addConfig() {
 | 
			
		||||
	for data := range c.addCh {
 | 
			
		||||
 | 
			
		||||
		path := data.(string)
 | 
			
		||||
		b, err := ioutil.ReadFile(path)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			// error process
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// 임시파일을 로드 ,  Config로 변환
 | 
			
		||||
		var m = config_manager.Config{}
 | 
			
		||||
		err = json.Unmarshal(b, &m)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			// error process
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// agent 폴더 / config / crawler / .. / .. / .. / 에 해당하는 파일이 있는지 확인, 있다면 삭제
 | 
			
		||||
		// Config 파일로 저장
 | 
			
		||||
		savePath := c.getContainerPath() + appendSeperator(m.Crawler.Container) + appendSeperator(m.Crawler.Name) + m.Id
 | 
			
		||||
		ioutil.WriteFile(savePath, b, 0644)
 | 
			
		||||
 | 
			
		||||
		// tempfile remove
 | 
			
		||||
		err = os.Remove(path)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			// error process
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Config 맵에 저장
 | 
			
		||||
		c.configs[m.Id] = &m
 | 
			
		||||
 | 
			
		||||
		// notify id
 | 
			
		||||
		err = observer.Notify(messages.ADD_SENSOR_1, m.Id)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *configManager) removeConfig() {
 | 
			
		||||
	for data := range c.removeCh {
 | 
			
		||||
		removeid := data.(string)
 | 
			
		||||
 | 
			
		||||
		// check exists
 | 
			
		||||
		config, ok := c.configs[removeid]
 | 
			
		||||
		if !ok {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// 해당 파일 삭제
 | 
			
		||||
		path := c.getContainerPath() + appendSeperator(config.Crawler.Container) + appendSeperator(config.Crawler.Name) + config.Id
 | 
			
		||||
		err := os.Remove(path)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			// error check
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// 해당 id 삭제
 | 
			
		||||
		delete(c.configs, removeid)
 | 
			
		||||
 | 
			
		||||
		// notify id
 | 
			
		||||
		err = observer.Notify(messages.REMOVE_SENSOR_1, removeid)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// implements methods
 | 
			
		||||
func (c *configManager) GetGlobalConfig() *config_manager.GlobalConfig {
 | 
			
		||||
	return &c.globalConfig
 | 
			
		||||
}
 | 
			
		||||
func (c *configManager) GetCrawlerById(id string) *config_manager.Config {
 | 
			
		||||
	return c.configs[id]
 | 
			
		||||
}
 | 
			
		||||
func (c *configManager) GetCrawlers() map[string]*config_manager.Config {
 | 
			
		||||
	return c.configs
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										55
									
								
								config_manager_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								config_manager_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
			
		||||
package config_manager_go
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"testing"
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"log"
 | 
			
		||||
	"loafle.com/overflow/agent_api/config_manager"
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"github.com/google/uuid"
 | 
			
		||||
	"loafle.com/overflow/agent_api/observer"
 | 
			
		||||
	"loafle.com/overflow/agent_api/observer/messages"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestLoadConfig(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	c := NewConfigManager()
 | 
			
		||||
	c.loadGlobalConfig("/root/gowork/src/loafle.com/overflow/config_manager_go/test_agent/global.yaml")
 | 
			
		||||
	c.loadCrawlerConfigAll()
 | 
			
		||||
	
 | 
			
		||||
	assert.NotEqual(t, len(c.configs),0)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func TestAddConfig(t *testing.T) {
 | 
			
		||||
	
 | 
			
		||||
	_configManager.loadGlobalConfig("/root/gowork/src/loafle.com/overflow/config_manager_go/test_agent/global.yaml")
 | 
			
		||||
	
 | 
			
		||||
	b, err := ioutil.ReadFile("/root/gowork/src/loafle.com/overflow/config_manager_go/test_agent/test.json")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Panic(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var m = config_manager.Config{}
 | 
			
		||||
	json.Unmarshal(b, &m)
 | 
			
		||||
 | 
			
		||||
	rid,_ := uuid.NewRandom()
 | 
			
		||||
	m.Id = rid.String()
 | 
			
		||||
	b,err = json.Marshal(&m)
 | 
			
		||||
	ioutil.WriteFile("/root/gowork/src/loafle.com/overflow/config_manager_go/test_agent/" + m.Id,b,0644)
 | 
			
		||||
	
 | 
			
		||||
	observer.Notify(messages.ADD_SENSOR_0,"/root/gowork/src/loafle.com/overflow/config_manager_go/test_agent/" + m.Id)
 | 
			
		||||
	time.Sleep(1 * time.Second)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func TestRemoveConfig(t *testing.T) {
 | 
			
		||||
	
 | 
			
		||||
	_configManager.loadGlobalConfig("/root/gowork/src/loafle.com/overflow/config_manager_go/test_agent/global.yaml")
 | 
			
		||||
	_configManager.loadCrawlerConfigAll()
 | 
			
		||||
	
 | 
			
		||||
	observer.Notify(messages.REMOVE_SENSOR_0,"289575d2-4a34-4475-b91d-7fb0992cc3de")
 | 
			
		||||
	time.Sleep(1 * time.Second)
 | 
			
		||||
}
 | 
			
		||||
@ -1,8 +0,0 @@
 | 
			
		||||
package config_manager_go
 | 
			
		||||
 | 
			
		||||
import "testing"
 | 
			
		||||
 | 
			
		||||
func TestStart(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	Start(nil)
 | 
			
		||||
}
 | 
			
		||||
@ -1,6 +0,0 @@
 | 
			
		||||
package config_manager_go
 | 
			
		||||
 | 
			
		||||
import "os"
 | 
			
		||||
 | 
			
		||||
var hasVendorName = true
 | 
			
		||||
var configSettingFolder = []string{os.Getenv("PROGRAMDATA")}
 | 
			
		||||
							
								
								
									
										35
									
								
								init_method.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								init_method.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
			
		||||
package config_manager_go
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"loafle.com/overflow/agent_api/observer"
 | 
			
		||||
	"loafle.com/overflow/agent_api/observer/messages"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func agentStartHandler() {
 | 
			
		||||
	agentStart := make(chan interface{}, 0)
 | 
			
		||||
	observer.Add("AGENT_STARTED", agentStart)
 | 
			
		||||
	go func() {
 | 
			
		||||
		data := <-agentStart
 | 
			
		||||
		path := data.(string)
 | 
			
		||||
		// load global config
 | 
			
		||||
		_configManager.loadGlobalConfig(path + "/" + "global.yaml")
 | 
			
		||||
		
 | 
			
		||||
		// load all crawler configs
 | 
			
		||||
		if err := _configManager.loadCrawlerConfigAll(); err != nil {
 | 
			
		||||
			// error process
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		observer.Remove(messages.AGENT_STARTED, agentStart)
 | 
			
		||||
		observer.Notify(messages.CONFIGMANAGER_LOADED, _configManager)
 | 
			
		||||
	}()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func removeSensorHandler() {
 | 
			
		||||
	observer.Add(messages.REMOVE_SENSOR_0,_configManager.removeCh)
 | 
			
		||||
	go _configManager.removeConfig()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func addSensorHandler() {
 | 
			
		||||
	observer.Add(messages.ADD_SENSOR_0,_configManager.addCh)
 | 
			
		||||
	go _configManager.addConfig()
 | 
			
		||||
}
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
  "id" : "SOEJWEOJWOEJOSDJFOASDJFOSDFO2903870928734",
 | 
			
		||||
  "id" : "736387363",
 | 
			
		||||
  "target" : {
 | 
			
		||||
    "connection" : {
 | 
			
		||||
      "ip" : "192.168.1.104",
 | 
			
		||||
@ -15,8 +15,8 @@
 | 
			
		||||
    "interval" : "10"
 | 
			
		||||
  },
 | 
			
		||||
  "crawler" : {
 | 
			
		||||
    "name":"redis_protocol_crawler",
 | 
			
		||||
    "container":"network_crawler"
 | 
			
		||||
    "name":"redis",
 | 
			
		||||
    "container":"java_proxy"
 | 
			
		||||
  },
 | 
			
		||||
  "items" : [
 | 
			
		||||
  ]
 | 
			
		||||
							
								
								
									
										23
									
								
								test_agent/config/container/java_proxy/sql/989238744
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								test_agent/config/container/java_proxy/sql/989238744
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
{
 | 
			
		||||
  "id" : "989238744",
 | 
			
		||||
  "target" : {
 | 
			
		||||
    "connection" : {
 | 
			
		||||
      "ip" : "192.168.1.104",
 | 
			
		||||
      "port" : "6379",
 | 
			
		||||
      "ssl" : false,
 | 
			
		||||
      "portType" : "tcp"
 | 
			
		||||
    },
 | 
			
		||||
    "auth" : {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "schedule" : {
 | 
			
		||||
    "interval" : "10"
 | 
			
		||||
  },
 | 
			
		||||
  "crawler" : {
 | 
			
		||||
    "name":"sql",
 | 
			
		||||
    "container":"java_proxy"
 | 
			
		||||
  },
 | 
			
		||||
  "items" : [
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,23 @@
 | 
			
		||||
{
 | 
			
		||||
  "id" : "123980918237",
 | 
			
		||||
  "target" : {
 | 
			
		||||
    "connection" : {
 | 
			
		||||
      "ip" : "192.168.1.104",
 | 
			
		||||
      "port" : "6379",
 | 
			
		||||
      "ssl" : false,
 | 
			
		||||
      "portType" : "tcp"
 | 
			
		||||
    },
 | 
			
		||||
    "auth" : {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "schedule" : {
 | 
			
		||||
    "interval" : "10"
 | 
			
		||||
  },
 | 
			
		||||
  "crawler" : {
 | 
			
		||||
    "name":"health_activedirectory",
 | 
			
		||||
    "container":"network_proxy"
 | 
			
		||||
  },
 | 
			
		||||
  "items" : [
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								test_agent/global.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								test_agent/global.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
central:
 | 
			
		||||
  address: "http://localhost:9090"
 | 
			
		||||
  port: 443
 | 
			
		||||
logPath: "./bin/log.xml"
 | 
			
		||||
paths:
 | 
			
		||||
  rootFolder : "/root/gowork/src/loafle.com/overflow/config_manager_go/test_agent/"
 | 
			
		||||
  configFolder : "config/"
 | 
			
		||||
  binaryFolder : "container/"
 | 
			
		||||
  pidFolder : "pids/"
 | 
			
		||||
  scriptFile : "start"
 | 
			
		||||
intervalSecond: 10
 | 
			
		||||
							
								
								
									
										23
									
								
								test_agent/test.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								test_agent/test.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
{
 | 
			
		||||
  "id" : "123980918237",
 | 
			
		||||
  "target" : {
 | 
			
		||||
    "connection" : {
 | 
			
		||||
      "ip" : "192.168.1.104",
 | 
			
		||||
      "port" : "6379",
 | 
			
		||||
      "ssl" : false,
 | 
			
		||||
      "portType" : "tcp"
 | 
			
		||||
    },
 | 
			
		||||
    "auth" : {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "schedule" : {
 | 
			
		||||
    "interval" : "10"
 | 
			
		||||
  },
 | 
			
		||||
  "crawler" : {
 | 
			
		||||
    "name":"health_activedirectory",
 | 
			
		||||
    "container":"network_proxy"
 | 
			
		||||
  },
 | 
			
		||||
  "items" : [
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user