72 lines
1.6 KiB
Go
72 lines
1.6 KiB
Go
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"gopkg.in/ini.v1"
|
||
config "logagent/conf"
|
||
"logagent/etcd"
|
||
"logagent/kafka"
|
||
"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})
|
||
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("/xxx/")
|
||
if err != nil {
|
||
fmt.Printf("get etcd failed,error:%v\n", err)
|
||
return
|
||
}
|
||
fmt.Printf("get conf from etcd success,logEntryConf:%#v\n", logEntryConf)
|
||
for k, v := range logEntryConf {
|
||
fmt.Printf("index:%v,value:%v\n", k, v)
|
||
}
|
||
//2.派一个哨兵去监视日志收集项的变化(有变化急事通知我的LogAgent,实现热加载)
|
||
|
||
//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()
|
||
|
||
}
|