2024-08-01 00:45:07 +08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2024-08-29 00:42:11 +08:00
|
|
|
"gopkg.in/ini.v1"
|
|
|
|
config "logagent/conf"
|
2024-08-01 00:45:07 +08:00
|
|
|
"logagent/kafka"
|
|
|
|
"logagent/taillog"
|
2024-08-29 00:42:11 +08:00
|
|
|
"time"
|
2024-08-01 00:45:07 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
//logagent的入口程序
|
|
|
|
|
2024-08-29 00:42:11 +08:00
|
|
|
var (
|
|
|
|
cfg = new(config.AppConfig)
|
|
|
|
)
|
|
|
|
|
2024-08-01 00:45:07 +08:00
|
|
|
func run() {
|
|
|
|
//1.读取日志
|
2024-08-29 00:42:11 +08:00
|
|
|
for {
|
|
|
|
select {
|
|
|
|
case line := <-taillog.ReadChan():
|
|
|
|
//2.发送给kafka
|
|
|
|
kafka.SendToKafka(cfg.KafkaConf.Topic, line.Text)
|
|
|
|
default:
|
|
|
|
time.Sleep(time.Second)
|
|
|
|
}
|
|
|
|
}
|
2024-08-01 00:45:07 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
func main() {
|
2024-08-29 00:42:11 +08:00
|
|
|
//0.加载配置文件
|
|
|
|
//cfg, err := ini.Load("./conf/config.ini")
|
|
|
|
//if err != nil {
|
|
|
|
// fmt.Println("load ini config err", err)
|
|
|
|
//}
|
|
|
|
//fmt.Println(cfg.Section("kafka").Key("address"))
|
|
|
|
//fmt.Println(cfg.Section("kafka").Key("topic"))
|
|
|
|
//fmt.Println(cfg.Section("taillog").Key("path"))
|
|
|
|
err := ini.MapTo(cfg, "./conf/config.ini")
|
|
|
|
if err != nil {
|
|
|
|
fmt.Println("load ini err:", err)
|
|
|
|
}
|
2024-08-01 00:45:07 +08:00
|
|
|
//1.初始化kafka连接
|
2024-08-29 00:42:11 +08:00
|
|
|
err = kafka.Init([]string{cfg.KafkaConf.Address})
|
2024-08-01 00:45:07 +08:00
|
|
|
if err != nil {
|
|
|
|
fmt.Printf("init kafka failed,error:%v\n", err)
|
|
|
|
return
|
|
|
|
}
|
2024-08-29 00:42:11 +08:00
|
|
|
fmt.Println("init kafka success")
|
2024-08-01 00:45:07 +08:00
|
|
|
//2.打开日志文件准备收集日志
|
2024-08-29 00:42:11 +08:00
|
|
|
err = taillog.Init(cfg.TailLog.FileName)
|
2024-08-01 00:45:07 +08:00
|
|
|
if err != nil {
|
|
|
|
fmt.Printf("taillog init failed,error:%v\n", err)
|
|
|
|
return
|
|
|
|
}
|
2024-08-29 00:42:11 +08:00
|
|
|
fmt.Println("init taillog success")
|
|
|
|
run()
|
|
|
|
|
2024-08-01 00:45:07 +08:00
|
|
|
}
|