logstash
logstash介绍
logstash是一个开源的数据收集引擎,可以动态的将不同数据源的数据统一收集,并将数据按自定义配置规则标准化输入到指定输出源。
logstash安装
- 下载安装
 
1 2 3
   | wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.2.tar.gz tar -zxvf logstash-7.4.2.tar.gz -C /opt/elk/ cd logstash-7.4.0
   | 
 
- 配置文件
 
1 2 3 4 5 6 7 8 9 10 11
   | ls config/*
  -rw-r--r-- 1 gnome gnome 2.0K  9月 27 18:20 jvm.options  # jvm选项 -rw-r--r-- 1 gnome gnome 5.0K  9月 27 18:20 log4j2.properties # 日志配置 -rw-r--r-- 1 gnome gnome  342  9月 27 18:20 logstash-sample.conf # logstash配置样例 -rw-r--r-- 1 gnome gnome 8.1K  9月 27 18:20 logstash.yml  # logstash配置,一般不用管 -rw-r--r-- 1 gnome gnome 3.1K  9月 27 18:20 pipelines.yml -rw-r--r-- 1 gnome gnome 1.7K  9月 27 18:20 startup.options # logstash启动选项
  # 我们一般是复制logstash-sample.conf,重命名为我们想要的配置文件名,最终的配置都是在新的conf文件。 # 一般我们只需要更改conf配置文件就行了,其他默认。
   | 
 
logstash配置解析
详细配置请查看官方文档
logstash配置主要是用ruby写过滤器(官方推荐尽量使用ruby脚本)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
   | input {     file{      	path => "/opt/elk/logstash-7.4.0/test/*" 		start_position => "beginning"     } }
  filter {
      ruby {         path => "/opt/elk/logstash-7.4.0/config/filter_file.rb"
      }
 
 
 
       }
  output { 	elasticsearch {         user => elastic         password => changeme         pool_max => 1000         pool_max_per_route => 200         hosts => ["127.0.0.1:9200"]         index => "logstash-to-es-test-%{+YYYY.MM.dd}"     }
  }
  | 
 
ruby脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   | require 'rubygems' require 'json' require 'pp'
 
  def register(params)     @message = params["message"] end
  def filter(event) 	 	message = event.get("message")
  	
  	path = event.get('path') 	filename = path.split('/')[path.split('/').length-1] 	name = filename.split('.')[0]
  	if message != nil 		event.set("filename" , name) 		event.set("message" , message) 		return [event] 	else 		return [] end
   | 
 
logstash启动
- 编写启动脚本
 
1 2 3
   | #! /bin/bash
  /opt/elk/logstash-7.4.0/bin/logstash -f  /opt/elk/logstash-7.4.0/config/filter_file.conf
   |