ELK实时日志分析平台搭建(四)安装logstash

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39101581/article/details/86499078

安装

1、官网下载相应安装包
2、解压到安装目录
3、编辑配置文件logstash.conf(在bin目录中,没有的话,可以自己新建一个)

input {
  file {  # 指定一个文件作为输入源
    path => "D:/install/nginx-1.14.2/logs/elk_access.log"  # 指定文件的路径
    start_position => "beginning"  # 指定何时开始收集
    type => "nginx"  # 定义日志类型,可自定义
  }
}
filter {  # 配置过滤器
    grok {
        match => { "message" => "%{IPORHOST:http_host} %{IPORHOST:clientip} - %{USERNAME:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:http_verb} %{NOTSPACE:http_request}(?: HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\" %{NUMBER:response} (?:%{NUMBER:bytes_read}|-) %{QS:referrer} %{QS:agent} %{QS:xforwardedfor} %{NUMBER:request_time:float}"}  # 定义日志的输出格式
    }
    geoip {
        source => "clientip"
    }
}
output {
  stdout { codec => rubydebug }
  elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "nginx-test-%{+YYYY.MM.dd}"
  }
}

编辑完配置文件之后,还需要检测配置文件是否有错:
D:\install\elastic\Logstash\logstash-6.5.3\bin> .\logstash.bat -f .\logstash.conf --config.test_and_exit

-f 指定需要被检测的配置文件的路径
–config.test_and_exit 指定检测完之后就退出,不然就会直接启动了

出现如下图表示配置无误
在这里插入图片描述
4、检查完毕之后,进入你的nginx主机配置文件所在的目录中,修改配置文件:

>server {
      listen 80;
      #server_name '';
      location / {
          proxy_pass      http://192.168.77.128:5601;
          proxy_set_header Host   $host;
          proxy_set_header X-Real-IP      $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
      access_log  /tmp/elk_access.log main2;
}
log_format main2 '$http_host $remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$upstream_addr" $request_time';

5、完成以上配置文件的编辑之后,检测配置文件有没有错误,没有的话就启动Nginx:
在这里插入图片描述
6、启动完成之后,就可以直接输入127.0.0.1就可以直接访问kibana了(因为配置的是80端口)
7、通过浏览器访问http://127.0.0.1:9200/_cat/indices?v
在这里插入图片描述
可以看到,nginx-test索引已经生成了,那么这时就可以到kibana上配置该索引:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用beats采集日志

之前也介绍过beats是ELK体系中新增的一个工具,它属于一个轻量的日志采集器,以上我们使用的日志采集工具是logstash,但是logstash占用的资源比较大,没有beats轻量,所以官方也推荐使用beats来作为日志采集工具。而且beats可扩展,支持自定义构建。

官方介绍:

https://www.elastic.co/cn/products/beats

在 主节点 上安装filebeat,filebeat是beats体系中用于收集日志信息的工具:

安装方法一样 官网下载/服务器下载
编辑配置文件filebeat.yml

filebeat.inputs:
- type: log
    paths:
    - D:/install/nginx-1.14.2/logs/elk_access.log
output.elasticsearch:
  hosts: ["localhost:9200"]

修改完成后就可以启动filebeat服务了:
D:\install\elastic\Filebeat\filebeat-6.5.4-windows-x86_64> .\filebeat.exe
启动成功后,到es服务器上查看索引,可以看到新增了一个以filebeat-6.5.4开头的索引,这就代表filesbeat和es能够正常通信了:(上图中已经展示了)
在这里插入图片描述
在这里插入图片描述

扫描二维码关注公众号,回复: 5118675 查看本文章

以上这就是如何使用filebeat进行日志的数据收集,可以看到配置起来比logstash要简单,而且占用资源还少。

同时,也可以用filebeat采集日志,然后把采集到的信息发送给logstash,logstash过滤后进行输出。如:

filebeat.yml

filebeat.prospectors:
- type: log
  paths:
    - /usr/local/src/logstash-tutorial.log
output.logstash:
  hosts: ["localhost:5044"]

first-pipeline.conf

input {
    beats {
        port => "5044"
    }
}
filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
    geoip {
        source => "clientip"
    }
}
output {
    #stdout { codec => rubydebug }
    elasticsearch {
        hosts => [ "192.168.2.20:9200" ]
    }
}

如果文件是json格式可以参考:LogStash读取json日志分类型建立索引

猜你喜欢

转载自blog.csdn.net/qq_39101581/article/details/86499078