新版signoz收集容器日志的真正方法研究,官方文档不能信......

 转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


 最近在摸索新版本signoz怎么收集日志,官方文档的内容没有跟着版本更新或者说写得有些模糊不清,跟着文档走,根本行不通。

本文测试使用最新版了signoz-0.87.0版本,版本更新太快了,之前在测试搭建最新版开源监控平台SigNoz踩的坑时,最新版也就0.81.0,现在已经0.87.0版本了。

1. 收集signoz本机的docker容器日志

老版本在signoz启动之后,就会默认自动收集本机的容器日志,到目前官方文档也是这个说法:

但实际上,在signoz部署好之后,根本不会默认收集本机的docker日志。

官网提到的真正收集本机的日志的配置[tcplog/docker]signoz-0.87.0/deploy/docker/generator/infra目录下:

这个目录的配置文件otel-collector-config.yaml会默认收集本机的主机、容器等相关指标到signoz。

在本目录下直接运行docker-compose -d,会启动2个容器:

这2个容器启动大约2、3分钟后,signoz首页能看到有数据源接进去了:

otel-collector-config.yaml中默认是屏蔽了signoz自身的日志收集的。为了测试日志收集,在本机启动一个nginx,访问一下,就能看到有日志生成了:

在浏览器访问一次nginx,signoz采集到了1条日志。在这里需要注意的是nginx其实在接入signoz之前已经测了很多次,有了很多条访问日志。但这里将日志成功接入signoz之后,不会采集之前的日志,只会从接入之后的日志开始采集。

点击日志,可查看日志详情:

2. 收集其它主机的容器日志

官方文档对于收集signoz之外主机的docker日志方案是这样的:

然而新版本并不存在文件docker-compose-minimal.yaml,且signoz-otel-collector并未监听2255端口。

真正监听2255端口的是在本文第一部分提到的signoz收集本机指标启动的otel-agent。

收集非signoz本机日志的步骤:

1)修改infra/docker-compose.yaml文件,添加2255端口映射:

然后重启服务:

docker-compose down
docker-compose up -d

2)在要上报日志的目标主机启动logspout容器:

docker run -d \
   --net=host \
   --rm --name="logspout"\
   --volume=/var/run/docker.sock:/var/run/docker.sock\
   gliderlabs/logspout\
   syslog+tcp://10.0.0.101:2255

3)用目标主机启动的一个nginx做测试:

在web浏览器访问http://10.0.0.103:8081后,容器产生日志:

再行查看signoz的日志界面,已能看到刚刚的日志了:

docker日志总算可以解决收集问题了,其它问题,未完待续......

欢迎关注SRE成长记一起探讨学习!↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值