# 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
```
如果您喜欢的话,欢迎打赏
