前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Logstash、Filebeat安装与数据同步(+ES安装讲解)

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

作者头像
ha_lydms
发布2023-08-10 09:14:33
4330
发布2023-08-10 09:14:33
举报
文章被收录于专栏:学习内容学习内容

一、安装Java

之前写的安装JDK的

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

yum安装JDK

代码语言:javascript
复制
#	查看可安装java版本
yum list java*
#	安装JDK11
yum install java-11-openjdk-demo.x86_64 

二、安装 Logstash

1、下载Logstash

官网地址:

代码语言:javascript
复制
https://www.elastic.co/cn/downloads/logstash
代码语言:javascript
复制
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.3.3-linux-x86_64.tar.gz

2、安装Logstash

创建安装目录

代码语言:javascript
复制
mkdir /usr/local/logstash

解压缩安装文件

代码语言:javascript
复制
tar -zxvf logstash-8.3.3-linux-x86_64.tar.gz -C /usr/local/logstash

二、使用Logstash

1、安装结果测试

执行以下命令

代码语言:javascript
复制
cd logstash-8.3.3
bin/logstash -e 'input { stdin { } } output { stdout {} }'
请添加图片描述
请添加图片描述

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

2、测试文件启动

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

代码语言:javascript
复制
input {
  heartbeat {
    interval => 10
    type => "heartbeat"
  }
}
 
output {
  stdout {
    codec => rubydebug
  }
}

启动

代码语言:javascript
复制
bin/logstash -f heartbeat.conf

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

请添加图片描述
请添加图片描述

3、监控指定端口输入

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

代码语言:javascript
复制
input {
  tcp {
    port => 9900
  }
}
 
output {
  stdout { }
}

运行Logstash

代码语言:javascript
复制
bin/logstash -f weblog.conf

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

代码语言:javascript
复制
echo 'hello logstash' | nc localhost 9900
请添加图片描述
请添加图片描述

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

代码语言:javascript
复制
head -n 1 weblog-sample.log | nc localhost 9900
请添加图片描述
请添加图片描述

5、设置输出到ES中

核心配置:

代码语言:javascript
复制
elasticsearch {
  hosts => ["http://172.28.70.231:9200"]
  index => "logstash"
  user => "elastic"
  password => "23hUMjScdjOkbKiqCYj9"
}

完整配置:

代码语言:javascript
复制
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中导入数据

代码语言:javascript
复制
head -n 1 weblog-sample.log | nc localhost 9900

五、使用File Beat导入数据

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

官网地址

代码语言:javascript
复制
https://www.elastic.co/cn/downloads/beats/

1、下载安装Filebeat

下载地址

代码语言:javascript
复制
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.3.3-linux-x86_64.tar.gz

解压缩安装包

代码语言:javascript
复制
tar -zxvf filebeat-8.3.3-linux-x86_64.tar.gz

新建配置文件filebeat_apache.yml

代码语言:javascript
复制
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /Users/liuxg/data/apache_logs/*
 
output.logstash:
  hosts: ["localhost:5044"]

运行Filebeat

代码语言:javascript
复制
$ ./filebeat -c filebeat_apache.yml

就会将日志同步到Logstash

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、核心点

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

代码语言:javascript
复制
/Users/liuxg/data/apache_logs/*

六、安装问题

1、 GeoIP Filter in ECS-Compatiblity mode

代码语言:javascript
复制
[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去展示

在这里插入图片描述
在这里插入图片描述

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

需要配置上到达ESindex

代码语言:javascript
复制
elasticsearch {
  hosts => ["http://172.28.70.231:9200"]
  index => "logstash"
  user => "elastic"
  password => "23hUMjScdjOkbKiqCYj9"
}

3、权限问题error loading config file

权限问题:

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

代码语言:javascript
复制
Exiting: error loading config file: open filebeat.yml: permission denied

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

代码语言:javascript
复制
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’)

解决:

代码语言:javascript
复制
chmod 755 /home/filebeat/filebeat.yml

七、参考文档

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装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
                          • 七、参考文档
                          相关产品与服务
                          Elasticsearch Service
                          腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档