log-agent/main.go

61 lines
1.2 KiB
Go
Raw Normal View History

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
}