event groups per site instead of per controller

This commit is contained in:
davidnewhall2 2020-07-05 02:55:37 -07:00
parent ad37984924
commit 1afed6d7d9
1 changed files with 48 additions and 40 deletions

View File

@ -37,18 +37,20 @@ func (u *InputUnifi) collectControllerEvents(c *Controller) ([]interface{}, erro
func (u *InputUnifi) collectAlarms(logs []interface{}, sites []*unifi.Site, c *Controller) ([]interface{}, error) { func (u *InputUnifi) collectAlarms(logs []interface{}, sites []*unifi.Site, c *Controller) ([]interface{}, error) {
if *c.SaveAlarms { if *c.SaveAlarms {
events, err := c.Unifi.GetAlarms(sites) for _, s := range sites {
if err != nil { events, err := c.Unifi.GetAlarmsSite(s)
return logs, errors.Wrap(err, "unifi.GetAlarms()") if err != nil {
} return logs, errors.Wrap(err, "unifi.GetAlarms()")
}
for _, e := range events { for _, e := range events {
logs = append(logs, e) logs = append(logs, e)
webserver.NewInputEvent(PluginName, c.Unifi.UUID+"_alarms", &webserver.Event{Ts: e.Datetime, Msg: e.Msg, webserver.NewInputEvent(PluginName, s.Name+"_alarms", &webserver.Event{Ts: e.Datetime, Msg: e.Msg,
Tags: map[string]string{"type": "alarm", "key": e.Key, "site_id": e.SiteID, Tags: map[string]string{"type": "alarm", "key": e.Key, "site_id": e.SiteID,
"site_name": e.SiteName, "source": e.SourceName}, "site_name": e.SiteName, "source": e.SourceName},
}) })
}
} }
} }
@ -57,17 +59,19 @@ func (u *InputUnifi) collectAlarms(logs []interface{}, sites []*unifi.Site, c *C
func (u *InputUnifi) collectAnomalies(logs []interface{}, sites []*unifi.Site, c *Controller) ([]interface{}, error) { func (u *InputUnifi) collectAnomalies(logs []interface{}, sites []*unifi.Site, c *Controller) ([]interface{}, error) {
if *c.SaveAnomal { if *c.SaveAnomal {
events, err := c.Unifi.GetAnomalies(sites) for _, s := range sites {
if err != nil { events, err := c.Unifi.GetAnomaliesSite(s)
return logs, errors.Wrap(err, "unifi.GetAnomalies()") if err != nil {
} return logs, errors.Wrap(err, "unifi.GetAnomalies()")
}
for _, e := range events { for _, e := range events {
logs = append(logs, e) logs = append(logs, e)
webserver.NewInputEvent(PluginName, c.Unifi.UUID+"_anomalies", &webserver.Event{Ts: e.Datetime, Msg: e.Anomaly, webserver.NewInputEvent(PluginName, s.Name+"_anomalies", &webserver.Event{Ts: e.Datetime, Msg: e.Anomaly,
Tags: map[string]string{"type": "anomaly", "site_name": e.SiteName, "source": e.SourceName}, Tags: map[string]string{"type": "anomaly", "site_name": e.SiteName, "source": e.SourceName},
}) })
}
} }
} }
@ -76,19 +80,21 @@ func (u *InputUnifi) collectAnomalies(logs []interface{}, sites []*unifi.Site, c
func (u *InputUnifi) collectEvents(logs []interface{}, sites []*unifi.Site, c *Controller) ([]interface{}, error) { func (u *InputUnifi) collectEvents(logs []interface{}, sites []*unifi.Site, c *Controller) ([]interface{}, error) {
if *c.SaveEvents { if *c.SaveEvents {
events, err := c.Unifi.GetEvents(sites, time.Hour) for _, s := range sites {
if err != nil { events, err := c.Unifi.GetSiteEvents(s, time.Hour)
return logs, errors.Wrap(err, "unifi.GetEvents()") if err != nil {
} return logs, errors.Wrap(err, "unifi.GetEvents()")
}
for _, e := range events { for _, e := range events {
e := redactEvent(e, c.HashPII) e := redactEvent(e, c.HashPII)
logs = append(logs, e) logs = append(logs, e)
webserver.NewInputEvent(PluginName, c.Unifi.UUID+"_events", &webserver.Event{Msg: e.Msg, Ts: e.Datetime, webserver.NewInputEvent(PluginName, s.Name+"_events", &webserver.Event{Msg: e.Msg, Ts: e.Datetime,
Tags: map[string]string{"type": "event", "key": e.Key, "site_id": e.SiteID, Tags: map[string]string{"type": "event", "key": e.Key, "site_id": e.SiteID,
"site_name": e.SiteName, "source": e.SourceName}, "site_name": e.SiteName, "source": e.SourceName},
}) })
}
} }
} }
@ -97,18 +103,20 @@ func (u *InputUnifi) collectEvents(logs []interface{}, sites []*unifi.Site, c *C
func (u *InputUnifi) collectIDS(logs []interface{}, sites []*unifi.Site, c *Controller) ([]interface{}, error) { func (u *InputUnifi) collectIDS(logs []interface{}, sites []*unifi.Site, c *Controller) ([]interface{}, error) {
if *c.SaveIDS { if *c.SaveIDS {
events, err := c.Unifi.GetIDS(sites) for _, s := range sites {
if err != nil { events, err := c.Unifi.GetIDSSite(s)
return logs, errors.Wrap(err, "unifi.GetIDS()") if err != nil {
} return logs, errors.Wrap(err, "unifi.GetIDS()")
}
for _, e := range events { for _, e := range events {
logs = append(logs, e) logs = append(logs, e)
webserver.NewInputEvent(PluginName, c.Unifi.UUID+"_ids", &webserver.Event{Ts: e.Datetime, Msg: e.Msg, webserver.NewInputEvent(PluginName, s.Name+"_ids", &webserver.Event{Ts: e.Datetime, Msg: e.Msg,
Tags: map[string]string{"type": "ids", "key": e.Key, "site_id": e.SiteID, Tags: map[string]string{"type": "ids", "key": e.Key, "site_id": e.SiteID,
"site_name": e.SiteName, "source": e.SourceName}, "site_name": e.SiteName, "source": e.SourceName},
}) })
}
} }
} }