一、介绍

Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。

顾名思义,Logstash 收集数据对象就是日志文件。由于日志文件来源多(如:系统日志、服务器 日志等),且内容杂乱,不便于人类进行观察。因此,我们可以使用 Logstash 对日志文件进行收集和统一过滤,变成可读性高的内容,方便开发者或运维人员观察,从而有效的分析系统/项目运行的性能,做好监控和预警的准备工作等。
Logstash 也不是唯一的日志传输工具(log shipper)
从数据源获取数据:文件、UNIX socket、TCP、UDP 等等
处理:添加时间戳、解析非结构化数据、根据 IP 添加地理位置信息
传输:到目标存储。比如,Elasticsearch 。由于 Elasticsearch 可能会宕机,或正存在性能 问题,或网络存在问题,那么传输工具最好就需要有能力提供缓冲以及重试。

logstash-6.6.0部署安装

[root@mha-master data]# cd /data
[root@mha-master data]# wget  https://artifacts.elastic.co/downloads/logstash/logstash-6.6.0.tar.gz
[root@mha-master data]# tar xf logstash-6.6.0.tar.gz
[root@mha-master data]#./bin/logstash   -e 'input {  stdin{} } output { stdout{  codec => rubydebug }}'  #标准输入和输出

ELK使用之-logstash和kibana安装部署—2

测试输出到文件

 [root@mha-master logstash-6.6.0]# ./bin/logstash   -e 'input {  stdin{} } output { file { path => "/tmp/log-%{+YYYY.MM.dd}messages.gz"}}'

ELK使用之-logstash和kibana安装部署—2

测试输出到elasticsearch

[root@mha-master logstash-6.6.0]# ./bin/logstash   -e 'input {  stdin{} } output { elasticsearch {hosts => ["192.168.1.58:9200"] index => "mytest-%{+YYYY.MM.dd}" }}'

hellow
test
ELK使用之-logstash和kibana安装部署—2

elasticsearch服务器验证收到数据

[root@mha-master logstash-6.6.0]# ls /data/ELK/elasticsearch/data/nodes/0/indices/ -l
  drwxrwxr-x 8 elsearch elsearch 65 3月  27 15:44 Z3cyISqlT9SHuIsTjjCiDQ

kibana-6.6.0部署

[root@mha-master data]# wget  https://artifacts.elastic.co/downloads/kibana/kibana-6.6.0-linux-x86_64.tar.gz
[root@mha-master data]# tar xf kibana-6.6.0-linux-x86_64.tar.gz
    [root@mha-master kibana-6.6.0-linux-x86_64]# vim config/kibana.y ml
    [root@mha-master config]# grep -vE "^$|^#" kibana.yml 
      server.port: 5601
      server.host: "192.168.1.58"
      elasticsearch.hosts: ["http://192.168.1.58:9200"]       
    访问测试
       ![](https://s1.51cto.com/images/blog/201903/27/c56822176618ab3118b4d4d51e35c987.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)