一、背景
logstash消费kakfa,然后写进victorialogs。
暂时无法在飞书文档外展示此内容
二、准备与问题
- logstash写victorialogs不同topic日志混合问题
在logstash处理期间添加一个topic_name字段,来实现区分日志来源。
但是不用path.data的话,不管多个logstash实例还是一个logstash实例,最终写进victorialogs后的数据都会混合在一起。
-
logstash性能
-
grok
三、部署
cd /opt/logstash && wget http://172.21.240.67:8666/logstash-9.1.3-linux-x86_64.tar.gz
#
tar zxvf logstash-9.1.3-linux-x86_64.tar.gz
#
cd /opt/logstash/logstash-9.1.3/config
四、一个logstash实例对应一堆topic的conf
-
目录
-
命令
-
缺点
写进victorialogs后,所有topic都聚合在一起,没有可以区分的字段。
通过logstash写进去的topic_name,该字段的值成为一个数字,全部混合在一起。
如:topic_name:["mid-payhub","mid-uh-go-server","infra-s-innerflowcontrol-janus-nginx"]
五、同台主机多个logstash进程
-
目录
-
命令
# 启动mid-uh
nohup sudo -u logstash /opt/logstash/logstash-9.1.3/bin/logstash -f /opt/logstash/logstash-9.1.3/config/conf.d/y4-mid-uh.conf --path.data /opt/logstash/logstash-9.1.3/config/conf.d/mid-uh > /opt/logstash/logstash-9.1.3/config/conf.d/y4-mid-uh.log 2>&1 &
# 启动 mid-payhub
nohup sudo -u logstash /opt/logstash/logstash-9.1.3/bin/logstash -f /opt/logstash/logstash-9.1.3/config/conf.d/y4-mid-payhub.conf --path.data /opt/logstash/logstash-9.1.3/config/conf.d/mid-payhub > /opt/logstash/logstash-9.1.3/config/conf.d/y4-mid-payhub.log 2>&1 &
-
缺点
写进victorialogs后,topic_name字段中的值变成一个数组,混合了全部的topic。
六、path.data
-
目录
-
命令
#
nohup sudo -u logstash /opt/logstash/logstash-9.1.3/bin/logstash -f /opt/logstash/logstash-9.1.3/config/conf.d/mid-orderhub.conf --path.data /opt/logstash/logstash-9.1.3/config/conf.d/mid-orderhub > /opt/logstash/logstash-9.1.3/config/conf.d/mid-orderhub.log 2>&1 &
#
nohup sudo -u logstash /opt/victoria-logs-data/logstash-9.1.3/bin/logstash -f /opt/mid-payhub/mid-payhub.conf --path.data /opt/mid-payhub/data > /opt/mid-payhub/payhub.log 2>&1 &
七、pipelines.yml实现多topic隔离
-
目录
pipelines.yml配置文件
- pipeline.id: uh-go
pipeline.batch.size: 10
pipeline.workers: 1
pipeline.batch.delay: 50
path.config: "/opt/logstash/logstash-9.1.3/config/conf.d/mid-uh-go-server.conf"
- pipeline.id: payhub
pipeline.workers: 1
pipeline.batch.size: 10
pipeline.batch.delay: 50
path.config: "/opt/logstash/logstash-9.1.3/config/conf.d/mid-payhub.conf"
-
命令
#
nohup sudo -u logstash /opt/logstash/logstash-9.1.3/bin/logstash \
--path.settings /opt/logstash/logstash-9.1.3/config \
> /opt/logstash/logstash-9.1.3/config/logstash.log 2>&1 &
#
3. ## 优点
通过管道实现,一个logstash实例对应多个topic,同时多个topic之间相互没有干扰。
八、对比
使用Pipeline的方式,结构简单,只需要一个logstash进程就可以实现多个topic相互隔离。
九、补充
- logstash的参数解释