# log-collect **Repository Path**: hackerwjz/log-collect ## Basic Information - **Project Name**: log-collect - **Description**: golang开发的一套日志收集系统 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-03-16 - **Last Updated**: 2023-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### **golang日志收集系统** #### 概要 对于多机部署的环境下,日志分散成为一个比较头疼的问题,为了收集多机环境下的日志, 一般需要借助类似ELK等第三方工具来完成日志收集及分类,然而ELK相对较重,因此闲来无事 开发了一套简单的日志收集工具。 #### 实现原理 实现原理很简单,在需要收集的日志服务器配置日志文件位置,程序执行类似tail -f命令追踪日志文件 的变化,将最新生成的日志发送到指定master服务器,而master接收到日志后将日志以json格式写入到指定路径中。 master收集到的日志内容以天为单位,分割文件。 #### 配置方法 1. 安装supervisor,如果已经安装,请忽略此步 ``` sudo su yum install -y supervisor /usr/bin/supervisord vim /etc/supervisord.conf ``` 添加如下内容(如果已经有该配置,请忽略) ``` [include] files = supervisord.d/*.ini mkdir /etc/supervisord.d/ ``` supervisor添加开机启动 ``` chmod +x /etc/init.d/supervisord chkconfig --add supervisord chkconfig supervisord on ``` 2. 下载程序 1. 通过git方式下载程序 ``` cd /usr/local/ git clone https://gitee.com/LearingIt/log-collect.git cd log-collect chmod +x main ``` 2. 通过包文件下载 ``` cd /usr/local/ wget https://gitee.com/LearingIt/log-collect.tar.gz tar -zxvf log-collect.tar.gz cd log-collect chmod +x main ``` 3. 安装及配置 1. master服务器配置 ``` cp -R /usr/local/log-collect /usr/local/log-collect-master cp /usr/local/log_collect.ini /etc/supervisord.d/log_collect_master.ini vim /etc/supervisord.d/log_collect_master.ini ``` 修改对应的内容如下 ``` [program:log_collect_moster] command = /usr/local/log-collect-master/main directory = /usr/local/log-collect-master/ ``` 修改配置文件 ``` vim /usr/local/log-collect-master/config/default/config.yml ``` 修改如下位置 ``` # 收集到的日志存放配置 log: outputPaths: # 收集到的文件内容存放位置 - "./master.log" # 启动监听地址和端口 service: id: "master" server: addr: "0.0.0.0" port: 40886 ``` 启动master服务 ``` supervisorctl reload ``` 查看master运行状态 ``` supervisorctl status ``` 2. slave配置 ``` cp /usr/local/log_collect.ini /etc/supervisord.d/log_collect.ini vim /etc/supervisord.d/log_collect.ini ``` 修改对应的内容如下 ``` [program:log_collect] command = /usr/local/log-collect/main directory = /usr/local/log-collect/ ``` 修改配置文件 ``` vim /usr/local/log-collect/config/default/config.yml ``` 修改如下位置 ``` # 被收集的日志配置 collectLog: watchLogs: - "日志文件位置1/*log" - "日志文件位置2/*log" - "日志文件位置3/*log" ... log: outputPaths: # 当前程序生成的日志配置 - "./slave.log" # 启动监听地址和端口 service: id: "slave" server: # master安装的主机IP地址 addr: "127.0.0.1" port: 40886 ``` 启动master服务 ``` supervisorctl reload ``` 查看master运行状态 ``` supervisorctl status ``` 4. 查看日志 1. master机器查看收集的日志 ``` tail -f /usr/local/log-collect/logs/*master.log ``` 2. slave机器查看发送错误日志 ``` tail -f /usr/local/log-collect/logs/*slave.log ``` 如果您喜欢的话,欢迎打赏 微信打赏 支付宝打赏