一、概述

Logstash 是由 Elastic 公司推出的一款开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送指定的存储库中。Logstash 官方介绍

Filebeat 是 Elastic 公司为解决 Logstash “太重” 的问题推出的一款轻量级日志采集器,在处理数量众多的服务器、虚拟机和容器生成的日志时可使用 Logstash + Filebeat 的日志采集方式。Filebeat 官方介绍

基于 Logstash + Filbeat 的数据采集流程为:后端 SDK 生成数据文件 => Filebeat 读取文件 => Logstash Beat input => Logstash hina_analytics output => 海纳云。

日志文件数据格式:每一行都是一个json,参照数据格式

二、Logstash使用

进入Logstash官网,可以选择自己需要的下载和安装方式,下面是linux平台安装说明;

  • 2.1、下载安装包

    wget https://artifacts.elastic.co/downloads/logstash/logstash-7.2.0.tar.gz
  • 2.2、解压安装包

    tar -zxvf logstash-7.2.0.tar.gz
  • 2.3、下载hina_analytics插件

    下载地址:资源下载

  • 2.4、安装hina_analytics插件

  • 安装之前先修改Gemfile中的source,可以提高安装速度

    vim Gemfile

    修改为source为 https://gems.ruby-china.com

  • 把下载的插件移动到安装包下,执行以下命令,执行时间可能会较长,请耐心等待~~

    ./bin/logstash-plugin install --no-verify --local logstash-output-hina_analytics-1.0.3.gem

  • 安装完成后可以查看

    ./bin/logstash-plugin list
  • 看见新安装的插件 logstash-output-hina_analytics 证明安装成功。

  • 2.5、hina_analytics插件参数配置

参数名 类型 必填 说明
url list 海纳云的数据接收地址,可同时配置多个数据接收地址,例如:url =>[“http://IP1:8088/hina-cloud-engine/ha“,”http://IP2:8088/hina-cloud-engine/ha“]。
project string 项目名,不写默认为 default ,配置后会覆盖事件中和 url 中指定的 project。优先级为:project 参数配置 > 事件中指定 > url 中指定。
json_check boolean 是否校验数据格式为JSON,默认否,配置为true,则读取的每条数据必须为JSON,非JSON不处理
compress boolean 是否压缩发送数据,默认否,支持gzip压缩
thread number 请求发送并发线程数,默认3
  • 2.6、Logstash 配置

配置中主要包含 input、filter 和 output 三部分,Logstash 处理日志数据只需配置 input 和 output 即可

Logstash 安装目录下 config 目录,创建 hina_output.conf 配置文件

hina_output.conf 参考示例:

#使用 beats 作为输入
input {
    beats {
        port => "5566"
    }
}
# 使用 hina_analytics 作为输出
output{
    hina_analytics {
        # 注意:从海纳嗨数平台上获取对应项目下的数据接入地址。
        url => "https://xxx.xxx.com/hina-cloud-engine/ha?token=xxx"
    }
}
  • 2.7、Logstash 启动

指定 config/hina_output.conf 为输入输出配置文件启动

nohup bin/logstash -f config/hina_output.conf >/dev/null 2>&1 &

三、Filebeat使用

进入Filebeat官网,选择自己需要的下载和安装方式,下面是linux平台安装说明:

  • 3.1、下载安装包

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.2.0-linux-x86_64.tar.gz
  • 3.2、解压安装包

 tar -zxvf filebeat-7.2.0-linux-x86_64.tar.gz
  • 3.3、Filebeat 配置

    使用 Filebeat 读取服务端产生的埋点日志文件。
    Filebeat 默认配置文件为:filebeat.yml,修改filebeat.inputs配置如下:
    1、type 指定 log 类型作为 Filebeat 的输入;
    2、paths 指定数据文件所在的位置,使用通配符 * 匹配后端 SDK 输出的文件名路径。

进入解压目录

vim filebeat.yml

filebeat.yml 参考示例:

# Filebeat 收集 /data/log 目录下所有以log结尾的日志文件
filebeat.inputs:
- type: log
enabled: true
paths:
    - /data/log/*.log

# 将数据发送至Logstash
output.logstash:
hosts: ["ip:5566"]
  • 3.4、启动Filebeat

指定 filebeat.yml 为输入输出配置文件启动

nohup ./filebeat -c filebeat.yml >/dev/null 2>&1 &
  • 3.5 事件时间限制

    导入错误时间的数据,会影响真实数据分析的准确性,因此默认情况下海纳对事件时间进行限制:
    使用后端语言 SDK (如 Java、C# 等)或导入工具(如 Datax、dataimporter、Logstash + Filebeat等),需要导入历史数据,需要联系海纳运营人员,开放历史事件数据限制;

四、常见问题

安装hina_analytics插件报错 ERROR:Installation Aborted, message: certificate verify failed……

1.打开logstash安装目录下的/lib/pluginmanager/install.rb文件
2.在require “fileutils”下一行添加OpenSSL::SSL.const_set(:VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE)
作者:刘建雄  创建时间:2022-08-05 14:43
最后编辑:王建华  更新时间:2024-09-18 16:39