pkgconfig

package
v0.44.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StrUnknown = "UNKNOWN"

	ProgQname   = "dns.collector"
	ProgName    = "dnscollector"
	LocalhostIP = "127.0.0.1"
	AnyIP       = "0.0.0.0"
	HTTPOK      = "HTTP/1.1 200 OK\r\n\r\n"

	KeyCollectors = "collectors"
	KeyLoggers    = "loggers"

	ValidDomain    = "dnscollector.dev."
	BadDomainLabel = "ultramegaverytoolonglabel-ultramegaverytoolonglabel-ultramegaverytoolonglabel.dnscollector.dev."

	BadVeryLongDomain = "ultramegaverytoolonglabel.dnscollector" +
		badLongLabel +
		badLongLabel +
		badLongLabel +
		badLongLabel +
		badLongLabel +
		".dev."

	ModeText     = "text"
	ModeJSON     = "json"
	ModeFlatJSON = "flat-json"
	ModePCAP     = "pcap"
	ModeDNSTap   = "dnstap"

	SASLMechanismPlain = "PLAIN"
	SASLMechanismScram = "SCRAM-SHA-512"

	TLSV10 = "1.0"
	TLSV11 = "1.1"
	TLSV12 = "1.2"
	TLSV13 = "1.3"

	CompressGzip   = "gzip"
	CompressSnappy = "snappy"
	CompressLz4    = "lz4"
	CompressZstd   = "ztd"
	CompressNone   = "none"
)

Variables

Functions

func CheckConfig added in v0.40.0

func CheckConfig(configFile *os.File) error

func CheckConfigWithTags added in v0.44.0

func CheckConfigWithTags(v reflect.Value, userCfg map[string]interface{}) error

func IsValidMode

func IsValidMode(mode string) bool

func IsValidTLS

func IsValidTLS(mode string) bool

func ReloadConfig

func ReloadConfig(configPath string, config *Config) error

func TLSClientConfig

func TLSClientConfig(options TLSOptions) (*tls.Config, error)

Types

type Config

type Config struct {
	Global               ConfigGlobal       `yaml:"global"`
	Collectors           ConfigCollectors   `yaml:"collectors"`
	IngoingTransformers  ConfigTransformers `yaml:"collectors-transformers"`
	Loggers              ConfigLoggers      `yaml:"loggers"`
	OutgoingTransformers ConfigTransformers `yaml:"loggers-transformers"`
	Multiplexer          ConfigMultiplexer  `yaml:"multiplexer"`
	Pipelines            []ConfigPipelines  `yaml:"pipelines"`
}

func GetFakeConfig

func GetFakeConfig() *Config

func LoadConfig

func LoadConfig(configPath string) (*Config, error)

func (*Config) GetServerIdentity

func (c *Config) GetServerIdentity() string

func (*Config) IsValid added in v0.44.0

func (c *Config) IsValid(userCfg map[string]interface{}) error

func (*Config) SetDefault

func (c *Config) SetDefault()

type ConfigCollectors

type ConfigCollectors struct {
	DNSMessage struct {
		Enable            bool `yaml:"enable"`
		ChannelBufferSize int  `yaml:"chan-buffer-size"`
		Matching          struct {
			Include map[string]interface{} `yaml:"include"`
			Exclude map[string]interface{} `yaml:"exclude"`
		} `yaml:"matching"`
	} `yaml:"dnsmessage"`
	Tail struct {
		Enable       bool   `yaml:"enable"`
		TimeLayout   string `yaml:"time-layout"`
		PatternQuery string `yaml:"pattern-query"`
		PatternReply string `yaml:"pattern-reply"`
		FilePath     string `yaml:"file-path"`
	} `yaml:"tail"`
	Dnstap struct {
		Enable            bool   `yaml:"enable"`
		ListenIP          string `yaml:"listen-ip"`
		ListenPort        int    `yaml:"listen-port"`
		SockPath          string `yaml:"sock-path"`
		TLSSupport        bool   `yaml:"tls-support"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		RcvBufSize        int    `yaml:"sock-rcvbuf"`
		ResetConn         bool   `yaml:"reset-conn"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
		DisableDNSParser  bool   `yaml:"disable-dnsparser"`
		ExtendedSupport   bool   `yaml:"extended-support"`
		Compression       string `yaml:"compression"`
	} `yaml:"dnstap"`
	DnstapProxifier struct {
		Enable        bool   `yaml:"enable"`
		ListenIP      string `yaml:"listen-ip"`
		ListenPort    int    `yaml:"listen-port"`
		SockPath      string `yaml:"sock-path"`
		TLSSupport    bool   `yaml:"tls-support"`
		TLSMinVersion string `yaml:"tls-min-version"`
		CertFile      string `yaml:"cert-file"`
		KeyFile       string `yaml:"key-file"`
	} `yaml:"dnstap-relay"`
	AfpacketLiveCapture struct {
		Enable            bool   `yaml:"enable"`
		Port              int    `yaml:"port"`
		Device            string `yaml:"device"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
		FragmentSupport   bool   `yaml:"enable-defrag-ip"`
	} `yaml:"afpacket-sniffer"`
	XdpLiveCapture struct {
		Enable            bool   `yaml:"enable"`
		Port              int    `yaml:"port"`
		Device            string `yaml:"device"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"xdp-sniffer"`
	PowerDNS struct {
		Enable            bool   `yaml:"enable"`
		ListenIP          string `yaml:"listen-ip"`
		ListenPort        int    `yaml:"listen-port"`
		TLSSupport        bool   `yaml:"tls-support"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		AddDNSPayload     bool   `yaml:"add-dns-payload"`
		RcvBufSize        int    `yaml:"sock-rcvbuf"`
		ResetConn         bool   `yaml:"reset-conn"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"powerdns"`
	FileIngestor struct {
		Enable            bool   `yaml:"enable"`
		WatchDir          string `yaml:"watch-dir"`
		WatchMode         string `yaml:"watch-mode"`
		PcapDNSPort       int    `yaml:"pcap-dns-port"`
		DeleteAfter       bool   `yaml:"delete-after"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"file-ingestor"`
	Tzsp struct {
		Enable            bool   `yaml:"enable"`
		ListenIP          string `yaml:"listen-ip"`
		ListenPort        int    `yaml:"listen-port"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"tzsp"`
}

func (*ConfigCollectors) GetNames added in v0.44.0

func (c *ConfigCollectors) GetNames() (ret []string)

func (*ConfigCollectors) IsExists added in v0.44.0

func (c *ConfigCollectors) IsExists(name string) bool

func (*ConfigCollectors) IsValid added in v0.40.0

func (c *ConfigCollectors) IsValid(userCfg map[string]interface{}) error

func (*ConfigCollectors) SetDefault

func (c *ConfigCollectors) SetDefault()

type ConfigGlobal

type ConfigGlobal struct {
	TextFormat          string `yaml:"text-format"`
	TextFormatDelimiter string `yaml:"text-format-delimiter"`
	TextFormatBoundary  string `yaml:"text-format-boundary"`
	Trace               struct {
		Verbose      bool   `yaml:"verbose"`
		LogMalformed bool   `yaml:"log-malformed"`
		Filename     string `yaml:"filename"`
		MaxSize      int    `yaml:"max-size"`
		MaxBackups   int    `yaml:"max-backups"`
	} `yaml:"trace"`
	ServerIdentity string `yaml:"server-identity"`
}

func (*ConfigGlobal) Check added in v0.44.0

func (c *ConfigGlobal) Check(userCfg map[string]interface{}) error

func (*ConfigGlobal) SetDefault

func (c *ConfigGlobal) SetDefault()

type ConfigLoggers

type ConfigLoggers struct {
	DevNull struct {
		Enable            bool   `yaml:"enable"`
		Mode              string `yaml:"mode"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"devnull"`
	Stdout struct {
		Enable            bool   `yaml:"enable"`
		Mode              string `yaml:"mode"`
		TextFormat        string `yaml:"text-format"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"stdout"`
	Prometheus struct {
		Enable                    bool     `yaml:"enable"`
		ListenIP                  string   `yaml:"listen-ip"`
		ListenPort                int      `yaml:"listen-port"`
		TLSSupport                bool     `yaml:"tls-support"`
		TLSMutual                 bool     `yaml:"tls-mutual"`
		TLSMinVersion             string   `yaml:"tls-min-version"`
		CertFile                  string   `yaml:"cert-file"`
		KeyFile                   string   `yaml:"key-file"`
		PromPrefix                string   `yaml:"prometheus-prefix"`
		LabelsList                []string `yaml:"prometheus-labels"`
		TopN                      int      `yaml:"top-n"`
		BasicAuthLogin            string   `yaml:"basic-auth-login"`
		BasicAuthPwd              string   `yaml:"basic-auth-pwd"`
		BasicAuthEnabled          bool     `yaml:"basic-auth-enable"`
		ChannelBufferSize         int      `yaml:"chan-buffer-size"`
		RequestersMetricsEnabled  bool     `yaml:"requesters-metrics-enabled"`
		DomainsMetricsEnabled     bool     `yaml:"domains-metrics-enabled"`
		NoErrorMetricsEnabled     bool     `yaml:"noerror-metrics-enabled"`
		ServfailMetricsEnabled    bool     `yaml:"servfail-metrics-enabled"`
		NonExistentMetricsEnabled bool     `yaml:"nonexistent-metrics-enabled"`
		TimeoutMetricsEnabled     bool     `yaml:"timeout-metrics-enabled"`
		HistogramMetricsEnabled   bool     `yaml:"histogram-metrics-enabled"`
		RequestersCacheTTL        int      `yaml:"requesters-cache-ttl"`
		RequestersCacheSize       int      `yaml:"requesters-cache-size"`
		DomainsCacheTTL           int      `yaml:"domains-cache-ttl"`
		DomainsCacheSize          int      `yaml:"domains-cache-size"`
		NoErrorDomainsCacheTTL    int      `yaml:"noerror-domains-cache-ttl"`
		NoErrorDomainsCacheSize   int      `yaml:"noerror-domains-cache-size"`
		ServfailDomainsCacheTTL   int      `yaml:"servfail-domains-cache-ttl"`
		ServfailDomainsCacheSize  int      `yaml:"servfail-domains-cache-size"`
		NXDomainsCacheTTL         int      `yaml:"nonexistent-domains-cache-ttl"`
		NXDomainsCacheSize        int      `yaml:"nonexistent-domains-cache-size"`
		DefaultDomainsCacheTTL    int      `yaml:"default-domains-cache-ttl"`
		DefaultDomainsCacheSize   int      `yaml:"default-domains-cache-size"`
	} `yaml:"prometheus"`
	RestAPI struct {
		Enable            bool   `yaml:"enable"`
		ListenIP          string `yaml:"listen-ip"`
		ListenPort        int    `yaml:"listen-port"`
		BasicAuthLogin    string `yaml:"basic-auth-login"`
		BasicAuthPwd      string `yaml:"basic-auth-pwd"`
		TLSSupport        bool   `yaml:"tls-support"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		TopN              int    `yaml:"top-n"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"restapi"`
	LogFile struct {
		Enable              bool   `yaml:"enable"`
		FilePath            string `yaml:"file-path"`
		MaxSize             int    `yaml:"max-size"`
		MaxFiles            int    `yaml:"max-files"`
		FlushInterval       int    `yaml:"flush-interval"`
		Compress            bool   `yaml:"compress"`
		CompressInterval    int    `yaml:"compress-interval"`
		CompressPostCommand string `yaml:"compress-postcommand"`
		Mode                string `yaml:"mode"`
		PostRotateCommand   string `yaml:"postrotate-command"`
		PostRotateDelete    bool   `yaml:"postrotate-delete-success"`
		TextFormat          string `yaml:"text-format"`
		ChannelBufferSize   int    `yaml:"chan-buffer-size"`
		ExtendedSupport     bool   `yaml:"extended-support"`
	} `yaml:"logfile"`
	DNSTap struct {
		Enable            bool   `yaml:"enable"`
		RemoteAddress     string `yaml:"remote-address"`
		RemotePort        int    `yaml:"remote-port"`
		Transport         string `yaml:"transport"`
		SockPath          string `yaml:"sock-path"`
		ConnectTimeout    int    `yaml:"connect-timeout"`
		RetryInterval     int    `yaml:"retry-interval"`
		FlushInterval     int    `yaml:"flush-interval"`
		TLSSupport        bool   `yaml:"tls-support"`
		TLSInsecure       bool   `yaml:"tls-insecure"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CAFile            string `yaml:"ca-file"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		ServerID          string `yaml:"server-id"`
		OverwriteIdentity bool   `yaml:"overwrite-identity"`
		BufferSize        int    `yaml:"buffer-size"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
		ExtendedSupport   bool   `yaml:"extended-support"`
		Compression       string `yaml:"compression"`
	} `yaml:"dnstapclient"`
	TCPClient struct {
		Enable            bool   `yaml:"enable"`
		RemoteAddress     string `yaml:"remote-address"`
		RemotePort        int    `yaml:"remote-port"`
		SockPath          string `yaml:"sock-path"` // deprecated
		RetryInterval     int    `yaml:"retry-interval"`
		Transport         string `yaml:"transport"`
		TLSSupport        bool   `yaml:"tls-support"` // deprecated
		TLSInsecure       bool   `yaml:"tls-insecure"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CAFile            string `yaml:"ca-file"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		Mode              string `yaml:"mode"`
		TextFormat        string `yaml:"text-format"`
		PayloadDelimiter  string `yaml:"delimiter"`
		BufferSize        int    `yaml:"buffer-size"`
		FlushInterval     int    `yaml:"flush-interval"`
		ConnectTimeout    int    `yaml:"connect-timeout"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"tcpclient"`
	Syslog struct {
		Enable            bool   `yaml:"enable"`
		Severity          string `yaml:"severity"`
		Facility          string `yaml:"facility"`
		Transport         string `yaml:"transport"`
		RemoteAddress     string `yaml:"remote-address"`
		RetryInterval     int    `yaml:"retry-interval"`
		TextFormat        string `yaml:"text-format"`
		Mode              string `yaml:"mode"`
		TLSInsecure       bool   `yaml:"tls-insecure"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CAFile            string `yaml:"ca-file"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		Formatter         string `yaml:"formatter"`
		Framer            string `yaml:"framer"`
		Hostname          string `yaml:"hostname"`
		AppName           string `yaml:"app-name"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
		Tag               string `yaml:"tag"`
		ReplaceNullChar   string `yaml:"replace-null-char"`
		FlushInterval     int    `yaml:"flush-interval"`
		BufferSize        int    `yaml:"buffer-size"`
	} `yaml:"syslog"`
	Fluentd struct {
		Enable            bool   `yaml:"enable"`
		RemoteAddress     string `yaml:"remote-address"`
		RemotePort        int    `yaml:"remote-port"`
		SockPath          string `yaml:"sock-path"` // deprecated
		ConnectTimeout    int    `yaml:"connect-timeout"`
		RetryInterval     int    `yaml:"retry-interval"`
		FlushInterval     int    `yaml:"flush-interval"`
		Transport         string `yaml:"transport"`
		TLSSupport        bool   `yaml:"tls-support"` // deprecated
		TLSInsecure       bool   `yaml:"tls-insecure"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CAFile            string `yaml:"ca-file"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		Tag               string `yaml:"tag"`
		BufferSize        int    `yaml:"buffer-size"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"fluentd"`
	InfluxDB struct {
		Enable            bool   `yaml:"enable"`
		ServerURL         string `yaml:"server-url"`
		AuthToken         string `yaml:"auth-token"`
		TLSSupport        bool   `yaml:"tls-support"`
		TLSInsecure       bool   `yaml:"tls-insecure"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CAFile            string `yaml:"ca-file"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		Bucket            string `yaml:"bucket"`
		Organization      string `yaml:"organization"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"influxdb"`
	LokiClient struct {
		Enable            bool              `yaml:"enable"`
		ServerURL         string            `yaml:"server-url"`
		JobName           string            `yaml:"job-name"`
		Mode              string            `yaml:"mode"`
		FlushInterval     int               `yaml:"flush-interval"`
		BatchSize         int               `yaml:"batch-size"`
		RetryInterval     int               `yaml:"retry-interval"`
		TextFormat        string            `yaml:"text-format"`
		ProxyURL          string            `yaml:"proxy-url"`
		TLSInsecure       bool              `yaml:"tls-insecure"`
		TLSMinVersion     string            `yaml:"tls-min-version"`
		CAFile            string            `yaml:"ca-file"`
		CertFile          string            `yaml:"cert-file"`
		KeyFile           string            `yaml:"key-file"`
		BasicAuthLogin    string            `yaml:"basic-auth-login"`
		BasicAuthPwd      string            `yaml:"basic-auth-pwd"`
		BasicAuthPwdFile  string            `yaml:"basic-auth-pwd-file"`
		TenantID          string            `yaml:"tenant-id"`
		RelabelConfigs    []*relabel.Config `yaml:"relabel-configs"`
		ChannelBufferSize int               `yaml:"chan-buffer-size"`
	} `yaml:"lokiclient"`
	Statsd struct {
		Enable            bool   `yaml:"enable"`
		Prefix            string `yaml:"prefix"`
		RemoteAddress     string `yaml:"remote-address"`
		RemotePort        int    `yaml:"remote-port"`
		ConnectTimeout    int    `yaml:"connect-timeout"`
		Transport         string `yaml:"transport"`
		FlushInterval     int    `yaml:"flush-interval"`
		TLSSupport        bool   `yaml:"tls-support"` // deprecated
		TLSInsecure       bool   `yaml:"tls-insecure"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CAFile            string `yaml:"ca-file"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"statsd"`
	ElasticSearchClient struct {
		Enable            bool   `yaml:"enable"`
		Index             string `yaml:"index"`
		Server            string `yaml:"server"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
		BulkSize          int    `yaml:"bulk-size"`
		BulkChannelSize   int    `yaml:"bulk-channel-size"`
		FlushInterval     int    `yaml:"flush-interval"`
		Compression       string `yaml:"compression"`
	} `yaml:"elasticsearch"`
	ScalyrClient struct {
		Enable            bool                   `yaml:"enable"`
		Mode              string                 `yaml:"mode"`
		TextFormat        string                 `yaml:"text-format"`
		SessionInfo       map[string]string      `yaml:"sessioninfo"`
		Attrs             map[string]interface{} `yaml:"attrs"`
		ServerURL         string                 `yaml:"server-url"`
		APIKey            string                 `yaml:"apikey"`
		Parser            string                 `yaml:"parser"`
		FlushInterval     int                    `yaml:"flush-interval"`
		ProxyURL          string                 `yaml:"proxy-url"`
		TLSInsecure       bool                   `yaml:"tls-insecure"`
		TLSMinVersion     string                 `yaml:"tls-min-version"`
		CAFile            string                 `yaml:"ca-file"`
		CertFile          string                 `yaml:"cert-file"`
		KeyFile           string                 `yaml:"key-file"`
		ChannelBufferSize int                    `yaml:"chan-buffer-size"`
	} `yaml:"scalyrclient"`
	RedisPub struct {
		Enable            bool   `yaml:"enable"`
		RemoteAddress     string `yaml:"remote-address"`
		RemotePort        int    `yaml:"remote-port"`
		SockPath          string `yaml:"sock-path"` // deprecated
		RetryInterval     int    `yaml:"retry-interval"`
		Transport         string `yaml:"transport"`
		TLSSupport        bool   `yaml:"tls-support"` // deprecated
		TLSInsecure       bool   `yaml:"tls-insecure"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CAFile            string `yaml:"ca-file"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		Mode              string `yaml:"mode"`
		TextFormat        string `yaml:"text-format"`
		PayloadDelimiter  string `yaml:"delimiter"`
		BufferSize        int    `yaml:"buffer-size"`
		FlushInterval     int    `yaml:"flush-interval"`
		ConnectTimeout    int    `yaml:"connect-timeout"`
		RedisChannel      string `yaml:"redis-channel"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"redispub"`
	KafkaProducer struct {
		Enable            bool   `yaml:"enable"`
		RemoteAddress     string `yaml:"remote-address"`
		RemotePort        int    `yaml:"remote-port"`
		RetryInterval     int    `yaml:"retry-interval"`
		TLSSupport        bool   `yaml:"tls-support"`
		TLSInsecure       bool   `yaml:"tls-insecure"`
		TLSMinVersion     string `yaml:"tls-min-version"`
		CAFile            string `yaml:"ca-file"`
		CertFile          string `yaml:"cert-file"`
		KeyFile           string `yaml:"key-file"`
		SaslSupport       bool   `yaml:"sasl-support"`
		SaslUsername      string `yaml:"sasl-username"`
		SaslPassword      string `yaml:"sasl-password"`
		SaslMechanism     string `yaml:"sasl-mechanism"`
		Mode              string `yaml:"mode"`
		TextFormat        string `yaml:"text-format"`
		BufferSize        int    `yaml:"buffer-size"`
		FlushInterval     int    `yaml:"flush-interval"`
		ConnectTimeout    int    `yaml:"connect-timeout"`
		Topic             string `yaml:"topic"`
		Partition         int    `yaml:"partition"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
		Compression       string `yaml:"compression"`
	} `yaml:"kafkaproducer"`
	FalcoClient struct {
		Enable            bool   `yaml:"enable"`
		URL               string `yaml:"url"`
		ChannelBufferSize int    `yaml:"chan-buffer-size"`
	} `yaml:"falco"`
	ClickhouseClient struct {
		Enable   bool   `yaml:"enable"`
		URL      string `yaml:"url"`
		User     string `yaml:"user"`
		Password string `yaml:"password"`
		Database string `yaml:"database"`
		Table    string `yaml:"table"`
	} `yaml:"clickhouse"`
}

func (*ConfigLoggers) GetNames added in v0.44.0

func (c *ConfigLoggers) GetNames() (ret []string)

func (*ConfigLoggers) IsExists added in v0.44.0

func (c *ConfigLoggers) IsExists(name string) bool

func (*ConfigLoggers) IsValid added in v0.40.0

func (c *ConfigLoggers) IsValid(userCfg map[string]interface{}) error

func (*ConfigLoggers) SetDefault

func (c *ConfigLoggers) SetDefault()

type ConfigMultiplexer

type ConfigMultiplexer struct {
	Collectors []MultiplexInOut  `yaml:"collectors"`
	Loggers    []MultiplexInOut  `yaml:"loggers"`
	Routes     []MultiplexRoutes `yaml:"routes"`
}

func (*ConfigMultiplexer) IsValid added in v0.44.0

func (c *ConfigMultiplexer) IsValid(userCfg map[string]interface{}) error

func (*ConfigMultiplexer) SetDefault

func (c *ConfigMultiplexer) SetDefault()

type ConfigPipelines added in v0.40.0

type ConfigPipelines struct {
	Name          string                 `yaml:"name"`
	Transforms    map[string]interface{} `yaml:"transforms"`
	Params        map[string]interface{} `yaml:",inline"`
	RoutingPolicy PipelinesRouting       `yaml:"routing-policy"`
}

func (*ConfigPipelines) IsValid added in v0.44.0

func (c *ConfigPipelines) IsValid(userCfg map[string]interface{}) error

type ConfigTransformers

type ConfigTransformers struct {
	UserPrivacy struct {
		Enable            bool   `yaml:"enable"`
		AnonymizeIP       bool   `yaml:"anonymize-ip"`
		AnonymizeIPV4Bits string `yaml:"anonymize-v4bits"`
		AnonymizeIPV6Bits string `yaml:"anonymize-v6bits"`
		MinimazeQname     bool   `yaml:"minimaze-qname"`
		HashIP            bool   `yaml:"hash-ip"`
		HashIPAlgo        string `yaml:"hash-ip-algo"`
	} `yaml:"user-privacy"`
	Normalize struct {
		Enable         bool `yaml:"enable"`
		QnameLowerCase bool `yaml:"qname-lowercase"`
		RRLowerCase    bool `yaml:"rr-lowercase"`
		QuietText      bool `yaml:"quiet-text"`
		AddTld         bool `yaml:"add-tld"`
		AddTldPlusOne  bool `yaml:"add-tld-plus-one"`
	} `yaml:"normalize"`
	Latency struct {
		Enable            bool `yaml:"enable"`
		MeasureLatency    bool `yaml:"measure-latency"`
		UnansweredQueries bool `yaml:"unanswered-queries"`
		QueriesTimeout    int  `yaml:"queries-timeout"`
	} `yaml:"latency"`
	Reducer struct {
		Enable                    bool `yaml:"enable"`
		RepetitiveTrafficDetector bool `yaml:"repetitive-traffic-detector"`
		QnamePlusOne              bool `yaml:"qname-plus-one"`
		WatchInterval             int  `yaml:"watch-interval"`
	} `yaml:"reducer"`
	Filtering struct {
		Enable          bool     `yaml:"enable"`
		DropFqdnFile    string   `yaml:"drop-fqdn-file"`
		DropDomainFile  string   `yaml:"drop-domain-file"`
		KeepFqdnFile    string   `yaml:"keep-fqdn-file"`
		KeepDomainFile  string   `yaml:"keep-domain-file"`
		DropQueryIPFile string   `yaml:"drop-queryip-file"`
		KeepQueryIPFile string   `yaml:"keep-queryip-file"`
		KeepRdataFile   string   `yaml:"keep-rdata-file"`
		DropRcodes      []string `yaml:"drop-rcodes,flow"`
		LogQueries      bool     `yaml:"log-queries"`
		LogReplies      bool     `yaml:"log-replies"`
		Downsample      int      `yaml:"downsample"`
	} `yaml:"filtering"`
	GeoIP struct {
		Enable        bool   `yaml:"enable"`
		DBCountryFile string `yaml:"mmdb-country-file"`
		DBCityFile    string `yaml:"mmdb-city-file"`
		DBASNFile     string `yaml:"mmdb-asn-file"`
	} `yaml:"geoip"`
	Suspicious struct {
		Enable             bool     `yaml:"enable"`
		ThresholdQnameLen  int      `yaml:"threshold-qname-len"`
		ThresholdPacketLen int      `yaml:"threshold-packet-len"`
		ThresholdSlow      float64  `yaml:"threshold-slow"`
		CommonQtypes       []string `yaml:"common-qtypes,flow"`
		UnallowedChars     []string `yaml:"unallowed-chars,flow"`
		ThresholdMaxLabels int      `yaml:"threshold-max-labels"`
		WhitelistDomains   []string `yaml:"whitelist-domains,flow"`
	} `yaml:"suspicious"`
	Extract struct {
		Enable     bool `yaml:"enable"`
		AddPayload bool `yaml:"add-payload"`
	} `yaml:"extract"`
	MachineLearning struct {
		Enable      bool `yaml:"enable"`
		AddFeatures bool `yaml:"add-features"`
	} `yaml:"machine-learning"`
	ATags struct {
		Enable bool     `yaml:"enable"`
		Tags   []string `yaml:"tags,flow"`
	} `yaml:"atags"`
	Relabeling struct {
		Enable bool               `yaml:"enable"`
		Rename []RelabelingConfig `yaml:"rename,flow"`
		Remove []RelabelingConfig `yaml:"remove,flow"`
	} `yaml:"relabeling"`
}

func GetFakeConfigTransformers

func GetFakeConfigTransformers() *ConfigTransformers

func (*ConfigTransformers) IsValid added in v0.44.0

func (c *ConfigTransformers) IsValid(userCfg map[string]interface{}) error

func (*ConfigTransformers) SetDefault

func (c *ConfigTransformers) SetDefault()

type MultiplexInOut

type MultiplexInOut struct {
	Name        string                 `yaml:"name"`
	Transforms  map[string]interface{} `yaml:"transforms"`
	Params      map[string]interface{} `yaml:",inline"`
	IsCollector bool
}

func (*MultiplexInOut) IsValid added in v0.44.0

func (c *MultiplexInOut) IsValid(userCfg map[string]interface{}) error

type MultiplexRoutes

type MultiplexRoutes struct {
	Src []string `yaml:"from,flow"`
	Dst []string `yaml:"to,flow"`
}

func (*MultiplexRoutes) IsValid added in v0.44.0

func (c *MultiplexRoutes) IsValid(userCfg map[string]interface{}) error

type PipelinesRouting added in v0.40.0

type PipelinesRouting struct {
	Default []string `yaml:"default,flow"`
	Dropped []string `yaml:"dropped,flow"`
}

func (*PipelinesRouting) IsValid added in v0.44.0

func (c *PipelinesRouting) IsValid(userCfg map[string]interface{}) error

type RelabelingConfig added in v0.43.0

type RelabelingConfig struct {
	Regex       string `yaml:"regex"`
	Replacement string `yaml:"replacement"`
}

type TLSOptions

type TLSOptions struct {
	CAFile             string
	CertFile           string
	KeyFile            string
	InsecureSkipVerify bool
	MinVersion         string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL