Logstash不同服务日志分索引收集

Logstash不同服务日志分索引收集

一般我们使用elk的时候,都是多个服务一起使用,那我们该怎么不同服务之间创建出不同的索引呢?我们就可以利用Logstash提供的多个input配置,type配置类型,根据监听的端口和type在es中创建不同的索引。

input {
  tcp {
    mode => "server"
    host => "0.0.0.0"  # 允许任意主机发送日志
    port => 5044       #监听的端口号
    codec => json_lines    # 数据格式
    type => consumer
  }
}
input{
	tcp{
	 mode => "server"
	 host => "0.0.0.0"
	 port => 5045
	  codec => json_lines    # 数据格式
    type => product
	}
}

filter {
  	grok {
    	match => {
      		"message" => '%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response:int} (?:-|%{NUMBER:bytes:int}) %{QS:referrer} %{QS:agent}'
    	}
  	}
 
	if[type] == "consumer" {
		mutate {
	  		add_tag => ["consumer"]
	  	}
	}
 
	if [type] == "product" {
		mutate {
			add_tag => ["product"]
		}
	} 
}


output {
if "consumer" in [tags] {
  elasticsearch {
      hosts  => ["http://10.211.55.3:9200"]   # ElasticSearch 的地址和端口
      index  => "consumer-%{+YYYY.MM.dd}"         # 指定索引名,可以根据自己的需求指定命名
      codec  => "json"
  }
  }
  if "product" in [tags] {
  elasticsearch {
      hosts  => ["http://10.211.55.3:9200"]   # ElasticSearch 的地址和端口
      index  => "product-%{+YYYY.MM.dd}"         # 指定索引名,可以根据自己的需求指定命名
      codec  => "json"
  }
  }
  stdout {
    codec => rubydebug
  }
}

下面是Logstash的打印的情况请添加图片描述
请添加图片描述
一个是consumer另一个是product,目前的话就实现了不同服务之间日志文件不同的监听情况。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

久★伴i

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

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

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

打赏作者

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

抵扣说明:

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

余额充值