Keegan-y / logCollect

Go语言实现的日志收集服务,由LogAgent、LogTransfer和LogManager三部分组成。

Home Page:https://huangzhongde.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

logCollect 日志收集服务

travis-ci Code Grade Code Quality Score Go Report Card

软件架构

architecture


说明

通过在运维平台上配置日志收集项,logAgent从etcd中获取要收集的日志信息从业务服务器读取日志信息,发往kafka,logTransfer负责从kafka读取日志,写入到Elasticsearch中,通过Kibana进行日志检索。系统性能数据的收集有Node_Exporter进行采集,Prometheus拉取入库,将告警信息推给AlertManager,最后通过Grafana进行可视化展示。


v0.1.0版本实现的功能

  • 读取日志文件

  • 写入到kafka中

  • 可以自行配置要收集的日志文件

v0.2.0版本实现的功能

  • 从etcd中获取日志收集项

  • logAgent可以同时运行多个日志收集任务

  • 实现实时配置项变更

  • 根据当前服务器的IP地址获取配置项

v0.3.0版本增加logTransfer服务

  • 实现日志入库到ES

  • 使用第三方日志框架logrus保存日志

  • 支持日志文件切割

  • 加入消费组,支持多个topic

  • tail包从上次读取的位置开始读

v0.4.0版本增加logManager服务

logManager是有Beego框架搭建起来的web服务,主要是为了方便管理日志收集项

  • 从后台界面添加主机和日志收集项

  • Cookie和Session实现

  • 后台访问鉴权

  • CURD增删改查操作完成

v0.5.0版本logManager优化

  • 使用redis进行缓存

  • 实现从logManager进行添加/删除/修改日志收集项

  • logAgent获取logManager界面增删改的收集项

开发计划

  • logManager使用redis进行缓存

  • logManager添加收集项之后将配置发给etcd

  • logAgent从etcd获取到收集项进行收集并监听变更

  • logTransfer从etcd获取配置写ES

logManager-login

logManager-dashboard

logManager-host

配套教程

Go运维开发之日志收集(1)收集应用程序到kafka中

Go运维开发之日志收集(2)从etcd中获取配置信息

Go运维开发之日志收集(3)根据etcd配置项创建多个tailTask

Go运维开发之日志收集(4)监视etcd配置项的变更

Go运维开发之日志收集(5)根据IP地址去拉取配置日志收集项

Go运维开发之日志收集(6)从kafka中获取日志信息

Go运维开发之日志收集(7)将日志入库到Elasticsearch并通过Kibana进行展示

Go运维开发之日志收集(8)将应用程序日志写入到文件中

Go运维开发之日志收集(9)logTransfer支持多个Topic

About

Go语言实现的日志收集服务,由LogAgent、LogTransfer和LogManager三部分组成。

https://huangzhongde.cn

License:Apache License 2.0


Languages

Language:Go 66.4%Language:CSS 17.3%Language:Smarty 14.9%Language:Shell 1.4%