Kaynağa Gözat

added flag crowdsec --warning (#1461)

mmetc 3 yıl önce
ebeveyn
işleme
d71279f023

+ 1 - 1
cmd/crowdsec-cli/capi.go

@@ -98,7 +98,7 @@ func NewCapiCmd() *cobra.Command {
 				fmt.Printf("%s\n", string(apiConfigDump))
 			}
 
-			log.Warningf(ReloadMessage())
+			log.Warning(ReloadMessage())
 		},
 	}
 	cmdCapiRegister.Flags().StringVarP(&outputFile, "file", "f", "", "output file destination")

+ 1 - 1
cmd/crowdsec-cli/console.go

@@ -108,7 +108,7 @@ After running this command your will need to validate the enrollment in the weba
 				log.Fatalf("Could not enroll instance: %s", err)
 			}
 			if resp.Response.StatusCode == 200 && !overwrite {
-				log.Warningf("Instance already enrolled. You can use '--overwrite' to force enroll")
+				log.Warning("Instance already enrolled. You can use '--overwrite' to force enroll")
 				return
 			}
 

+ 1 - 1
cmd/crowdsec-cli/lapi.go

@@ -111,7 +111,7 @@ Keep in mind the machine needs to be validated by an administrator on LAPI side
 			} else {
 				fmt.Printf("%s\n", string(apiConfigDump))
 			}
-			log.Warningf(ReloadMessage())
+			log.Warning(ReloadMessage())
 		},
 	}
 	cmdLapiRegister.Flags().StringVarP(&apiURL, "url", "u", "", "URL of the API (ie. http://127.0.0.1)")

+ 1 - 1
cmd/crowdsec-cli/metrics.go

@@ -400,7 +400,7 @@ func NewMetricsCmd() *cobra.Command {
 				log.Fatalf(err.Error())
 			}
 			if !csConfig.Prometheus.Enabled {
-				log.Warningf("Prometheus is not enabled, can't show metrics")
+				log.Warning("Prometheus is not enabled, can't show metrics")
 				os.Exit(1)
 			}
 

+ 2 - 2
cmd/crowdsec/crowdsec.go

@@ -123,7 +123,7 @@ func runCrowdsec(cConfig *csconfig.Config, parsers *parser.Parsers) error {
 		}
 
 	}
-	log.Warningf("Starting processing data")
+	log.Info("Starting processing data")
 
 	if err := acquisition.StartAcquisition(dataSources, inputLineChan, &acquisTomb); err != nil {
 		log.Fatalf("starting acquisition error : %s", err)
@@ -228,7 +228,7 @@ func waitOnTomb() {
 		case <-acquisTomb.Dead():
 			/*if it's acquisition dying it means that we were in "cat" mode.
 			while shutting down, we need to give time for all buckets to process in flight data*/
-			log.Warningf("Acquisition is finished, shutting down")
+			log.Warning("Acquisition is finished, shutting down")
 			/*
 				While it might make sense to want to shut-down parser/buckets/etc. as soon as acquisition is finished,
 				we might have some pending buckets: buckets that overflowed, but whose LeakRoutine are still alive because they

+ 10 - 4
cmd/crowdsec/main.go

@@ -57,6 +57,7 @@ type Flags struct {
 	TraceLevel     bool
 	DebugLevel     bool
 	InfoLevel      bool
+	WarnLevel      bool
 	PrintVersion   bool
 	SingleFileType string
 	Labels         map[string]string
@@ -181,8 +182,9 @@ func (f *Flags) Parse() {
 
 	flag.StringVar(&f.ConfigFile, "c", csconfig.DefaultConfigPath("config.yaml"), "configuration file")
 	flag.BoolVar(&f.TraceLevel, "trace", false, "VERY verbose")
-	flag.BoolVar(&f.DebugLevel, "debug", false, "print debug-level on stdout")
-	flag.BoolVar(&f.InfoLevel, "info", false, "print info-level on stdout")
+	flag.BoolVar(&f.DebugLevel, "debug", false, "print debug-level on stderr")
+	flag.BoolVar(&f.InfoLevel, "info", false, "print info-level on stderr")
+	flag.BoolVar(&f.WarnLevel, "warning", false, "print warning-level on stderr")
 	flag.BoolVar(&f.PrintVersion, "version", false, "display version")
 	flag.StringVar(&f.OneShotDSN, "dsn", "", "Process a single data source in time-machine")
 	flag.StringVar(&f.SingleFileType, "type", "", "Labels.type for file in time-machine")
@@ -224,14 +226,18 @@ func LoadConfig(cConfig *csconfig.Config) error {
 		return errors.New("You must run at least the API Server or crowdsec")
 	}
 
-	if flags.DebugLevel {
-		logLevel := log.DebugLevel
+	if flags.WarnLevel {
+		logLevel := log.WarnLevel
 		cConfig.Common.LogLevel = &logLevel
 	}
 	if flags.InfoLevel || cConfig.Common.LogLevel == nil {
 		logLevel := log.InfoLevel
 		cConfig.Common.LogLevel = &logLevel
 	}
+	if flags.DebugLevel {
+		logLevel := log.DebugLevel
+		cConfig.Common.LogLevel = &logLevel
+	}
 	if flags.TraceLevel {
 		logLevel := log.TraceLevel
 		cConfig.Common.LogLevel = &logLevel

+ 2 - 2
cmd/crowdsec/metrics.go

@@ -67,11 +67,11 @@ func registerPrometheus(config *csconfig.PrometheusCfg) {
 		return
 	}
 	if config.ListenAddr == "" {
-		log.Warningf("prometheus is enabled, but the listen address is empty, using '127.0.0.1'")
+		log.Warning("prometheus is enabled, but the listen address is empty, using '127.0.0.1'")
 		config.ListenAddr = "127.0.0.1"
 	}
 	if config.ListenPort == 0 {
-		log.Warningf("prometheus is enabled, but the listen port is empty, using '6060'")
+		log.Warning("prometheus is enabled, but the listen port is empty, using '6060'")
 		config.ListenPort = 6060
 	}
 

+ 1 - 1
cmd/crowdsec/pour.go

@@ -31,7 +31,7 @@ func runPour(input chan types.Event, holders []leaky.BucketFactory, buckets *lea
 						if err := z.UnmarshalText([]byte(parsed.MarshaledTime)); err != nil {
 							log.Warningf("Failed to unmarshal time from event '%s' : %s", parsed.MarshaledTime, err)
 						} else {
-							log.Warningf("Starting buckets garbage collection ...")
+							log.Warning("Starting buckets garbage collection ...")
 							if err = leaky.GarbageCollectBuckets(*z, buckets); err != nil {
 								return fmt.Errorf("failed to start bucket GC : %s", err)
 							}

+ 3 - 3
cmd/crowdsec/serve.go

@@ -191,7 +191,7 @@ func HandleSignals(cConfig *csconfig.Config) error {
 			switch s {
 			// kill -SIGHUP XXXX
 			case syscall.SIGHUP:
-				log.Warningf("SIGHUP received, reloading")
+				log.Warning("SIGHUP received, reloading")
 				if err := shutdown(s, cConfig); err != nil {
 					exitChan <- errors.Wrap(err, "failed shutdown")
 					break Loop
@@ -202,7 +202,7 @@ func HandleSignals(cConfig *csconfig.Config) error {
 				}
 			// ctrl+C, kill -SIGINT XXXX, kill -SIGTERM XXXX
 			case os.Interrupt, syscall.SIGTERM:
-				log.Warningf("SIGTERM received, shutting down")
+				log.Warning("SIGTERM received, shutting down")
 				if err := shutdown(s, cConfig); err != nil {
 					exitChan <- errors.Wrap(err, "failed shutdown")
 					break Loop
@@ -214,7 +214,7 @@ func HandleSignals(cConfig *csconfig.Config) error {
 
 	err := <-exitChan
 	if err == nil {
-		log.Warningf("Crowdsec service shutting down")
+		log.Warning("Crowdsec service shutting down")
 	}
 	return err
 }

+ 1 - 1
pkg/apiserver/apic.go

@@ -475,7 +475,7 @@ func (a *apic) Pull() error {
 			break
 		}
 		if !toldOnce {
-			log.Warningf("scenario list is empty, will not pull yet")
+			log.Warning("scenario list is empty, will not pull yet")
 			toldOnce = true
 		}
 		time.Sleep(1 * time.Second)

+ 1 - 1
pkg/csconfig/api.go

@@ -207,7 +207,7 @@ func (c *Config) LoadAPIServer() error {
 			return err
 		}
 	} else {
-		log.Warningf("crowdsec local API is disabled")
+		log.Warning("crowdsec local API is disabled")
 		c.DisableAPI = true
 	}
 

+ 2 - 2
pkg/csconfig/crowdsec_service.go

@@ -39,7 +39,7 @@ func (c *Config) LoadCrowdsec() error {
 	}
 
 	if c.Crowdsec == nil {
-		log.Warningf("crowdsec agent is disabled")
+		log.Warning("crowdsec agent is disabled")
 		c.DisableAgent = true
 		return nil
 	}
@@ -68,7 +68,7 @@ func (c *Config) LoadCrowdsec() error {
 		c.Crowdsec.AcquisitionFiles = append(c.Crowdsec.AcquisitionFiles, files...)
 	}
 	if c.Crowdsec.AcquisitionDirPath == "" && c.Crowdsec.AcquisitionFilePath == "" {
-		log.Warningf("no acquisition_path nor acquisition_dir")
+		log.Warning("no acquisition_path nor acquisition_dir")
 	}
 	if err := c.LoadSimulation(); err != nil {
 		return errors.Wrap(err, "load error (simulation)")

+ 1 - 1
pkg/cwhub/helpers.go

@@ -31,7 +31,7 @@ func chooseHubBranch() (string, error) {
 	}
 
 	if csVersion == "" {
-		log.Warningf("Crowdsec version is not set, using master branch for the hub")
+		log.Warning("Crowdsec version is not set, using master branch for the hub")
 		return "master", nil
 	}
 

+ 3 - 3
pkg/database/alerts.go

@@ -182,7 +182,7 @@ func (c *Client) UpdateCommunityBlocklist(alertItem *models.Alert) (int, int, in
 			var start_ip, start_sfx, end_ip, end_sfx int64
 			var sz int
 			if decisionItem.Duration == nil {
-				log.Warningf("nil duration in community decision")
+				log.Warning("nil duration in community decision")
 				continue
 			}
 			duration, err := time.ParseDuration(*decisionItem.Duration)
@@ -190,7 +190,7 @@ func (c *Client) UpdateCommunityBlocklist(alertItem *models.Alert) (int, int, in
 				return 0, 0, 0, errors.Wrapf(ParseDurationFail, "decision duration '%v' : %s", decisionItem.Duration, err)
 			}
 			if decisionItem.Scope == nil {
-				log.Warningf("nil scope in community decision")
+				log.Warning("nil scope in community decision")
 				continue
 			}
 			/*if the scope is IP or Range, convert the value to integers */
@@ -218,7 +218,7 @@ func (c *Client) UpdateCommunityBlocklist(alertItem *models.Alert) (int, int, in
 
 			/*for bulk delete of duplicate decisions*/
 			if decisionItem.Value == nil {
-				log.Warningf("nil value in community decision")
+				log.Warning("nil value in community decision")
 				continue
 			}
 			valueList = append(valueList, *decisionItem.Value)

+ 2 - 2
pkg/database/database.go

@@ -150,7 +150,7 @@ func (c *Client) StartFlushScheduler(config *csconfig.FlushDBCfg) (*gocron.Sched
 			config.AgentsGC.LoginPasswordDuration = &duration
 		}
 		if config.AgentsGC.Api != nil {
-			log.Warningf("agents auto-delete for API auth is not supported (use cert or login_password)")
+			log.Warning("agents auto-delete for API auth is not supported (use cert or login_password)")
 		}
 	}
 	if config.BouncersGC != nil {
@@ -169,7 +169,7 @@ func (c *Client) StartFlushScheduler(config *csconfig.FlushDBCfg) (*gocron.Sched
 			config.BouncersGC.ApiDuration = &duration
 		}
 		if config.BouncersGC.LoginPassword != nil {
-			log.Warningf("bouncers auto-delete for login/password auth is not supported (use cert or api)")
+			log.Warning("bouncers auto-delete for login/password auth is not supported (use cert or api)")
 		}
 	}
 	baJob, err := scheduler.Every(1).Minute().Do(c.FlushAgentsAndBouncers, config.AgentsGC, config.BouncersGC)

+ 9 - 9
pkg/leakybucket/buckets_test.go

@@ -69,7 +69,7 @@ func TestBucket(t *testing.T) {
 func watchTomb(tomb *tomb.Tomb) {
 	for {
 		if tomb.Alive() == false {
-			log.Warningf("Tomb is dead")
+			log.Warning("Tomb is dead")
 			break
 		}
 		time.Sleep(100 * time.Millisecond)
@@ -158,7 +158,7 @@ func testFile(t *testing.T, file string, bs string, holders []BucketFactory, res
 			t.Errorf("Failed to load testfile '%s' yaml error : %v", file, err)
 			return false
 		}
-		log.Warningf("end of test file")
+		log.Warning("end of test file")
 	}
 	var latest_ts time.Time
 	for _, in := range tf.Lines {
@@ -181,10 +181,10 @@ func testFile(t *testing.T, file string, bs string, holders []BucketFactory, res
 			t.Fatalf("Failed to pour : %s", err)
 		}
 		if !ok {
-			log.Warningf("Event wasn't poured")
+			log.Warning("Event wasn't poured")
 		}
 	}
-	log.Warningf("Done pouring !")
+	log.Warning("Done pouring !")
 
 	time.Sleep(1 * time.Second)
 
@@ -194,7 +194,7 @@ POLL_AGAIN:
 	for fails < 2 {
 		select {
 		case ret := <-response:
-			log.Warningf("got one result")
+			log.Warning("got one result")
 			results = append(results, ret)
 			if ret.Overflow.Reprocess {
 				log.Errorf("Overflow being reprocessed.")
@@ -203,13 +203,13 @@ POLL_AGAIN:
 					t.Fatalf("Failed to pour : %s", err)
 				}
 				if !ok {
-					log.Warningf("Event wasn't poured")
+					log.Warning("Event wasn't poured")
 				}
 				goto POLL_AGAIN
 			}
 			fails = 0
 		default:
-			log.Warningf("no more results")
+			log.Warning("no more results")
 			time.Sleep(1 * time.Second)
 			fails += 1
 		}
@@ -223,7 +223,7 @@ POLL_AGAIN:
 
 	for {
 		if len(tf.Results) == 0 && len(results) == 0 {
-			log.Warningf("Test is successful")
+			log.Warning("Test is successful")
 			if dump {
 				if tmpFile, err = DumpBucketsStateAt(latest_ts, ".", buckets); err != nil {
 					t.Fatalf("Failed dumping bucket state : %s", err)
@@ -305,6 +305,6 @@ POLL_AGAIN:
 			log.Errorf("we expected: %s", spew.Sdump(tf.Results))
 			return false
 		}
-		log.Warningf("entry valid at end of loop")
+		log.Warning("entry valid at end of loop")
 	}
 }

+ 1 - 1
pkg/leakybucket/manager_load.go

@@ -266,7 +266,7 @@ func LoadBucket(bucketFactory *BucketFactory, tomb *tomb.Tomb) error {
 	}
 
 	if bucketFactory.Filter == "" {
-		bucketFactory.logger.Warningf("Bucket without filter, abort.")
+		bucketFactory.logger.Warning("Bucket without filter, abort.")
 		return fmt.Errorf("bucket without filter directive")
 	}
 	bucketFactory.RunTimeFilter, err = expr.Compile(bucketFactory.Filter, expr.Env(exprhelpers.GetExprEnv(map[string]interface{}{"evt": &types.Event{}})))

+ 1 - 1
pkg/leakybucket/overflows.go

@@ -198,7 +198,7 @@ func EventsFromQueue(queue *Queue) []*models.Event {
 				*ovflwEvent.Timestamp = string(raw)
 			}
 		} else {
-			log.Warningf("Event has no parsed time, no runtime timestamp")
+			log.Warning("Event has no parsed time, no runtime timestamp")
 		}
 
 		events = append(events, &ovflwEvent)

+ 1 - 1
pkg/parser/enrich_date.go

@@ -47,7 +47,7 @@ func GenDateParse(date string) (string, time.Time) {
 	now := time.Now().UTC()
 	retstr, err := now.MarshalText()
 	if err != nil {
-		log.Warningf("Failed marshaling current time")
+		log.Warning("Failed marshaling current time")
 		return "", time.Time{}
 	}
 	return string(retstr), now

+ 1 - 1
pkg/parser/node.go

@@ -193,7 +193,7 @@ func (n *Node) process(p *types.Event, ctx UnixParserCtx, expressionEnv map[stri
 		output, err := expr.Run(e.Filter, cachedExprEnv)
 		if err != nil {
 			clog.Warningf("failed to run whitelist expr : %v", err)
-			clog.Debugf("Event leaving node : ko")
+			clog.Debug("Event leaving node : ko")
 			return false, nil
 		}
 		switch out := output.(type) {

+ 1 - 1
pkg/parser/parsing_test.go

@@ -334,7 +334,7 @@ reCheck:
 }
 
 func testFile(testSet []TestFile, pctx UnixParserCtx, nodes []Node) bool {
-	log.Warningf("Going to process one test set")
+	log.Warning("Going to process one test set")
 	for _, tf := range testSet {
 		//func testSubSet(testSet TestFile, pctx UnixParserCtx, nodes []Node) (bool, error) {
 		testOk, err := testSubSet(tf, pctx, nodes)