log-agent/main.go

75 lines
1.6 KiB
Go

package main
import (
"fmt"
"gopkg.in/ini.v1"
config "logagent/conf"
"logagent/etcd"
"logagent/kafka"
"logagent/taillog"
"time"
)
//logagent的入口程序
var (
cfg = new(config.AppConfig)
)
//func run() {
// //1.读取日志
// for {
// select {
// case line := <-taillog.ReadChan():
// //2.发送给kafka
// kafka.SendToKafka(cfg.KafkaConf.Topic, line.Text)
// default:
// time.Sleep(time.Second)
// }
// }
//}
func main() {
//1.读取配置文件
err := ini.MapTo(cfg, "./conf/config.ini")
if err != nil {
fmt.Println("load ini err:", err)
}
//1.初始化kafka连接
err = kafka.Init([]string{cfg.KafkaConf.Address}, cfg.KafkaConf.ChanMaxSize)
if err != nil {
fmt.Printf("init kafka failed,error:%v\n", err)
return
}
fmt.Println("init kafka success")
//2.初始化etcd
err = etcd.Init(cfg.EtcdConf.Address, time.Duration(cfg.EtcdConf.Timeout)*time.Second)
if err != nil {
fmt.Printf("init etcd failed,error:%v\n", err)
}
//1.从etcd中获取日志收集项的配置信息
logEntryConf, err := etcd.GetConf(cfg.EtcdConf.Key)
if err != nil {
fmt.Printf("get etcd failed,error:%v\n", err)
return
}
fmt.Printf("get conf from etcd success,logEntryConf:%#v\n", logEntryConf)
//派一个哨兵去监视etcd配置的变化
for k, v := range logEntryConf {
fmt.Printf("index:%v,value:%v\n", k, v)
}
//收集日志发送到kafka
taillog.Init(logEntryConf)
go etcd.Watcher(cfg.EtcdConf.Key)
//2.打开日志文件准备收集日志
//err = taillog.Init(cfg.TailLog.FileName)
//if err != nil {
// fmt.Printf("taillog init failed,error:%v\n", err)
// return
//}
//fmt.Println("init taillog success")
//run()
}