diff --git a/server/controller/trisolaris/dbcache/db_data.go b/server/controller/trisolaris/dbcache/db_data.go index ce322eee5614..6cfefd20a11c 100644 --- a/server/controller/trisolaris/dbcache/db_data.go +++ b/server/controller/trisolaris/dbcache/db_data.go @@ -43,7 +43,6 @@ type DBDataCache struct { azs []*models.AZ hostDevices []*models.Host podNodes []*models.PodNode - agentGroupConfigs []*agent_config.AgentGroupConfigModel domains []*models.Domain subDomains []*models.SubDomain chVTapPorts []*models.ChVTapPort @@ -174,14 +173,6 @@ func (d *DBDataCache) GetVipDomains() []*models.Domain { return d.vipDomains } -func (d *DBDataCache) GetAgentGroupConfigsFromDB(db *gorm.DB) []*agent_config.AgentGroupConfigModel { - agentGroupConfigs, err := dbmgr.DBMgr[agent_config.AgentGroupConfigModel](db).Gets() - if err != nil { - log.Error(d.Log(err.Error())) - } - return agentGroupConfigs -} - func (d *DBDataCache) GetAgentGroupUserConfigsFromDB(db *gorm.DB) []*agent_config.MySQLAgentGroupConfiguration { agentGroupConfigs, err := dbmgr.DBMgr[agent_config.MySQLAgentGroupConfiguration](db).Gets() if err != nil { @@ -395,13 +386,6 @@ func (d *DBDataCache) GetDataCacheFromDB(db *gorm.DB) { log.Error(d.Log(err.Error())) } - agentGroupConfigs, err := dbmgr.DBMgr[agent_config.AgentGroupConfigModel](db).Gets() - if err == nil { - d.agentGroupConfigs = agentGroupConfigs - } else { - log.Error(d.Log(err.Error())) - } - domains, err := dbmgr.DBMgr[models.Domain](db).Gets() if err == nil { d.domains = domains diff --git a/server/controller/trisolaris/vtap/agent_plaform_data.go b/server/controller/trisolaris/vtap/agent_plaform_data.go index 09f080b1216e..59398e06cb3f 100644 --- a/server/controller/trisolaris/vtap/agent_plaform_data.go +++ b/server/controller/trisolaris/vtap/agent_plaform_data.go @@ -126,15 +126,15 @@ func (v *AgentPlatformData) setPlatformDataByAgent(p *metadata.PlatformDataOP, c if vtapConfig == nil { return } - log.Debug(v.Logf("%d %s", vtapConfig.PodClusterInternalIP, vtapConfig.ConvertedDomains)) - if *vtapConfig.PodClusterInternalIP == ALL_CLUSTERS && - SliceEqual[string](vtapConfig.ConvertedDomains, ALL_DOMAIMS) { + + podClusterInternalIP := vtapConfig.getPodClusterInternalIP() + log.Debug(v.Logf("%d %s", podClusterInternalIP, vtapConfig.ConvertedDomains)) + if !podClusterInternalIP && SliceEqual[string](vtapConfig.ConvertedDomains, ALL_DOMAIMS) { // 下发的云平台列表=全部,容器集群内部IP下发=所有集群 // 所有云平台所有数据 - log.Debug(v.Logf("all: %s", p.GetAllSimplePlatformData())) c.setAgentPlatformData(p.GetAllSimplePlatformData()) - } else if *vtapConfig.PodClusterInternalIP == ALL_CLUSTERS { + } else if !podClusterInternalIP { // 下发的云平台列表=xxx,容器集群内部IP下发=所有集群 // 云平台列表=xxx的所有数据 @@ -159,8 +159,7 @@ func (v *AgentPlatformData) setPlatformDataByAgent(p *metadata.PlatformDataOP, c v.platformDataType1.setPlatformDataCache(vTapGroupLcuuid, domainAllData) c.setAgentPlatformData(domainAllData) log.Debug(v.Logf("%s", domainAllData)) - } else if *vtapConfig.PodClusterInternalIP == CLUSTER_OF_VTAP && - SliceEqual[string](vtapConfig.ConvertedDomains, ALL_DOMAIMS) { + } else if podClusterInternalIP && SliceEqual[string](vtapConfig.ConvertedDomains, ALL_DOMAIMS) { // 下发的云平台列表=全部,容器集群内部IP下发=采集器所在集群 // 所有云平台中devicetype != POD/容器服务的所有接口,采集器所在集群devicetype=POD/容器服务的所有接口 @@ -194,7 +193,7 @@ func (v *AgentPlatformData) setPlatformDataByAgent(p *metadata.PlatformDataOP, c c.setAgentPlatformData(domainAllData) v.platformDataType2.setPlatformDataCache(key, domainAllData) log.Debug(v.Logf("%s", domainAllData)) - } else if *vtapConfig.PodClusterInternalIP == CLUSTER_OF_VTAP { + } else if podClusterInternalIP { // 下发的云平台列表=xxx,容器集群内部IP下发=采集器所在集群 // 云平台列表=xxx中devicetype != POD/容器服务所有接口,集器所在集群devicetype=POD/容器服务的所有接口 diff --git a/server/controller/trisolaris/vtap/vtap.go b/server/controller/trisolaris/vtap/vtap.go index 23b5b6d0957c..60436e231f50 100644 --- a/server/controller/trisolaris/vtap/vtap.go +++ b/server/controller/trisolaris/vtap/vtap.go @@ -18,7 +18,6 @@ package vtap import ( "context" - "encoding/json" "errors" "fmt" "reflect" @@ -34,7 +33,6 @@ import ( "github.com/deepflowio/deepflow/message/agent" "github.com/deepflowio/deepflow/message/trident" - "github.com/deepflowio/deepflow/server/agent_config" "github.com/deepflowio/deepflow/server/controller/common" . "github.com/deepflowio/deepflow/server/controller/common" mysql_model "github.com/deepflowio/deepflow/server/controller/db/metadb/model" // FIXME: To avoid ambiguity, name the package either mysql_model or db_model. @@ -73,7 +71,6 @@ type VTapInfo struct { vtapGroupShortIDToLcuuid map[string]string vtapGroupLcuuidToConfiguration map[string]*VTapConfig vtapGroupLcuuidToLocalConfig map[string]string - vtapGroupLcuuidToEAHPEnabled map[string]*int noVTapTapPortsMac mapset.Set kvmVTapCtrlIPToTapPorts map[string]mapset.Set kcData *KubernetesCluster @@ -142,7 +139,6 @@ func NewVTapInfo(db *gorm.DB, metaData *metadata.MetaData, cfg *config.Config, o vtapGroupShortIDToLcuuid: make(map[string]string), vtapGroupLcuuidToConfiguration: make(map[string]*VTapConfig), vtapGroupLcuuidToLocalConfig: make(map[string]string), - vtapGroupLcuuidToEAHPEnabled: make(map[string]*int), noVTapTapPortsMac: mapset.NewSet(), kvmVTapCtrlIPToTapPorts: make(map[string]mapset.Set), pluginNameToUpdateTime: make(map[string]uint32), @@ -424,18 +420,7 @@ func (v *VTapInfo) loadVTaps() { } func (v *VTapInfo) loadDefaultVtapConfig() { - deafaultConfiguration := &agent_config.AgentGroupConfigModel{} - b, err := json.Marshal(DefaultVTapGroupConfig) - if err == nil { - err = json.Unmarshal(b, deafaultConfiguration) - if err != nil { - log.Error(v.Logf("%s", err)) - } - } else { - log.Error(v.Logf("%s", err)) - } - - v.realDefaultConfig = NewVTapConfig(deafaultConfiguration, "") + v.realDefaultConfig = NewVTapConfig("") } func (v *VTapInfo) loadBaseData() { @@ -501,80 +486,16 @@ func (v *VTapInfo) getAgentConfigs() { // agent configs agentConfigs := v.metaData.GetDBDataCache().GetAgentGroupUserConfigsFromDB(v.db) if agentConfigs == nil { - log.Error(v.Log("no agent user configs data")) + log.Error(v.Log("no agent configs data")) return } - agentGroupLcuuidToConfigYaml := make(map[string]string) - for _, agentConfig := range agentConfigs { - agentGroupLcuuidToConfigYaml[agentConfig.AgentGroupLcuuid] = agentConfig.Yaml - } - // vtap configs - configs := v.metaData.GetDBDataCache().GetAgentGroupConfigsFromDB(v.db) - if configs == nil { - log.Error(v.Log("no vtap configs data")) - return - } vtapGroupLcuuidToConfiguration := make(map[string]*VTapConfig) - vtapGroupLcuuidToLocalConfig := make(map[string]string) - vtapGroupLcuuidToEAHPEnabled := make(map[string]*int) - typeOfDefaultConfig := reflect.ValueOf(DefaultVTapGroupConfig).Elem() - for _, config := range configs { - if config.VTapGroupLcuuid == nil { - continue - } - vtapGroupLcuuidToEAHPEnabled[*config.VTapGroupLcuuid] = config.ExternalAgentHTTPProxyEnabled - if config.YamlConfig != nil { - vtapGroupLcuuidToLocalConfig[*config.VTapGroupLcuuid] = *config.YamlConfig - } else { - vtapGroupLcuuidToLocalConfig[*config.VTapGroupLcuuid] = "" - } - tapConfiguration := &agent_config.AgentGroupConfigModel{} - typeOfVTapConfiguration := reflect.ValueOf(tapConfiguration).Elem() - tt := reflect.TypeOf(config).Elem() - tv := reflect.ValueOf(config).Elem() - for i := 0; i < tv.NumField(); i++ { - field := tt.Field(i) - value := tv.Field(i) - if JudgeField(field.Name) { - typeOfVTapConfiguration.Field(i).Set(value) - continue - } - // Allow empty values not to be overwritten as default values. For example, it can be set: `tap_interface_regex: ""` - if AllowEmptyField(field.Name) && value.Kind() == reflect.Ptr && !value.IsNil() { - typeOfVTapConfiguration.Field(i).Set(value) - continue - } - defaultValue := typeOfDefaultConfig.Field(i) - if !isBlank(value) { - typeOfVTapConfiguration.Field(i).Set(value) - } else { - typeOfVTapConfiguration.Field(i).Set(defaultValue) - } - } - // 转换结构体类型 - rtapConfiguration := &agent_config.AgentGroupConfigModel{} - b, err := json.Marshal(tapConfiguration) - if err == nil { - err = json.Unmarshal(b, rtapConfiguration) - if err != nil { - log.Error(v.Logf("%s", err)) - } - } else { - log.Error(v.Logf("%s", err)) - } - agentConfigYaml, ok := agentGroupLcuuidToConfigYaml[*config.VTapGroupLcuuid] - if !ok { - log.Error(v.Logf("vtap group lcuuid(%s) not found agent config", *config.VTapGroupLcuuid)) - } - vTapConfig := NewVTapConfig(rtapConfiguration, agentConfigYaml) - if config.VTapGroupLcuuid != nil { - vtapGroupLcuuidToConfiguration[*vTapConfig.VTapGroupLcuuid] = vTapConfig - } + for _, config := range agentConfigs { + vTapConfig := NewVTapConfig(config.Yaml) + vtapGroupLcuuidToConfiguration[config.AgentGroupLcuuid] = vTapConfig } v.vtapGroupLcuuidToConfiguration = vtapGroupLcuuidToConfiguration - v.vtapGroupLcuuidToLocalConfig = vtapGroupLcuuidToLocalConfig - v.vtapGroupLcuuidToEAHPEnabled = vtapGroupLcuuidToEAHPEnabled } func (v *VTapInfo) GetVTapConfigFromShortID(shortID string) *VTapConfig { diff --git a/server/controller/trisolaris/vtap/vtap_cache.go b/server/controller/trisolaris/vtap/vtap_cache.go index 60825866de4f..c181f65cdde7 100644 --- a/server/controller/trisolaris/vtap/vtap_cache.go +++ b/server/controller/trisolaris/vtap/vtap_cache.go @@ -183,9 +183,8 @@ func (f *VTapConfig) modifyConfig(v *VTapInfo) { } } -func NewVTapConfig(config *agent_config.AgentGroupConfigModel, agentConfigYaml string) *VTapConfig { +func NewVTapConfig(agentConfigYaml string) *VTapConfig { vTapConfig := &VTapConfig{} - vTapConfig.AgentGroupConfigModel = *config v := viper.New() v.SetConfigType("yaml") if err := v.ReadConfig(bytes.NewBufferString(agentConfigYaml)); err != nil { @@ -469,128 +468,47 @@ func (c *VTapCache) GetLocalConfig() string { var NetWorkL7ProtocolEnabled = []string{"HTTP", "DNS"} func (c *VTapCache) modifyVTapConfigByLicense(configure *VTapConfig) { - if configure == nil { + if configure == nil || configure.UserConfig == nil { log.Error("vtap configure is nil") return } if c.EnabledCallMonitoring() == false && c.EnabledNetworkMonitoring() == false { - *configure.L7MetricsEnabled = DISABLED - configure.ConvertedL7LogStoreTapTypes = nil - - if configure.UserConfig != nil { - configure.UserConfig.Set("outputs.flow_metrics.filters.apm_metrics", false) - configure.UserConfig.Set("outputs.flow_log.filters.l7_capture_network_types", []int{-1}) - } + configure.UserConfig.Set("outputs.flow_metrics.filters.apm_metrics", false) + configure.UserConfig.Set("outputs.flow_log.filters.l7_capture_network_types", []int{-1}) } if c.EnabledNetworkMonitoring() == false { - *configure.L4PerformanceEnabled = DISABLED - configure.ConvertedL4LogTapTypes = nil - - if configure.UserConfig != nil { - configure.UserConfig.Set("outputs.flow_metrics.filters.npm_metrics", false) - configure.UserConfig.Set("outputs.flow_log.filters.l4_capture_network_types", []int{-1}) - } - } - v := c.vTapInfo - // modify static config - yamlConfig := &agent_config.StaticConfig{} - if configure.YamlConfig != nil { - if err := yaml.Unmarshal([]byte(*configure.YamlConfig), yamlConfig); err != nil { - log.Error(v.Logf("%s", err)) - return - } + configure.UserConfig.Set("outputs.flow_metrics.filters.npm_metrics", false) + configure.UserConfig.Set("outputs.flow_log.filters.l4_capture_network_types", []int{-1}) } if c.EnabledNetworkMonitoring() == true && c.EnabledCallMonitoring() == false { - yamlConfig.L7ProtocolEnabled = NetWorkL7ProtocolEnabled - - if configure.UserConfig != nil { - configure.UserConfig.Set("processors.request_log.application_protocol_inference.enabled_protocols", NetWorkL7ProtocolEnabled) - } + configure.UserConfig.Set("processors.request_log.application_protocol_inference.enabled_protocols", NetWorkL7ProtocolEnabled) } else if c.EnabledNetworkMonitoring() == false && c.EnabledCallMonitoring() == false { - yamlConfig.L7ProtocolEnabled = nil - - if configure.UserConfig != nil { - configure.UserConfig.Set("processors.request_log.application_protocol_inference.enabled_protocols", []string{}) - } + configure.UserConfig.Set("processors.request_log.application_protocol_inference.enabled_protocols", []string{}) } if c.EnabledCallMonitoring() == false { - disabled := int(DISABLED) - if yamlConfig.Ebpf == nil { - yamlConfig.Ebpf = &agent_config.EbpfConfig{ - Disabled: proto.Bool(true), - IOEventCollectMode: &disabled, - } - } else { - yamlConfig.Ebpf.Disabled = proto.Bool(true) - yamlConfig.Ebpf.IOEventCollectMode = &disabled - } - - if configure.UserConfig != nil { - configure.UserConfig.Set("inputs.ebpf.disabled", true) - configure.UserConfig.Set("inputs.ebpf.file.io_event.collect_mode", 0) - } + configure.UserConfig.Set("inputs.ebpf.disabled", true) + configure.UserConfig.Set("inputs.ebpf.file.io_event.collect_mode", 0) } if c.EnabledFunctionMonitoring() == false { - if yamlConfig.Ebpf == nil { - yamlConfig.Ebpf = &agent_config.EbpfConfig{} - } - if yamlConfig.Ebpf.OnCpuProfile == nil { - yamlConfig.Ebpf.OnCpuProfile = &agent_config.OnCpuProfile{ - Disabled: proto.Bool(true), - } - } else { - yamlConfig.Ebpf.OnCpuProfile.Disabled = proto.Bool(true) - } - if yamlConfig.Ebpf.OffCpuProfile == nil { - yamlConfig.Ebpf.OffCpuProfile = &agent_config.OffCpuProfile{ - Disabled: proto.Bool(true), - } - } else { - yamlConfig.Ebpf.OffCpuProfile.Disabled = proto.Bool(true) - } - - yamlConfig.ExternalProfileIntegrationDisabled = proto.Bool(true) - - if configure.UserConfig != nil { - configure.UserConfig.Set("inputs.ebpf.profile.on_cpu.disabled", true) - configure.UserConfig.Set("inputs.ebpf.profile.off_cpu.disabled", true) - configure.UserConfig.Set("inputs.integration.feature_control.profile_integration_disabled", true) - } + configure.UserConfig.Set("inputs.ebpf.profile.on_cpu.disabled", true) + configure.UserConfig.Set("inputs.ebpf.profile.off_cpu.disabled", true) + configure.UserConfig.Set("inputs.integration.feature_control.profile_integration_disabled", true) } if c.EnabledApplicationMonitoring() == false { - yamlConfig.ExternalTraceIntegrationDisabled = proto.Bool(true) - - if configure.UserConfig != nil { - configure.UserConfig.Set("inputs.integration.feature_control.trace_integration_disabled", true) - } + configure.UserConfig.Set("inputs.integration.feature_control.trace_integration_disabled", true) } if c.EnabledIndicatorMonitoring() == false { - yamlConfig.ExternalMetricIntegrationDisabled = proto.Bool(true) - - if configure.UserConfig != nil { - configure.UserConfig.Set("inputs.integration.feature_control.metric_integration_disabled", true) - } + configure.UserConfig.Set("inputs.integration.feature_control.metric_integration_disabled", true) } if c.EnabledLogMonitoring() == false { - yamlConfig.ExternalLogIntegrationDisabled = proto.Bool(true) - - if configure.UserConfig != nil { - configure.UserConfig.Set("inputs.integration.feature_control.log_integration_disabled", true) - } - } - - b, err := yaml.Marshal(yamlConfig) - if err != nil { - log.Error(err) - return + configure.UserConfig.Set("inputs.integration.feature_control.log_integration_disabled", true) } - configure.YamlConfig = proto.String(string(b)) } func (c *VTapCache) EnabledCallMonitoring() bool { @@ -834,12 +752,6 @@ func (c *VTapCache) GetLaunchServer() string { var regV = regexp.MustCompile("B_LC_RELEASE_v6_[12]") func (c *VTapCache) GetExternalAgentHTTPProxyEnabledConfig() int { - v := c.vTapInfo - if enabled, ok := v.vtapGroupLcuuidToEAHPEnabled[c.GetVTapGroupLcuuid()]; ok { - if enabled != nil { - return *enabled - } - } if regV.MatchString(c.GetRevision()) { return 0 }