更新时间:2024-11-29 GMT+08:00

Elasticsearch对接Beats(Filebeat)

操作场景

Filebeat是一个日志文件托运工具,在服务器上安装客户端后,Filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息存储到Elasticsearch。

  • Elasticsearch使用Basic认证对接Filebeat安全性较低,存在风险,建议使用客户端工具esClient.sh对密码进行加密。
  • 不支持arm版本对接。

前提条件

已下载并安装Filebeat。

  1. 下载7.10.2版本Filebeat安装包。
    1. 下载Filebeat安装包“filebeat-oss-7.10.2-linux-x86_64.tar.gz”,并上传至待安装节点,例如“/opt”目录下。

      开源社区下载地址:https://www.elastic.co/cn/downloads/past-releases/filebeat-oss-7-10-2

    2. 解压安装包,并进入对应解压目录。操作前准备结束。

      cd /opt

      tar -xvf filebeat-oss-7.10.2-linux-x86_64.tar.gz

      cd filebeat-7.10.2-linux-x86_64/

  2. 下载6.6.2版本Filebeat安装包。
    1. 下载Filebeat安装包“filebeat-oss-6.6.2-linux-x86_64.tar.gz”,并上传至待安装节点,例如“/opt”目录下。

      开源社区下载地址:https://www.elastic.co/cn/downloads/past-releases/filebeat-oss-6-6-2。

    2. 解压安装包,并进入对应解压目录。

      cd /opt

      tar -xvf filebeat-oss-6.6.2-linux-x86_64.tar.gz

      cd filebeat-6.6.2-linux-x86_64/

操作步骤

利用Filebeat收集服务器日志,往Elasticsearch存储数据。

  1. 配置“filebeat.yml”文件,如下示例:

    filebeat.prospectors:
    # Each - is a prospector. Most options can be set at the prospector level, so
    # you can use different prospectors for various configurations.
    # Below are the prospector specific configurations.
    - type: log
      # Change to true to enable this prospector configuration.
      enabled: true
      # Paths that should be crawled and fetched. Glob based paths.
      paths:
        - /var/log/Bigdata/elasticsearch/esnode1/elasticsearch_cluster.log
     
    setup.template.settings:
      index.number_of_shards: 3                 //设置索引的主分片个数
      index.number_of_replicas: 1               //设置索引的副本分片个数
      index.codec: best_compression
      #_source.enabled: false
     
    # 允许自动生成index模板
    setup.template.enabled: true
    # 生成index模板时字段配置文件
    setup.template.fields: fields.yml
    # 生成index模板的名称
    setup.template.name: mytemplate
    # 生成index模板匹配的index格式
    setup.template.pattern: filebeat*
     
    output.elasticsearch:
      # Array of hosts to connect to.
      hosts: ["ip:httpport"]
      index: filebeat                  //设置索引名
     
      # Optional protocol and basic auth credentials.
      protocol: "https"
      username: "username"      
      password: "password"                    //此处使用加密后的密码
      ssl.verification_mode: none             //设置Filebeat不验证Elasticsearch服务端证书

    关键配置参数说明:

    • paths:监控文件目录,示例里是一个Elasticsearch系统日志文件。
    • hosts:需要连接的HTTP IP和PORT。
    • index:索引名。
    • protocol:安全模式下https。
    • username:具有Elasticsearch指定操作权限的用户,Elasticsearch用户权限设置请参考Elasticsearch鉴权模式
    • password:通过客户端工具esClient.sh加密后的用户密码。
    • ssl.verification_mode:配置为none,Filebeat不校验Elasticsearch服务端证书。
    • 普通模式下,无需配置protocol、username、password、ssl.verification_mode。
    • 在配置参数password时,通过esClient.sh encrypt对密码加密后进行配置,操作方式见使用Elasticsearch客户端章节的6

  2. 执行如下命令,启动Filebeat。

    • 使用7.10.2版本Filebeat执行以下命令。

      cd /opt/filebeat-7.10.2-linux-x86_64/

      ./filebeat -e -c filebeat.yml

    • 使用6.6.2版本Filebeat执行以下命令。

      cd /opt/filebeat-6.6.2-linux-x86_64/

      ./filebeat -e -c filebeat.yml

  3. 查询验证写入的Elasticsearch索引数据。

    curl -XGET --tlsv1.2 --negotiate -k -u : "https://ip:httpport/filebeat/_search?pretty"