Logstash、Filebeat安装与数据同步(+ES安装讲解)

文章目录
  • 之前写的安装JDK的 Linux(centos 7.5)服务器安装JDK(1.8) yum安装JDK # 查看可安装java版本 yum list java* # 安装JDK11 yum install java-11-openjdk-demo.x86_64
  • 官网地址 https://www.elastic.co/cn/downloads/beats/
  • Logstash:把 Apache 日志导入到 Elasticsearch Logstash:Logstash 入门教程 (二)
    • 一、安装Java
    • 二、安装 Logstash
    • 1、下载Logstash
    • 2、安装Logstash
    • 二、使用Logstash
    • 1、安装结果测试
    • 2、测试文件启动
    • 3、监控指定端口输入
    • 4、从文件中推送到`Logstash`
    • 5、设置输出到ES中
    • 五、使用File Beat导入数据
    • 1、下载安装Filebeat
    • 2、核心点
    • 六、安装问题
    • 1、 GeoIP Filter in ECS-Compatiblity mode
    • 2、配置到ES中未连接报错
    • 3、权限问题`error loading config file`
    • 七、参考文档

    之前写的安装JDK的

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

    yum安装JDK

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

    官网地址:

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

    创建安装目录

    mkdir /usr/local/logstash

    解压缩安装文件

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

    执行以下命令

    cd logstash-8.3.3
    bin/logstash -e 'input { stdin { } } output { stdout {} }'

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

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

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

    input {
     heartbeat {
     interval => 10
     type => "heartbeat"
     }
    }
     
    output {
     stdout {
     codec => rubydebug
     }
    }

    启动

    bin/logstash -f heartbeat.conf

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

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

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

    input {
     tcp {
     port => 9900
     }
    }
     
    output {
     stdout { }
    }

    运行Logstash

    bin/logstash -f weblog.conf

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

    echo 'hello logstash' | nc localhost 9900

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

    新建一个含有日志文件:

    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

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

    核心配置:

    elasticsearch {
     hosts => ["http://172.28.70.231:9200"]
     index => "logstash"
     user => "elastic"
     password => "23hUMjScdjOkbKiqCYj9"
    }

    完整配置:

    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"
     }
    }

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

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

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

    官网地址

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

    下载地址

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

    解压缩安装包

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

    新建配置文件filebeat_apache.yml

    filebeat.inputs:
    - type: log
     enabled: true
     paths:
     - /Users/liuxg/data/apache_logs/*
     
    output.logstash:
     hosts: ["localhost:5044"]

    运行Filebeat

    $ ./filebeat -c filebeat_apache.yml

    就会将日志同步到Logstash

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

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

    /Users/liuxg/data/apache_logs/*

    [2022-08-04T11:05:00,966][ERROR][logstash.javapipeline    ][main] Pipeline error {:pipeline_id=>"main", :exception=>#<LogStash::ConfigurationError: GeoIP Filter in ECS-Compatiblity mode requires a `target` when `source` is not an `ip` sub-field,。

    修复内容

    改为target去展示

    Logstash、Filebeat安装与数据同步(+ES安装讲解)

    需要配置上到达ESindex

    elasticsearch {
     hosts => ["http://172.28.70.231:9200"]
     index => "logstash"
     user => "elastic"
     password => "23hUMjScdjOkbKiqCYj9"
    }

    权限问题:

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

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

    如果赋予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’)

    解决:

    chmod 755 /home/filebeat/filebeat.yml

    Logstash:把 Apache 日志导入到 Elasticsearch

    Logstash:Logstash 入门教程 (二)

    © 版权声明

    相关文章