前言
目前我们的系统架构,从阿里云的docker compose(swarm)迁移到了自建的kubernetes,而我们的日志系统也几经周折。从最开始的阿里云docker compose(swarm)环境下的elk + kafka,使用了一段时间后由于老板觉得阿里云的kafka收费价格不怎么划算,并且线上服务器的资源吃紧,然后切换到了阿里云的日志服务。线上切换到kubernetes以后,又使用efk搜集了一段时间日志,后来发现fluentd搜集的日志存在一些延迟问题和准确性问题,并且变更配置搜集特定的日志时较为繁琐,于是准备把fluentd换为logstash + rabbit,期间对比了下redis,rabbit和kafka,最终选择了在用的自建的rabbit集群,由于近期事情较多,精力有限,此文只会阐述关于logstash和rabbit相关使用的过程,关于rabbit自建集群,以及k8s的efk,以及elk搭建,后面会逐一补充。
简要步骤
- 编写logstash的配置文件logstash.conf 建议先在本地使用docker部署logstash,然后在本地进行测试,成功后再部署到kubernetes环境
input {
rabbitmq {
type => "app-log"
host => "your rabbitmq host"
user => "your user"
password => "your password"
port => 5672
exchange => "exchange_logs"
exchange_type => "direct"
queue => "queue_logs"
ack => false
durable => true
}
}
output {
elasticsearch {