il log viene salvato nella collection del rispettivo mese/anno
This commit is contained in:
parent
d6744fe95d
commit
6271820f33
4 changed files with 30 additions and 70 deletions
50
consumer.go
50
consumer.go
|
@ -28,16 +28,10 @@ func contains(s []Ips, e string) bool {
|
||||||
|
|
||||||
func consumer(id int) {
|
func consumer(id int) {
|
||||||
|
|
||||||
// var conn = dbs.rdb.Get()
|
|
||||||
// defer conn.Close()
|
|
||||||
|
|
||||||
for {
|
for {
|
||||||
|
|
||||||
prod := <-consume[id]
|
prod := <-consume[id]
|
||||||
|
|
||||||
// wg.Add(1)
|
|
||||||
// defer wg.Done()
|
|
||||||
|
|
||||||
cons := consumed{
|
cons := consumed{
|
||||||
user: prod.user,
|
user: prod.user,
|
||||||
logins: make([]string, 0),
|
logins: make([]string, 0),
|
||||||
|
@ -51,9 +45,6 @@ func consumer(id int) {
|
||||||
if login == "" {
|
if login == "" {
|
||||||
log.Println("Login empty: ", prod.user)
|
log.Println("Login empty: ", prod.user)
|
||||||
cons.logins = append(cons.logins, login)
|
cons.logins = append(cons.logins, login)
|
||||||
// retval, _ := conn.Do("lrem", user, "0", login)
|
|
||||||
// log.Println("LREM retval: ", user, login, retval)
|
|
||||||
// return
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
sval := strings.Split(login, ":")
|
sval := strings.Split(login, ":")
|
||||||
|
@ -61,9 +52,6 @@ func consumer(id int) {
|
||||||
if sval[1] == "" {
|
if sval[1] == "" {
|
||||||
log.Println("Login format error: ", login, prod.user)
|
log.Println("Login format error: ", login, prod.user)
|
||||||
cons.logins = append(cons.logins, login)
|
cons.logins = append(cons.logins, login)
|
||||||
// retval, _ := conn.Do("lrem", user, "0", login)
|
|
||||||
// log.Println("LREM retval: ", user, login, retval)
|
|
||||||
// return
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// se il timestamp della riga di login non e' corretto
|
// se il timestamp della riga di login non e' corretto
|
||||||
|
@ -71,9 +59,6 @@ func consumer(id int) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Date Error: %+v - %s - %s\n", err, prod.user, login)
|
log.Printf("Date Error: %+v - %s - %s\n", err, prod.user, login)
|
||||||
cons.logins = append(cons.logins, login)
|
cons.logins = append(cons.logins, login)
|
||||||
// retval, _ := conn.Do("lrem", user, "0", login)
|
|
||||||
// log.Println("LREM retval: ", user, login, retval)
|
|
||||||
// return
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
ml := MongoLogin{
|
ml := MongoLogin{
|
||||||
|
@ -82,26 +67,20 @@ func consumer(id int) {
|
||||||
Ip: sval[2],
|
Ip: sval[2],
|
||||||
Date: time.Unix(date, 0),
|
Date: time.Unix(date, 0),
|
||||||
}
|
}
|
||||||
// cerca se esiste gia' un documento con gli stessi User & Date
|
|
||||||
/*
|
if opts.Month != ml.Date.Format("0601") {
|
||||||
docfind := []Ips{}
|
lt := dbs.mdb.DB("lastlogin").C(fmt.Sprintf("lastlogin_%s", ml.Date.Format("0601")))
|
||||||
iter := dbs.ll.Find(bson.M{"user": prod.user, "date": time.Unix(date, 0)}).Select(bson.M{"ip": 1, "_id": 0}).Iter()
|
err = lt.Insert(ml)
|
||||||
iter.All(&docfind)
|
|
||||||
if len(docfind) > 0 {
|
|
||||||
count.AddDuplicate()
|
|
||||||
if !contains(docfind, ml.Ip) {
|
|
||||||
fmt.Printf("Insert != IP for same date: user=%s - date=%s\n - newip=%s - oldip=%s\n", ml.User, ml.Date, docfind, ml.Ip)
|
|
||||||
// inserisce il login su Mongodb se gli IP sono !=
|
|
||||||
err := dbs.ll.Insert(ml)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Insert error: %+v - %s\n", err, cons.user)
|
log.Printf("Insert error: %+v - %s - %s\n", err, cons.user, lt.FullName)
|
||||||
count.AddErr()
|
count.AddErr()
|
||||||
cons.error = true
|
cons.error = true
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
if opts.Debug {
|
||||||
|
log.Printf("%s - %+v\n", lt.FullName, ml)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
*/
|
|
||||||
// inserisce il login su Mongodb
|
// inserisce il login su Mongodb
|
||||||
err = dbs.ll.Insert(ml)
|
err = dbs.ll.Insert(ml)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -110,29 +89,18 @@ func consumer(id int) {
|
||||||
cons.error = true
|
cons.error = true
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// }
|
|
||||||
// iter.Close()
|
|
||||||
|
|
||||||
if opts.Debug {
|
if opts.Debug {
|
||||||
log.Printf("%+v - %+v\n", ml)
|
log.Printf("%+v\n", ml)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if i < (len(prod.logins) - 1) {
|
|
||||||
cons.logins = append(cons.logins, login)
|
cons.logins = append(cons.logins, login)
|
||||||
// cancella da Redis la riga di login inserita
|
|
||||||
// retval, _ := conn.Do("lrem", user, "0", login)
|
|
||||||
// if opts.Debug {
|
|
||||||
// log.Println("LREM retval: ", retval, user, login)
|
|
||||||
// fmt.Println("LREM retval: ", retval, user, login)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
count.AddLog(len(prod.logins))
|
count.AddLog(len(prod.logins))
|
||||||
|
|
||||||
if opts.Debug {
|
if opts.Debug {
|
||||||
fmt.Printf("CONS (%d): user=%s logins=%d in %v - active=%d\n", id, prod.user, len(prod.logins), time.Since(start), dbs.rdb.ActiveCount())
|
fmt.Printf("CONS (%d): user=%s logins=%d in %v - active=%d\n", id, prod.user, len(prod.logins), time.Since(start), dbs.rdb.ActiveCount())
|
||||||
// log.Printf("CONS (%d): user=%s logins=%d in %v - active=%d\n", id, prod.user, len(prod.logins), time.Since(start), dbs.rdb.ActiveCount())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
remove[id] <- cons
|
remove[id] <- cons
|
||||||
|
|
15
dbs.go
15
dbs.go
|
@ -4,6 +4,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"github.com/garyburd/redigo/redis"
|
"github.com/garyburd/redigo/redis"
|
||||||
// "github.com/fzzy/radix/redis"
|
// "github.com/fzzy/radix/redis"
|
||||||
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
@ -71,17 +72,6 @@ func (db *Dbs) poolRedis() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
func (db *Dbs) connectRedis() {
|
|
||||||
var err error
|
|
||||||
db.rdb, err = redis.Dial("tcp", db.RedisUri)
|
|
||||||
if err != nil {
|
|
||||||
log.Println("Redis connect Error: ", err.Error())
|
|
||||||
os.Exit(-1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
func (db *Dbs) connectMongo() {
|
func (db *Dbs) connectMongo() {
|
||||||
var err error
|
var err error
|
||||||
db.mdb, err = mgo.Dial(db.MongoUri)
|
db.mdb, err = mgo.Dial(db.MongoUri)
|
||||||
|
@ -89,6 +79,5 @@ func (db *Dbs) connectMongo() {
|
||||||
log.Println("Mongodb connect Error: ", err.Error())
|
log.Println("Mongodb connect Error: ", err.Error())
|
||||||
os.Exit(-3)
|
os.Exit(-3)
|
||||||
}
|
}
|
||||||
db.ll = db.mdb.DB("lastlogin").C("lastlogin_" + time.Now().Format("0601"))
|
db.ll = db.mdb.DB("lastlogin").C(fmt.Sprintf("lastlogin_%s", opts.Month))
|
||||||
// db.us = db.mdb.DB("dovecot").C("userlogin")
|
|
||||||
}
|
}
|
||||||
|
|
4
main.go
4
main.go
|
@ -11,7 +11,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
_VERSION = "v2.6.1"
|
_VERSION = "v2.7.0"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -67,6 +67,8 @@ func main() {
|
||||||
fmt.Printf("Start: %+v\n", opts)
|
fmt.Printf("Start: %+v\n", opts)
|
||||||
log.Printf("Start: %+v\n", opts)
|
log.Printf("Start: %+v\n", opts)
|
||||||
|
|
||||||
|
opts.Month = start.Format("0601")
|
||||||
|
|
||||||
dbs.poolRedis()
|
dbs.poolRedis()
|
||||||
defer dbs.rdb.Close()
|
defer dbs.rdb.Close()
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ type Options struct {
|
||||||
Xymon string
|
Xymon string
|
||||||
Influxdb string
|
Influxdb string
|
||||||
Hostname string
|
Hostname string
|
||||||
|
Month string
|
||||||
}
|
}
|
||||||
|
|
||||||
func usage() {
|
func usage() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue