logstash 消费kafka数据,转发到tcp端口,解决logstash时间差8小时

本文介绍了如何配置Logstash从Kafka消费数据,过滤规则,以及将数据输出到文件和UMP平台。还涵盖了Logstash服务的启动、调试和日志路径的修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1, logstash 配置文件

[root@host1: ]  cat /opt/logstash/kafka-to-tcp.yml
input { 
	#stdin{ }
	kafka {
	  bootstrap_servers => "192.168.0.11:9092" #这里可以是kafka集群,如"192.168.149.101:9092,192.168.149.102:9092"
	  consumer_threads => 3 #等于 topic分区数
	  group_id => "logstash_123"
	  #client_id => "logstash1" #注意,多台logstash实例消费同一个topics时,client_id需要指定不同的名字
	  
	  #auto_offset_reset => "latest"
	  auto_offset_reset => "earliest"
	  topics => ["alertTopic1"]
	  codec => json { charset => "UTF-8" }
	 }
}

filter { 
     #logstash系统默认时区为UTC,与中国时间差了8小时,所以需要修改@timestamp的值
	 ruby {
		code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
	 }
	 ruby {
		code => "event.set('@timestamp', event.get('timestamp'))"
	 }
	 
	 #删除某些数据:正则取反,根据json字段ruleName字段内容删除数据
	 if ([ruleName] !~ ".*主机告警.*") {
		drop {}
	 } 

	 mutate {  
		#删除某些json字段, 修改某些字段内容
		remove_field => ["eventId","ruleId"]
		gsub => [
					"Msg" , "[\r|\n]" , ""                   
				]
	 }
}

output {
	#输出到命令行窗口,方便调试
	#stdout{}

	#输出到文件,方便排查告警漏告等问题
	file {
		#codec =>  json_lines  { charset => "UTF-8" }
		codec => plain {
		       #如果需要换行输出,需要修改config/logstash.yml的配置 ==> echo config.support_escapes: true >> config/logstash.yml
			   charset=> "UTF-8"
			   format =>"%{@timestamp}=====> %{TIME} 测试环境--ruleName:%{ruleName},Msg:%{Msg}\n"
		 }
		path => "/tmp/b.log"
	}

	#输出UMP平台对接指定的ip、端口,以指定的格式推送到UMP集中告警平台
	tcp {
		host => "192.168.0.11"
		port => "514"
		codec => plain {
		       #如果需要换行输出,需要修改config/logstash.yml的配置 ==> echo config.support_escapes: true >> config/logstash.yml
			   charset=> "UTF-8"
			   format =>"%{TIME} 测试环境--ruleName:%{ruleName},Msg:%{Msg}\n"
		 }
	}
}

2,调试并后台启动

  • ./bin/logstash -f /xx/xx.yml
[root@host1: ]  cat /usr/lib/systemd/system/logstashtcp.service
[Unit]
Description=Logstash
Requires=network.service
After=network.service

[Service]
LimitNOFILE=65536
LimitMEMLOCK=infinity
WorkingDirectory=/opt/logstash/
ExecStart=/bin/sh bin/logstash  -f  kafka-to-tcp.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
SuccessExitStatus=143
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

3, 修改logstash 服务日志路径

 sed -i.bak 's@${sys:ls.logs}@/xx/yy@' config/log4j2.properties 
 重启logstash服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

根哥的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值