56 lines
1000 B
Go
56 lines
1000 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"os"
|
|
|
|
log "github.com/golang/glog"
|
|
"github.com/zr-hebo/sniffer-agent/capture"
|
|
"github.com/zr-hebo/sniffer-agent/communicator"
|
|
"github.com/zr-hebo/sniffer-agent/exporter"
|
|
sd "github.com/zr-hebo/sniffer-agent/session-dealer"
|
|
"github.com/zr-hebo/sniffer-agent/session-dealer/mysql"
|
|
)
|
|
|
|
var (
|
|
logLevel string
|
|
)
|
|
|
|
func init() {
|
|
flag.StringVar(&logLevel, "log_level", "warn", "log level. Default is info")
|
|
}
|
|
|
|
func initLog() {
|
|
}
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
prepareEnv()
|
|
|
|
go communicator.Server()
|
|
mainServer()
|
|
}
|
|
|
|
func mainServer() {
|
|
ept := exporter.NewExporter()
|
|
networkCard := capture.NewNetworkCard()
|
|
log.Info("begin listen")
|
|
for queryPiece := range networkCard.Listen() {
|
|
err := ept.Export(queryPiece)
|
|
if err != nil {
|
|
log.Error(err.Error())
|
|
}
|
|
queryPiece.Recovery()
|
|
}
|
|
|
|
log.Errorf("cannot get network package from %s", capture.DeviceName)
|
|
os.Exit(1)
|
|
}
|
|
|
|
func prepareEnv() {
|
|
initLog()
|
|
sd.CheckParams()
|
|
mysql.PrepareEnv()
|
|
capture.ShowLocalIP()
|
|
}
|