elasticsearch logstash使用说明


elasticsearch logstash使用说明

*****************************

logstash 简述

               

logstash从输入源接受数据,直接发送达目的地,或者对数据进行过滤后在传输到目的地

输入源:logstash支持多种输入源,如:stdin、beats、elasticsearch、file、jdbc、redis等

过滤器:logstash提供多种过滤器,过滤器可不使用,如:grok、geoip、date等

输出源:logstash支持多种输出源,如:elasticsearch、redis、stdout等

 

*****************************

logstash 配置说明

配置文件位置:/usr/share/logstash/config/logstash.yml

默认配置

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]

管道配置:/usr/share/logstash/pipeline/logstash.conf

输入配置

#控制台输入
input {
   stdin {
   }
}

#beats输入
input {
  beats {
    port => 5044
  }
}

#file输入
input {
  file {
    path => "/var/log/*"
    exclude => "*.gz"
  }
}


*********************
filter过滤器

filter {
  grok {
    match => { "message" => "pattern" }
  }

  geoip {
    source => "source_string"  #source_string为ip地址或者hostname
  }

  date {
    match => [ "timestamp" , "timestamp_pattern" ]
  }
}


*********************
输出配置

#输出到控制台
output {
  stdout { codec => json } #codec默认为rubydebug
}

#输出到elasticsearch
output {
  elasticsearch { 
    hosts => ["localhost:9200"]
    user => "username"
    password => "password"
    index => "index_name"
    document_id => "%{id}"   #使用数据库的id字段
                             #document_type不推荐使用,不使用时默认为:_doc
  }
}

*****************************

docker 运行logstash

下载镜像

docker pull docker.elastic.co/logstash/logstash:7.5.1

管道配置示例:从控制台输入,并输出到控制台

input {
   stdin {
   }
}

output {
  stdout { codec => json }
}

docker创建logstash容器

docker run -it -d --ip 172.18.0.3 -p 5044:5044 \
-v /usr/elasticsearch/logstash/conf/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
--name logstash docker.elastic.co/logstash/logstash:7.5.1

*********************

控制台输出

                  

发布了320 篇原创文章 · 获赞 91 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43931625/article/details/103914160