golang消费kafka实现聚合日志

在这里插入图片描述

背景

现状

在这里插入图片描述

企业开发中会有很多服务,同时会发布多个环境,环境就代表着多个服务器,每次查看日志,先查看docker发布到了哪个服务器上,然后再找到服务器,很繁琐。

在这里插入图片描述
消息异步存储,通过kafka接受消息日志,用golang写的一个中间件去消费,生成对应的服务日志文件,然后将中间件改成linux 下 systemctl 命令,把配置发到服务外面,每次更新文件,重启systemctl 服务即可。就不用每次再到各个服务器上面查看日志了。

gokafka代码

https://github.com/fafeidou/go-kafka

部署到日志服务器

执行命令,打包,golang支持交叉编译,也是跨平台的。

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build go-kafka.go

配置systemctl 服务

脚本准备

gokafka-start.sh

#! /bin/sh
/root/go-kafka

gokafka-shutdown.sh

#! /bin/sh
kill -9 $(pidof go-kafka)

go-restart.sh

#! /bin/sh
kill -9 $(pidof go-kafka)
/root/go-kafka

编写systemctl 脚本

vim /usr/lib/systemd/system/gokafka.service

[Unit]
Description=go kafka
After=go kafka service
 
[Service]
Type=simple
ExecStart=/usr/bin/gokafka-start.sh
ExecReload=/use/bin/gokafka-restart.sh
ExecStop=/usr/bin/gokafka-shutdown.sh
 
[Install]
WantedBy=multi-user.target

启动服务

systemctl-daemon-reload
systemctl start gokafka

查看日志

tail -f /roo/xxx/xxxx.log

在这里插入图片描述

这里呢,我后台启动go的job定时将日志文件达成压缩包

参考

添加链接linux之systemctl设置自定义服务

添加链接centos7编写自己的服务,运行systemctl后卡住了(即shell阻塞了)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值