add example config
This commit is contained in:
parent
b93b76e1de
commit
16fde27436
|
|
@ -3,3 +3,22 @@
|
||||||
Loki Output Plugin for UniFi Poller
|
Loki Output Plugin for UniFi Poller
|
||||||
|
|
||||||
This plugin writes UniFi Events and IDS data to Loki. Maybe Alarms too.
|
This plugin writes UniFi Events and IDS data to Loki. Maybe Alarms too.
|
||||||
|
|
||||||
|
```
|
||||||
|
[loki]
|
||||||
|
# URL is the only required setting for Loki.
|
||||||
|
url = "http://192.168.3.2:3100"
|
||||||
|
|
||||||
|
# How often to poll UniFi and report to Loki.
|
||||||
|
interval = "2m"
|
||||||
|
|
||||||
|
# How long to wait for Loki responses.
|
||||||
|
timeout = "5s"
|
||||||
|
|
||||||
|
# Set these to use basic auth.
|
||||||
|
user = ""
|
||||||
|
pass = ""
|
||||||
|
|
||||||
|
# Used for auth-less multi-tenant.
|
||||||
|
tenant_id = ""
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ import (
|
||||||
const (
|
const (
|
||||||
maxInterval = time.Hour
|
maxInterval = time.Hour
|
||||||
minInterval = 10 * time.Second
|
minInterval = 10 * time.Second
|
||||||
defaultInterval = time.Minute
|
defaultTimeout = 10 * time.Second
|
||||||
defaultTimeout = 8 * time.Second
|
defaultInterval = 2 * time.Minute
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
@ -65,16 +65,16 @@ func (l *Loki) Run(collect poller.Collect) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
l.validateConfig()
|
l.ValidateConfig()
|
||||||
l.PollController()
|
l.PollController()
|
||||||
l.LogErrorf("Loki Output Plugin Stopped!")
|
l.LogErrorf("Loki Output Plugin Stopped!")
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// validateConfig sets initial "last" update time. Also creates an http client,
|
// ValidateConfig sets initial "last" update time. Also creates an http client,
|
||||||
// makes sure URL is sane, and sets interval within min/max limits.
|
// makes sure URL is sane, and sets interval within min/max limits.
|
||||||
func (l *Loki) validateConfig() {
|
func (l *Loki) ValidateConfig() {
|
||||||
if l.Interval.Duration > maxInterval {
|
if l.Interval.Duration > maxInterval {
|
||||||
l.Interval.Duration = maxInterval
|
l.Interval.Duration = maxInterval
|
||||||
} else if l.Interval.Duration < minInterval {
|
} else if l.Interval.Duration < minInterval {
|
||||||
|
|
@ -107,7 +107,7 @@ func (l *Loki) pollController(start time.Time) error {
|
||||||
return errors.Wrap(err, "event fetch for Loki failed")
|
return errors.Wrap(err, "event fetch for Loki failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
report := &Report{
|
r := &Report{
|
||||||
Events: events,
|
Events: events,
|
||||||
Start: start,
|
Start: start,
|
||||||
Logger: l.Collect,
|
Logger: l.Collect,
|
||||||
|
|
@ -115,7 +115,7 @@ func (l *Loki) pollController(start time.Time) error {
|
||||||
Last: l.last,
|
Last: l.last,
|
||||||
}
|
}
|
||||||
|
|
||||||
return l.ReportEvents(report)
|
return l.ReportEvents(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReportEvents should be easy to test.
|
// ReportEvents should be easy to test.
|
||||||
|
|
@ -131,8 +131,8 @@ func (l *Loki) ReportEvents(r *Report) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
l.last = r.Start
|
l.last = r.Start
|
||||||
l.Logf("Events sent to Loki. Events: %d, IDS: %d, Dur: %v", r.Eve, r.IDS,
|
l.Logf("Events sent to Loki. Events: %d, IDS: %d, Dur: %v",
|
||||||
time.Since(l.last).Round(time.Millisecond))
|
r.Eve, r.IDS, time.Since(l.last).Round(time.Millisecond))
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue