package config import ( "encoding/json" "os" ) // Config 配置文件结构体 type Config struct { Fluentd FluentdConfig `json:"fluentd"` Elasticsearch ElasticsearchConfig `json:"elasticsearch"` } // FluentdConfig Fluentd 配置 type FluentdConfig struct { URL string `json:"url"` } // ElasticsearchConfig Elasticsearch 配置 type ElasticsearchConfig struct { URL string `json:"url"` Auth AuthConfig `json:"auth"` ILM ILMConfig `json:"ilm"` } // AuthConfig 认证信息 type AuthConfig struct { Username string `json:"username"` Password string `json:"password"` } // ILMConfig ILM 配置 type ILMConfig struct { DataTypes map[string]DataTypeConfig `json:"data_types"` } // DataTypeConfig 每种数据类型的 ILM 配置 type DataTypeConfig struct { IndexPattern string `json:"index_pattern"` MaxRetention map[string]int `json:"max_retention"` MinRetention int `json:"min_retention"` Shards int `json:"shards"` Replicas int `json:"replicas"` NormalRollover map[string]string `json:"normal_rollover"` NormalPhases map[string]int `json:"normal_phases"` } // LoadConfig 加载配置文件 func LoadConfig(path string) (*Config, error) { data, err := os.ReadFile(path) if err != nil { return nil, err } var config Config if err := json.Unmarshal(data, &config); err != nil { return nil, err } return &config, nil }