• Logstash、Filebeat安装与数据同步



    一、安装Java

    之前写的安装JDK的

    Linux(centos 7.5)服务器安装JDK(1.8)

    yum安装JDK

    #	查看可安装java版本
    yum list java*
    #	安装JDK11
    yum install java-11-openjdk-demo.x86_64 
    
    • 1
    • 2
    • 3
    • 4

    二、安装 Logstash

    1、下载Logstash

    官网地址:

    https://www.elastic.co/cn/downloads/logstash
    
    • 1
    wget https://artifacts.elastic.co/downloads/logstash/logstash-8.3.3-linux-x86_64.tar.gz
    
    • 1

    2、安装Logstash

    创建安装目录

    mkdir /usr/local/logstash
    
    • 1

    解压缩安装文件

    tar -zxvf logstash-8.3.3-linux-x86_64.tar.gz -C /usr/local/logstash
    
    • 1

    二、使用Logstash

    1、安装结果测试

    执行以下命令

    cd logstash-8.3.3
    bin/logstash -e 'input { stdin { } } output { stdout {} }'
    
    • 1
    • 2
    请添加图片描述

    如果你在你的 Terminal 中看到和我一样的输出,说明你的 Logstash 安装时成功的。

    2、测试文件启动

    我们也可以创建一个自己的 logstash.conf 文件,并存于你的文件系统的一个目录下。这个 logstash.conf 的文件内容如下:

    input {
      heartbeat {
        interval => 10
        type => "heartbeat"
      }
    }
     
    output {
      stdout {
        codec => rubydebug
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    启动

    bin/logstash -f heartbeat.conf
    
    • 1

    通过这样的 -f 选项,我们可以启动任何一个我们喜欢路径的 longstash 配置文件。

    请添加图片描述

    3、监控指定端口输入

    创建一个自己的logstash.conf文件

    input {
      tcp {
        port => 9900
      }
    }
     
    output {
      stdout { }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    运行Logstash

    bin/logstash -f weblog.conf
    
    • 1

    接下来,我们使用 nc 应用把数据发送到 TCP 端口号 9900,并查看 console 的输出。我们在另外一个 console 中打入如下的命令

    echo 'hello logstash' | nc localhost 9900
    
    • 1

    请添加图片描述

    4、从文件中推送到Logstash

    新建一个含有日志文件:

    14.49.42.25 - - [12/May/2019:01:24:44 +0000] “GET /articles/ppp-over-ssh/ HTTP/1.1” 200 18586 “-” “Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5”

    执行以下命令推送大Logstash

    head -n 1 weblog-sample.log | nc localhost 9900
    
    • 1

    请添加图片描述

    5、设置输出到ES中

    核心配置:

    elasticsearch {
      hosts => ["http://172.28.70.231:9200"]
      index => "logstash"
      user => "elastic"
      password => "23hUMjScdjOkbKiqCYj9"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    完整配置:

    input {
      tcp {
        port => 9900
      }
    }
     
    filter {
      grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
      }
     
      mutate {
        convert => {
          "bytes" => "integer"
        }
      }
     
      geoip {
        source => "clientip"
        target => "clientgeo"
      }
     
      useragent {
        source => "agent"
        target => "useragent"
      }
    
    }
     
    output {
      stdout { }
     
      elasticsearch {
        hosts => ["http://172.28.70.231:9200"]
        index => "logstash"
        user => "elastic"
        password => "23hUMjScdjOkbKiqCYj9"
      }
    }
    
    • 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
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    从日志文件weblog-sample.log中导入数据

    head -n 1 weblog-sample.log | nc localhost 9900
    
    • 1

    五、使用File Beat导入数据

    请添加图片描述

    请添加图片描述

    官网地址

    https://www.elastic.co/cn/downloads/beats/
    
    • 1

    1、下载安装Filebeat

    下载地址

    wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.3.3-linux-x86_64.tar.gz
    
    • 1

    解压缩安装包

    tar -zxvf filebeat-8.3.3-linux-x86_64.tar.gz
    
    • 1

    新建配置文件filebeat_apache.yml

    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /Users/liuxg/data/apache_logs/*
     
    output.logstash:
      hosts: ["localhost:5044"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    运行Filebeat

    $ ./filebeat -c filebeat_apache.yml
    
    • 1

    就会将日志同步到Logstash

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    2、核心点

    日志所在的目录(正则表达式),可匹配目录以及文件。

    /Users/liuxg/data/apache_logs/*
    
    • 1

    六、安装问题

    1、 GeoIP Filter in ECS-Compatiblity mode

    [2022-08-04T11:05:00,966][ERROR][logstash.javapipeline    ][main] Pipeline error {:pipeline_id=>"main", :exception=>#
    • 1

    修复内容

    改为target去展示

    在这里插入图片描述

    2、配置到ES中未连接报错

    需要配置上到达ESindex

    elasticsearch {
      hosts => ["http://172.28.70.231:9200"]
      index => "logstash"
      user => "elastic"
      password => "23hUMjScdjOkbKiqCYj9"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3、权限问题error loading config file

    权限问题:

    如果没有赋予权限,下面启动会报错:

    Exiting: error loading config file: open filebeat.yml: permission denied
    
    • 1

    如果赋予777权限,也会报错:

    Exiting: error loading config file: config file (“filebeat.yml”) can only be writable by the owner but the permissions are “-rwxrwxrwx” (to fix the permissions use: ‘chmod go-w /usr/share/filebeat/filebeat.yml’)
    
    • 1

    解决:

    chmod 755 /home/filebeat/filebeat.yml
    
    • 1

    七、参考文档

    Logstash:把 Apache 日志导入到 Elasticsearch
    Logstash:Logstash 入门教程 (二)

  • 相关阅读:
    配置阿里云镜像加速器 -docker
    10分钟完成微信JSAPI支付对接过程-JAVA后端接口
    蓝牙耳机国产哪款好?国产高性价比蓝牙耳机盘点
    1km栅格数据重采样成30m,为什么感觉仍不清晰#GIS
    【前后缀统计】面试题 05.03. 翻转数位
    [数据可视化] 霍乱时期的可视化医师
    计算机硬件的读写速度差异
    SpringMVC知识点总结2(孙哥)
    基于TCP协议与Python中Socket模块的人群分布数据传输与远程CNN识别模型部署
    站群服务器的特性和好处是什么
  • 原文地址:https://blog.csdn.net/weixin_44624117/article/details/126167937