采集Beats和Logstash数据源

本文介绍如何通过日志服务控制台创建Logtail采集配置来采集Beats和Logstash数据源。

前提条件

  • 已在服务器上安装Linux Logtail 0.16.9及以上版本或Windows Logtail 1.0.0.8及以上版本。具体操作,请参见安装Logtail(Linux系统)安装Logtail(Windows系统)

  • 已通过Logstash或Beats系列软件采集到数据。

    • 如果要通过Logstash采集数据,请参见Logstash-Lumberjack-Output

    • 如果要通过Beats系列软件采集数据,请参见Beats-Lumberjack-Output

      本文以使用PacketBeat软件采集本地网络数据包,并使用Logtail Lumberjack插件上传到日志服务为例,进行说明。配置PacketBeat输出方式为Logstash,示例如下所示。

      output.logstash:
        hosts: ["127.0.0.1:5044"]

背景信息

基于Logstash、Beats系列软件对Lumberjack协议的支持,Logtail可以通过Lumberjack协议将Beats系列软件(MetricBeat、PacketBeat、Winlogbeat、Auditbeat、Filebeat、Heartbeat等)、Logstash采集的数据上传到日志服务。

说明
  • 同一Logtail可配置多个Lumberjack插件,但多个插件不能监听同一端口。

  • Lumberjack插件支持SSL,上传Logstash采集的数据需要使用该功能。

操作步骤

  1. 登录日志服务控制台

  2. 接入数据区域,选择自定义数据插件

  3. 选择目标Project和Logstore,单击下一步
  4. 机器组配置页面,配置机器组。

    1. 根据实际需求,选择使用场景和安装环境。

      重要

      无论是否已有机器组,都必须根据实际需求正确选择使用场景和安装环境,这将影响后续的页面配置。

    2. 确认目标机器组已在应用机器组区域,单击下一步

      已有机器组

      源机器组列表选择目标机器组。

      image

      没有可用机器组

      单击创建机器组,在创建机器组面板设置相关参数。机器组标识分为IP地址用户自定义标识,更多信息请参见创建用户自定义标识机器组(推荐)创建IP地址机器组

      重要

      创建机器组后立刻应用,可能因为连接未生效,导致心跳为FAIL,您可单击重试。如果还未解决,请参见Logtail机器组无心跳进行排查。

  5. 数据源设置页签中,设置配置名称插件配置,然后单击下一步

    • inputs为数据源配置,必选项。

      重要

      一个inputs中只允许配置一个类型的数据源。

    • processors为处理配置,用于解析数据。可选项,您可以配置一种或多种处理方式。

      如果当前的inputs配置无法满足日志解析需求,您可以在插件配置中添加processors配置,即添加Logtail插件处理数据。例如提取字段、提取日志时间、脱敏数据、过滤日志等。更多信息,请参见使用Logtail插件处理数据

    由于Beats和Logstash输出的都是JSON格式数据,因此需要使用processor_anchor将JSON展开。

    {
      "inputs": [
        {
          "detail": {
            "BindAddress": "0.0.0.0:5044"
          },
          "type": "service_lumberjack"
        }
      ],
      "processors": [
        {
          "detail": {
            "Anchors": [
              {
                "ExpondJson": true,
                "FieldType": "json",
                "Start": "",
                "Stop": ""
              }
            ],
            "SourceKey": "content"
          },
          "type": "processor_anchor"
        }
      ]
    }
                            

    参数

    类型

    是否必选

    说明

    type

    string

    数据源类型,固定为service_lumberjack

    BindAddress

    string

    Lumberjack协议绑定的地址。不配置时,默认为127.0.0.1:5044,支持自定义。如果Lumberjack协议需要被局域网内其他主机访问,请配置为0.0.0.0:5044

    V1

    boolean

    是否使用Lumberjack V1版本协议。不配置时,默认为false。目前Logstash支持Lumberjack V1。

    V2

    boolean

    是否使用Lumberjack V2版本协议。不配置时,默认为true。目前Beats系列软件支持Lumberjack V2。

    SSLCA

    string

    证书授权机构(Certificate Authority)颁发的签名证书路径,默认为空。如果是自签名证书可不设置此选项。

    SSLCert

    string

    证书的路径,默认为空。

    SSLKey

    string

    证书对应私钥的路径,默认为空。

    InsecureSkipVerify

    boolean

    是否跳过SSL安全检查。不配置时,默认为false,执行SSL安全检查。

  6. 创建索引预览数据,然后单击下一步。日志服务默认开启全文索引。您也可以根据采集到的日志,手动创建字段索引,或者单击自动生成索引,日志服务将自动生成字段索引。更多信息,请参见创建索引

    重要

    如果需要查询日志中的所有字段,建议使用全文索引。如果只需查询部分字段、建议使用字段索引,减少索引流量。如果需要对字段进行分析(SELECT语句),必须创建字段索引。

  7. 单击查询日志,系统将跳转至Logstore查询分析页面。
    您需要等待1分钟左右,待索引生效后,才能在原始日志页签中,查看已采集到的日志。更多信息,请参见查询和分析日志

问题排查

使用Logtail采集日志后,如果预览页面或查询页面无数据,您可以参见Logtail采集日志失败的排查思路进行排查。

后续步骤

Logtail采集数据到日志服务后,您可以在日志服务控制台上进行查看。

_@metadata_beat:  packetbeat
_@metadata_type:  doc
_@metadata_version:  6.2.4
_@timestamp:  2018-06-05T03:58:42.470Z
__source__:  **.**.**.**
__tag__:__hostname__:  *******
__topic__:  
_beat_hostname:  bdbe0b8d53a4
_beat_name:  bdbe0b8d53a4
_beat_version:  6.2.4
_bytes_in:  56
_bytes_out:  56
_client_ip:  192.168.5.2
_icmp_request_code:  0
_icmp_request_message:  EchoRequest(0)
_icmp_request_type:  8
_icmp_response_code:  0
_icmp_response_message:  EchoReply(0)
_icmp_response_type:  0
_icmp_version:  4
_ip:  127.0.0.1
_path:  127.0.0.1
_responsetime:  0
_status:  OK
_type:  icmp