Filebeat配置参考手册

Filebeat的配置参考

指定要运行的模块

    前提:

        在运行Filebeat模块之前,需要安装并配置Elastic堆栈:

        安装Ingest Node GeoIPUser Agent插件。这些插件需要捕获示例仪表板中可用的某些可视化所使用的地理位置和浏览器信息。您可以通过在Elasticsearch主路径中运行以下命令来安装这些插件:

        sudo bin/elasticsearch-plugin install ingest-geoip

        sudo bin/elasticsearch-plugin install ingest-user-agent

        运行这些命令后需要重新启动Elasticsearch

        验证ElasticsearchKibana是否正在运行,并且Elasticsearch已准备好从Filebeat接收数据。

 

  在modules.d目录编辑中启用模块配置

    该modules.d目录包含Filebeat中可用的所有模块的默认配置。您可以modules.d通过运行 modules enablemodules disable命令启用或禁用特定模块配置。

    例如,要在 目录中启用apache2mysql配置modules.d

    /filebeat modules enable apache2 mysql

     然后,当您运行Filebeat时,它会加载modules.d目录中指定的相应模块配置(例如,modules.d/apache2.ymlmodules.d/mysql.yml

    要查看启用和禁用模块的列表,请运行:filebeat modules list

    默认模块配置收集的日志位于操作系统的预期位置,并且模块的行为适合您的环境。要更改默认配置,您需要指定变量设置。

 

  运行filebeat时启用模块

    要在命令行运行Filebeat时启用特定模块,可以使用该--modules标志。这种方法在您开始使用时很有效,并且每次运行Filebeat时都希望指定不同的模块和设置。

    将在命令行中指定的任何模块以及在配置文件或modules.d 目录中启用的任何模块一起加载。如果存在冲突,则使用命令行中指定的配置。下面的示例示出了如何启用和运行nginxmysqlsystem模块。

    ./filebeat -e --modules nginx,mysql,systemfilebeat -e --modules nginx,mysql,system

    默认模块配置假定您正在收获的日志位于操作系统的预期位置,并且模块的行为适合您的环境。要更改默认配置,您需要指定变量设置。

  

  在filebeat.yml文件编辑中启用模块配置

    如果可能,您应该使用modules.d目录中的配置文件。但是,如果从先前版本的Filebeat升级并且不想将模块配置移动到目录,则直接在配置文件中启用模块是一种实用方法modules.d。您可以继续在filebeat.yml文件中配置模块,但是您将无法使用该modules命令来启用和禁用配置,因为该命令需要modules.d布局。

      要在filebeat.yml配置文件中启用特定模块,可以向filebeat.modules列表中添加条目。列表中的每个条目都以短划线( - )开头,然后是该模块的设置。

        下面的示例示出了运行的配置nginxmysqlsystem模块。

      filebeat.modules:modules:

            - module: nginx- module: nginx

            - module: mysql- module: mysql

            - module: system- module: system

 

  指定模块的变量设置

    每个模块和文件集都有变量,您可以设置这些变量来更改模块的默认行为,包括模块查找日志文件的路径。例如,var.paths以下示例中的设置设置nginx访问日志文件的路径:

        - module: nginx

       access:

              var.paths: ["/var/log/nginx/access.log*"]

 

        要在命令行中设置Nginx访问日志文件的路径,请使用该-M标志。例如:

        filebeat -M "nginx.access.var.paths=[/var/log/nginx/access.log*]"

        在命令行设置变量时,变量名称需要包含模块和文件集名称。您可以指定多个覆盖。每个覆盖都必须以-M

 

        在这里,您将看到如何将-M旗帜与旗帜一起使用--modules。此示例显示如何设置访问和错误日​​志的路径:

        filebeat --modules nginx -M "nginx.access.var.paths=[/var/log/nginx/access.log*]" -M "nginx.error.var.paths=[/var/log/nginx/error.log*]"

        在模块中可以为每个文件集设置的特定变量的信息。

 

高级设置(prospector)

    在幕后,每个模块启动一个Filebeat prospector。高级用户可以添加或覆盖任何探针设置。例如,你可以设置 close_eoftrue在模块配置:

      - module: nginx

    access:

            prospector:

              close_eof: true

 

        或者在命令行中这样:

        filebeat -M "nginx.access.prospector.close_eof=true"

        

        在这里,您将看到如何将-M旗帜与旗帜一起使用--modules

        filebeat --modules nginx -M "nginx.access.prospector.close_eof=true"

 

        您可以使用通配符一次更改多个模块/文件集的变量或设置。例如启用模块close_eof中的所有文件集nginx

        filebeat -M "nginx.*.prospector.close_eof=true"

 

        启用close_eof由任何模块创建的所有prospectors

        filebeat -M "*.*.prospector.close_eof=true"

  

    设置prospectors

      Filebeat使用prospector来定位和处理文件。要配置Filebeat,请filebeat.prospectorsfilebeat.yml配置文件的部分中指定prospectors列表。

      列表中的每个项目都以短划线( - )开头,并指定特定于浏览器的配置选项,包括为查找文件而被爬网的路径列表。

      filebeat.prospectors:

        - type: log

          paths:

            - /var/log/apache/httpd-*.log

         - type: log

           paths:

             - /var/log/messages

             - /var/log/*.log

 

              配置选项:

              type

              log:读取日志文件的每一行(默认)

              stdin:标准输入

              redis:从redis读取慢速日志条目(实验性)

              udp:通过UDP读取事件。max_message_size

              docker:从Docker读取日志。containers

              您在此处指定的值将用作type发布到LogstashElasticsearch的每个事件的值。

 

              paths:

              应该对其进行爬网和获取的基于glob的路径列表。此处还支持Golang Glob支持的所有模式。

              例如,要从预定义级别的子目录中获取所有文件,可以使用以下模式:/var/log/*/*.log。这.log将从子文件夹中获取所有文件/var/log

              它不从/var/log文件夹本身获取日志文件。可以使用可选recursive_glob设置以递归方式获取目录的所有子目录中的所有文件。

     Filebeat为在指定路径下找到的每个文件启动收集器。您可以为每行指定一个路径。每行以短划线( - )开头。

 

      recursive_glob.enabled:

      允许扩展**为递归的glob模式。启用此功能后,**每个路径中最右边的部分将扩展为固定数量的glob模式。例如:/foo/**扩展到/foo/foo/*/foo/*/*,等等。如果启用,它会将单个扩展**8级深度*模式。

      默认情况下启用此功能,设置recursive_glob.enabledfalse以禁用它。

 

      encoding:

      用于读取包含国际字符的文件的文件编码。请参阅W3C推荐的编码名称,以便在HTML5中使用。

      以下是W3C推荐的一些示例编码:

      plainlatin1utf-8utf-16be-bomutf-16beutf-16lebig5gb18030gbkhz-gb-2312

      euc-kreuc-jpiso-2022-jpshift-jis

      该plain编码是特殊的,因为它不验证或转换任何输入。

 

      exclude_lines:

      正则表达式列表,用于匹配您希望Filebeat排除的行。Filebeat会删除与列表中的正则表达式匹配的所有行。默认情况下,不会删除任何行。空行被忽略。

      如果多行同时指定时,线通过过滤前的各多行消息被组合成一个单一的线exclude_lines

      以下示例将Filebeat配置为删除以“DBG”开头的所有行。

      filebeat.prospectors:

                    - paths:

                        - /var/log/myapp/*.log

                      exclude_lines: ['^DBG']

                      请参阅正则表达式支持以获取受支持的正则表达式模式列表。

 

               include_lines:

               正则表达式列表,用于匹配您希望Filebeat包含的行。Filebeat仅导出与列表中的正则表达式匹配的行。默认情况下,将导出所有行。空行被忽略。

       如果多行同时指定时,线通过过滤前的各多行消息被组合成一个单一的线include_lines

       以下示例将Filebeat配置为导出以“ERR”或“WARN”开头的所有行:

       filebeat.prospectors:

                    - paths:

                        - /var/log/myapp/*.log

                      include_lines: ['^ERR', '^WARN']

      如果两个include_linesexclude_lines定义,Filebeat执行include_lines,然后再执行exclude_lines。定义两个选项的顺序无关紧要。该include_lines选项将始终在exclude_lines选项之前执行,即使在配置文件中exclude_lines出现之前include_lines也是如此。

      以下示例导出除调试消息(DBG)之外的所有Apache日志行:

      include_lines: ['apache']

      exclude_lines: ['^DBG']

 

      exclude_files

          正则表达式列表,用于匹配您希望Filebeat忽略的文件。默认情况下不会排除任何文件。

      以下示例将Filebeat配置为忽略具有gz扩展名的所有文件:

      exclude_files: ['\.gz$']

 

      tags

      Beattags每个已发布事件的字段中包含的标记列表。使用标签可以轻松选择Kibana中的特定事件或在Logstash中应用条件过滤。这些标记将附加到常规配置中指定的标记列表中。

      filebeat.prospectors:

                    - paths: ["/var/log/app/*.json"]

                      tags: ["json"]

 

      fields

      可以指定的可选字段,用于向输出添加其他信息。例如,您可以添加可用于过滤日志数据的字段。字段可以是标量值,数组,字典或这些的任何嵌套组合。默认情况下,您在此处指定的字段将分组在fields输出文档中的子字典下。要将自定义字段存储为顶级字段,请将该fields_under_root选项设置为true。如果在常规配置中声明了重复字段,则其值将被此处声明的值覆盖。

                  filebeat.prospectors:

                    - paths: ["/var/log/app/*.log"]

                      fields:

                        app_id: query_engine_12

           fields_under_root

     如果此选项设置为true,则自定义字段将存储为输出文档中的顶级字段,而不是在fields子字典下分组 。如果自定义字段名称与Filebeat添加的其他字段名称冲突,则自定义字段将覆盖其他字段。

 

     指定多个prospector

     当您需要从多个文件中收集行时,您只需配置一个prospector并指定多个路径即可为每个文件启动收集器。但是,如果你想申请额外的特定探矿- 配置设置(如fieldsinclude_linesexclude_linesmultiline,等),以从特定文件中获取的线,你需要在Filebeat配置文件中定义多个探矿。

   在配置文件中,您可以指定多个探测器,每个探测器可以定义多个要爬网的路径,如以下示例所示。

      filebeat.prospectors:

            - type: log

          paths:

                - /var/log/system.log

                - /var/log/wifi.log

            - type: log

              paths:

                - "/var/log/apache2/*"

              fields:

                apache: true

              fields_under_root: true

             示例中的配置文件启动了两个prospectorsprospectors列表是一个YAML 数组,因此每个prospectors都以a开头-)。第一个prospectors有两个收割机,一个收割system.log锉刀,另一个收割wifi.log。第二个prospectors为目录中的每个文件启动一个收集器,apache2并使用fields配置选项添加一个调用apache输出的字段。

 

 

管理多行消息

  Filebeat收集的文件可能包含跨越多行文本的邮件。例如,多行消息在包含Java堆栈跟踪的文件中很常见。为了正确处理这些多行事件,您需要multilinefilebeat.yml文件中配置设置以指定哪些行是单个事件的一部分。

重要:如果要向Logstash发送多行事件,请在将事件数据发送到Logstash之前使用此处描述的选项来处理多行事件。尝试在Logstash中实现多行事件处理(例如,通过使用Logstash多行编解码器)可能会导致流和损坏数据的混合。

 

    配置选项:

     您可以filebeat.prospectorsfilebeat.yml配置文件的部分中指定以下选项,以控制Filebeat如何处理跨越多行的消息。以下示例显示如何配置Filebeat以处理多行消息,其中消息的第一行以方括号([)开头。

     multiline.pattern: '^\['

     multiline.negate: true

     multiline.match: after

 

  Filebeat获取所有不以其开头的行,[并将它们与之前的行组合。例如,您可以使用此配置将多行消息的以下行连接到单个事件中:

  [beat-logstash-some-name-832-2015.11.28] IndexNotFoundException[no such index]

       at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver$WildcardExpressionResolver.resolve(IndexNameExpressionResolver.java:566)

       at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:133)

       at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:77)

       at org.elasticsearch.action.admin.indices.delete.TransportDeleteIndexAction.checkBlock(TransportDeleteIndexAction.java:75)

 

     multiline.pattern

     指定要匹配的正则表达式模式。请注意,Filebeat支持的正则表达式模式与Logstash支持的模式略有不同。请参阅正则表达式支持以获取受支持的正则表达式模式列表。根据您配置其他多行选项的方式,与指定正则表达式匹配的行被视为前一行的延续或新多行事件的开始。您可以设置negate选项以否定模式。

 

     multiline.negate

     定义模式是否被否定。默认是false

 

     multiline.match

     指定Filebeat如何将匹配行组合到事件中。设置是afterbefore。这些设置的行为取决于您为negate以下内容指定的内容:

     设置为 negate 设置为 match 结果 pattern: ^b

    

     multiline.flush_pattern

     指定正则表达式,其中当前多行将从内存中刷新,结束多行消息。

 

     multiline.max_lines

     可以合并为一个事件的最大行数。如果多行消息包含多个消息max_lines,则丢弃任何其他行。默认值为500

 

     multiline.timeout

     在指定的超时后,即使没有找到新模式来启动新事件,Filebeat也会发送多行事件。默认值为5秒。

 

全局filebeat配置选项

    这些选项位于filebeat命名空间中。

     registry_file

       注册表文件的名称。如果使用相对路径,则认为它相对于数据路径。有关详细信息,请参阅目录布局部分 默认是${path.data}/registry

       filebeat.registry_file: registry

       无法使用符号链接作为注册表文件。

 

     config_dir

       包含其他prospector配置文件的目录的完整路径。每个配置文件必须以.yml。每个配置文件还必须指定完整的Filebeat配置层次结构,即使只处理文件的prospector部分。所有全局选项(例如registry_file)都将被忽略。

       config_dir选项必须指向主Filebeat配置文件所在目录以外的目录。

       如果指定的路径不是绝对路径,则认为它相对于配置路径。有关详细信息,请参阅 目录布局部分

       filebeat.config_dir: path/to/configs

 

     shutdown_timeout

       Filebeat等待关闭以便发布者在Filebeat关闭之前完成发送事件的时间。

  默认情况下,此选项被禁用,Filebeat不会等待发布者在关闭之前完成发送事件。这意味着在重新启动Filebeat时,会再次发送发送到输出但在Filebeat关闭之前未确认的任何事件。有关其工作原理的详细信息,请参阅Filebeat如何确保至少一次交付?编辑。

  您可以配置该shutdown_timeout选项以指定Filebeat等待发布者在关闭之前完成发送事件的最长时间。如果在shutdown_timeout到达之前确认了所有事件,则Filebeat将关闭。

  此选项没有建议的设置,因为确定正确的值在shutdown_timeout很大程度上取决于运行Filebeat的环境和输出的当前状态。

  配置示例:

  filebeat.shutdown_timeout5s

 

常规配置选项

  所有Elastic Beats都支持这些选项。因为它们是常见选项,所以它们不是命名空间。

  配置示例:

  name: "my-shipper"

  tags: ["service-X", "web-tier"]

 

  name

    Beat的名字。如果此选项为空,hostname则使用服务器的选项。该名称作为beat.name每个已发布事务中的字段包含在内。您可以使用该名称对单个Beat发送的所有事务进行分组。

    例:

      name: "my-shipper"

 

  tags

    Beattags每个已发布事务的字段中包含的标记列表。标签可以轻松地按不同的逻辑属性对服务器进行分组。例如,如果您有一组Web服务器,则可以将“webservers”标记添加到每台服务器上的Beat中,然后在Kibana Web界面中使用过滤器和查询来获取整个服务器组的可视化。

    例:

    tags: ["my-service", "hardware", "test"]

 

  fields

    可以指定的可选字段,用于向输出添加其他信息。字段可以是标量值,数组,字典或这些的任何嵌套组合。默认情况下,您在此处指定的字段将分组在fields输出文档中的子字典下。要将自定义字段存储为顶级字段,请将该fields_under_root选项设置为true

    例:

    fields: {project: "myproject", instance-id: "574734885120952459"}

 

  fields_under_root

    如果此选项设置为true,则自定义字段将存储为输出文档中的顶级字段,而不是在fields子字典下分组。如果自定义字段名称与其他字段名称冲突,则自定义字段将覆盖其他字段。

    例:

    fields_under_root: true

    fields:

        instance_id: i-10a64379

          region: us-east-1

 

  processors

    要应用于节拍生成的数据的处理器列表。

    有关在配置中指定处理器的信息,请参阅筛选并增强导出的数据。

 

  max_procs

    设置可以同时执行的最大CPU数。默认值是系统中可用的逻辑CPU数。

 

加载外部配置文件

  Filebeat可以为探矿者和模块加载外部配置文件,这允许您将配置分成多个较小的配置文件。有关详细信息,请参阅Prospector配置编辑和 模块配置编辑部分。

 

  prospectors配置

    对于prospector配置,您path可以在文件的filebeat.config.prospectors部分中指定该选项filebeat.yml。例如: 

    filebeat.config.prospectors:

        enabled: true

        path: configs/*.yml

 

  pathGlob找到的每个文件都必须包含一个或多个prospector定义的列表。每个外部配置文件的第一行必须是以...开头的prospector定义- type。确保省略filebeat.config.prospectors此文件中的行 。

    例如:

      - type: log

      paths:

                    - /var/log/mysql.log

                  scan_frequency: 10s

 

                  - type: log

                    paths:

                      - /var/log/apache.log

                  scan_frequency: 5s

             至关重要的是,两个正在运行的探矿者没有定义重叠的文件路径。如果多个探测器同时收集同一个文件,则可能导致意外行为。

 

实时重新加载

  您可以将Filebeat配置为在发生更改时动态重新加载外部配置文件。此功能适用于作为外部配置文件加载的prospector和模块配置 。您无法使用此功能重新加载主filebeat.yml配置文件。

  要配置此功能,请指定要监视配置更改的路径(Glob)。当Glob找到的文件发生变化时,将根据配置文件中的更改启动和停止新的探矿者和/或模块。

  此功能在容器环境中特别有用,其中一个容器用于为在同一主机上的其他容器中运行的服务尾部日志。

  要启用动态配置重装,指定pathreload下选项filebeat.config.prospectorsfilebeat.config.modules部分。例如:

  filebeat.config.prospectors:

       enabled: true

       path: configs/*.yml

       reload.enabled: true

       reload.period: 10s

 

  path一个Glob,用于定义要检查更改的文件。

  reload.enabled: 设置true为时,启用动态配置重新加载。

  reload.period: 指定检查文件更改的频率。不要将其设置period为小于1,因为文件的修改时间通常以秒为单位存储。将period小于1 设置为将导致不必要的开销。

  在具有POSIX文件权限的系统上,所有Beats配置文件都受所有权和文件权限检查的约束。

 

配置内部队列

  Filebeat使用内部队列在发布事件之前存储事件。队列负责缓冲事件并将事件组合成可由输出使用的批处理。输出将使用批量操作在一个事务中发送一批事件。

  可以通过queuefilebeat.yml配置文件的部分中设置选项来配置内部队列的类型和行为。

 

  配置示例将内存队列设置为最多缓冲4096个事件,512个可用事件或者最旧的可用事件已在队列中等待5:

  queue.mem:

       events: 4096

       flush.min_events512

       flush.timeout5s

 

  events

  队列可以存储的事件数。默认值为4096个事件。

  flush.min_events

  发布所需的最少事件数。如果此值设置为0,则输出可以开始发布事件而无需额外的等待时间。否则输出必须等待更多事件变为可用。默认值为2048

  flush.timeout

  最长等待时间flush.min_events。如果设置为0,则事件将立即可供使用。默认值为1秒。

 

配置输出

配置elasticsearch输出

  为输出指定Elasticsearch时,Filebeat会使用Elasticsearch HTTP API将事务直接发送到Elasticsearch

  配置示例:

  output.elasticsearch:

    hosts: ["http://localhost:9200"]

    index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"

    ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

    ssl.certificate: "/etc/pki/client/cert.pem"

    ssl.key: "/etc/pki/client/cert.key"

 

  要启用SSL,只需添加https到主机下定义的所有URL

  output.elasticsearch:

    hosts: ["https://localhost:9200"]

    username: "admin"

    password: "s3cr3t"

   

  如果Elasticsearch节点由定义IP:PORT,则添加protocol: httpsyaml文件。

  output.elasticsearch:

    hosts: ["localhost"]

    protocol: "https"

    username: "admin"

    password: "s3cr3t"

 

配置选项

  enabled

    enabled config是一个布尔设置,用于启用或禁用输出。如果设置为false,则禁用输出。默认值是true

 

  hosts

    要连接的Elasticsearch节点列表。事件以循环顺序分发到这些节点。如果一个节点无法访问,则会自动将该事件发送到另一个节点。每个Elasticsearch节点都可以定义为URLIP:PORT。例如:http://192.15.3.2https://es.found.io:9230192.24.3.2:9300。如果未指定端口,9200则使用。

 

  output.elasticsearch:

    hosts: ["10.45.3.2:9220", "10.45.3.1:9230"]

      protocol: https

      path: /elasticsearch

 在前面的示例中,Elasticsearch节点位于https://10.45.3.2:9220/elasticsearchhttps://10.45.3.1:9230/elasticsearch

 

  compression_level

    gzip压缩级别。将此值设置为0将禁用压缩。压缩级别必须在1(最佳速度)到9(最佳压缩)的范围内。

    增加压缩级别将减少网络使用,但会增加CPU使用率。默认值为0

 

  worker

    每个配置主机向Elasticsearch发布事件的工作器数。这最适用于启用负载平衡模式。示例:如果您有2个主机和3个工作程序,则总共启动6个工作程序(每个主机3个)。默认值为1

 

  username

    用于连接Elasticsearch的基本身份验证用户名。

 

  password

    用于连接Elasticsearch的基本身份验证密码。

 

  parameters

    使用索引操作在url中传递的HTTP参数字典。

 

  protocol

    可以访问协议Elasticsearch的名称。选项是: httphttps。默认是http。但是,如果您指定了URLhostsprotocol则会通过您在URL中指定的任何方案覆盖该值。

 

  path

    HTTP API调用前面的HTTP路径前缀。这对于Elasticsearch监听在自定义前缀下导出APIHTTP反向代理的情况非常有用。

 

  headers

    自定义HTTP标头,以添加到Elasticsearch输出创建的每个请求。例:

    output.elasticsearch.headers:

      X-My-Header: Header contents

    通常可以通过用逗号分隔它们来为同一标头名称指定多个标头值。

 

  proxy_url

    连接到Elasticsearch服务器时要使用的代理的URL。该值可以是完整的URL或“host [port]”,在这种情况下,假定为“http”方案。如果未通过配置文件指定值,则使用代理环境变量。有关 环境变量的更多信息,请参阅 golang文档。

 

  index

    要将事件写入的索引名称。默认值为 "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"(例如 "filebeat-6.2.4-2017.04.26")。如果更改此设置,还需要配置setup.template.namesetup.template.pattern选项(请参阅加载Elasticsearch索引模板)。如果您使用的是预先构建的Kibana仪表板,则还需要设置该setup.dashboards.index选项(请参阅 加载Kibana仪表板)。

 

  indices

    支持条件的索引选择器规则数组,基于格式字符串的字段访问和名称映射。第一个规则匹配将用于设置index要发布的事件。如果indices缺少或没有规则匹配,index将使用该字段。

    规则设置:

    index:要使用的索引格式字符串。如果缺少使用的字段,则规则将失败。

    mapping:字典映射索引名称到新名称

    default:如果mapping找不到匹配项,则为默认字符串值。

    when:必须成功执行当前规则的条件。

 

  示例elasticsearch输出indices

  output.elasticsearch:

    hosts: ["http://localhost:9200"]

    index: "logs-%{[beat.version]}-%{+yyyy.MM.dd}"

    indices:

          - index: "critical-%{[beat.version]}-%{+yyyy.MM.dd}"

            when.contains:

              message: "CRITICAL"

          - index: "error-%{[beat.version]}-%{+yyyy.MM.dd}"

            when.contains:

              message: "ERR"

 

  pipeline

    格式字符串值,指定要将事件写入的摄取节点管道。

    output.elasticsearch:

      hosts: ["http://localhost:9200"]

      pipeline: my_pipeline_id

 

  pipelines

    与indices数组类似,这是一个支持条件,基于格式字符串的字段访问和名称映射的管道选择器配置数组。第一个规则匹配将用于设置 pipeline要发布的事件。如果pipelines缺少或没有规则匹配,pipeline将使用该字段。

 

  示例elasticsearch输出pipelines

  filebeat.prospectors:

  - paths: ["/var/log/app/normal/*.log"]

    fields:

      type: "normal"

  - paths: ["/var/log/app/critical/*.log"]

    fields:

      type: "critical"

 

  output.elasticsearch:

    hosts: ["http://localhost:9200"]

    index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"

    pipelines:

      - pipeline: critical_pipeline

        when.equals:

          fields.type: "critical"

      - pipeline: normal_pipeline

        when.equals:

          fields.type: "normal"

 

  max_retries

    Filebeat忽略max_retries设置并无限期重试。

 

  bulk_max_size

    单个Elasticsearch批量API索引请求中要批量处理的最大事件数。默认值为50

    事件可以分批收集。Filebeat会将批次大于bulk_max_size 多批次。 

    指定更大的批处理大小可以通过降低发送事件的开销来提高性能。但是,大批量大小也会增加处理时间,这可能会导致API错误,连接中断,超时发布请求,以及最终导致吞吐量降低。

    设置bulk_max_size为小于或等于0的值将禁用批次拆分。禁用拆分时,队列将决定批处理中包含的事件数。

 

  timeout

    Elasticsearch请求的http请求超时(以秒为单位)。默认值为90

 

  ssl

    SSL参数的配置选项,例如用于基于HTTPS的连接的证书颁发机构。如果ssl缺少该部分,则主机CA用于与ElasticsearchHTTPS连接。

 

配置Logstash输出

  Logstash输出通过使用在TCP上运行的lumberjack协议将事件直接发送到LogstashLogstash允许对生成的事件进行额外处理和路由。要将Logstash用作输出,必须 为Logstash 安装和配置 Beats输入插件。

  如果要使用LogstashFilebeat收集的数据执行其他处理,则需要配置Filebeat以使用Logstash

  要执行此操作,请编辑Filebeat配置文件以通过注释掉它来禁用Elasticsearch输出,并通过取消注释logstash部分来启用Logstash输出:

  output.logstash:

    hosts: ["127.0.0.1:5044"]

  该hosts选项指定Logstash服务器和port5044),其中Logstash配置为侦听传入的Beats连接。

  对于此配置,您必须手动将索引模板加载到Elasticsearch中,因为自动加载模板的选项仅适用于Elasticsearch输出。

 

  访问元数据字段

  发送到Logstash的每个事件都包含以下元数据字段,您可以在Logstash中使用这些字段进行索引和过滤:

  {

      ...

      "@metadata": {

        "beat": "filebeat",

        "version": "6.2.4"

        "type": "doc"

      }

  }

  Filebeat使用该@metadata字段将元数据发送到Logstash

  默认为filebeat。要更改此值,请indexFilebeat配置文件中设置该选项。

  目前的值type是硬编码的doc。之前的Logstash配置使用它来设置Elasticsearch中的文档类型。

  警告:@metadata.typeLogstash输出添加的字段已弃用,硬编码doc,并将在Filebeat7.0中删除。

  您可以从Logstash配置文件中访问此元数据,以根据元数据的内容动态设置值。

 

  例如,版本2.x5.x的以下Logstash配置文件将Logstash设置为使用Beats报告的索引和文档类型将事件索引到Elasticsearch中:

  input {{

    beats {{

      port => 5044=> 5044

    }}

  }}

 

  output {{

    elasticsearch {{

      hosts => ["http://localhost:9200"]=> ["http://localhost:9200"]

      index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"

    }}

  }}

 

  %{[@metadata][beat]}将索引名称的第一部分设置为beat元数据字段的值,%{[@metadata][version]}将第二部分设置为Beat的版本,并将%{+YYYY.MM.dd}名称的第三部分设置为基于Logstash @timestamp字段的日期。例如: filebeat-6.2.4-2017.03.29

  使用此处显示的Logstash配置索引到Elasticsearch中的事件类似于Beats直接索引到Elasticsearch的事件。

 

 

配置选项

  enabled

    enabled config是一个布尔设置,用于启用或禁用输出。如果设置为false,则禁用输出。默认值是true

 

  hosts

    要连接的已知Logstash服务器列表。如果禁用负载均衡,但配置了多个主机,则会随机选择一个主机(没有优先级)。如果一台主机无法访问,则随机选择另一台主机。此列表中的所有条目都可以包含端口号。如果未指定端口号,则为其指定的值port将用作默认端口号。

 

  compression_level

    gzip压缩级别。将此值设置为0将禁用压缩。压缩级别必须在1(最佳速度)到9(最佳压缩)的范围内。增加压缩级别将减少网络使用,但会增加CPU使用率。默认值为3

 

  worker

    每个配置主机将事件发布到Logstash的工作器数。这最适用于启用负载平衡模式。示例:如果您有2个主机和3个工作程序,则总共启动6个工作程序(每个主机3个)。

 

  loadbalance

    如果设置为true并且配置了多个Logstash主机,则输出插件会将已发布的事件负载平衡到所有Logstash主机上。如果设置为false,则输出插件仅将所有事件发送到一个主机(随机确定),如果所选主机无响应,则会切换到另一个主机。默认值为false

 

  ttl

    是否可以连接到Logstash,之后将重新建立连接。Logstash主机代表负载均衡器时很有用。由于与Logstash主机的连接是粘性操作,因此负载平衡器可能导致实例之间的负载分配不均匀。在连接上指定TTL允许在实例之间实现相等的连接分配。指定TTL0将禁用此功能。默认值为0。异步Logstash客户端(具有“pipelining”选项集的客户端)尚不支持“ttl”选项。

 

  output.logstash:

    hosts: ["localhost:5044", "localhost:5045"]

    loadbalance: true

    index: filebeat

 

  pipelining

    配置从logstash等待ACK时要异步发送到logstash的批次数。只有pipelining 在编写批次数后,输出才会变为阻塞。如果配置值为0,则禁用流水线操作。默认值为2

 

  proxy_url

    连接到Logstash服务器时要使用的SOCKS5代理的URL。该值必须是方案为的URL socks5://。用于与Logstash通信的协议不基于HTTP,因此无法使用Web代理。

    如果SOCKS5代理服务器需要客户端身份验证,则可以在URL中嵌入用户名和密码,如示例中所示。

    使用代理时,主机名在代理服务器上而不是在客户端上解析。您可以通过设置proxy_use_local_resolver选项来更改此行为 。

 

    output.logstash:

      hosts: ["remote-host:5044"]

      proxy_url: socks5://user:password@socks5-proxy:2233

 

  proxy_use_local_resolver

    该proxy_use_local_resolver选项确定在使用代理时是否在本地解析Logstash主机名。默认值为false,这意味着在使用代理时,代理服务器上会发生名称解析。

 

  index

    将事件写入的索引根名称。默认值为Beat名称。例如,"filebeat"生成"[filebeat-]6.2.4-YYYY.MM.DD" 索引(例如,"filebeat-6.2.4-2017.04.26")。

 

  ssl

    SSL参数的配置选项,例如Logstash连接的根CA. 有关更多信息,请参阅 指定SSL设置。要使用SSL,还必须为Logstash配置 Beats输入插件以使用SSL / TLS

 

  timeout

    在超时之前等待Logstash服务器响应的秒数。默认值为30(秒)。

 

  max_retries

    Filebeat忽略max_retries设置并无限期重试。

 

  bulk_max_size

    单个Logstash请求中要批量处理的最大事件数。默认值为2048

    如果Beat发送单个事件,则会将事件收集到批处理中。如果Beat发布大量事件(大于指定的值bulk_max_size),则拆分批处理。

     指定更大的批处理大小可以通过降低发送事件的开销来提高性能。但是,大批量大小也会增加处理时间,这可能会导致API错误,连接中断,超时发布请求,以及最终导致吞吐量降低。

    设置prospectorsbulk_max_size为小于或等于0的值将禁用批次拆分。禁用拆分时,队列将决定批处理中包含的事件数。

 

  slow_start

    如果启用,则每个事务仅传输一批事件中的一部分事件。bulk_max_size如果没有遇到错误,则要发送的事件数量会增加。出错时,每个事务的事件数量再次减少。默认是false

 

配置kafka输出

  Kafka输出将事件发送到Apache Kafka

 

配置示例

output.kafka:

  # initial brokers for reading cluster metadata

  hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"]

 

  # message topic selection + partitioning

  topic: '%{[fields.log_topic]}'

  partition.round_robin:

    reachable_only: false

 

  required_acks: 1

  compression: gzip

  max_message_bytes: 1000000

  大于的事件max_message_bytes将被删除。要避免此问题,请确保Filebeat不会生成大于的事件max_message_bytes

 

配置选项

enabled

  的enabled配置是一个布尔设置可启用或禁止输出。如果设置为false,则禁用输出。默认值是true

 

hosts

  从中获取集群元数据的Kafka代理地址列表。集群元数据包含发布到的实际Kafka代理事件。

 

version

  假设Kafka版本$ filebeat运行。默认为最早支持的稳定版本(当前版本为0.8.2.0)。

  如果启用了版本0.10.0.0+,则将添加事件时间戳。

  有效值之间的所有卡夫卡版本0.8.2.00.11.0.0

 

username

  用于连接Kafka的用户名​​。如果配置了用户名,则还必须配置密码。仅支持SASL / PLAIN

 

password

  连接Kafka的密码。

 

topic

  用于制作活动的Kafka主题。该设置可以是使用任何事件字段的格式字符串。例如,您可以使用 fields配置选项添加调用log_topic该事件的自定义字段,然后设置topic为自定义字段的值:

 

topics

  支持条件的主题选择器规则数组,基于格式字符串的字段访问和名称映射。第一个规则匹配将用于设置topic要发布的事件。如果topics缺少或没有规则匹配,topic将使用该字段。

 

规则设置:

topic:要使用的主题格式字符串。如果缺少使用的字段,则规则将失败。

mapping:字典映射索引名称到新名称

default:如果mapping找不到匹配项,则为默认字符串值。

when:必须成功执行当前规则的条件。

 

key

  可选的Kafka事件密钥。如果已配置,则事件键必须是唯一的,并且可以使用格式字符串从事件中提取。

 

partition

  Kafka输出经纪人事件分区策略。必须是一个randomround_robinhash。默认情况下,使用hash分区程序。

 

  random.group_events:设置在分区程序随机选择新分区之前要发布到同一分区的事件数。默认值为1表示在每个事件后随机选取新分区。

  round_robin.group_events:在分区程序选择下一个分区之前,设置要发布到同一分区的事件数。默认值为1表示在每个事件之后将选择下一个分区。

  hash.hash:用于计算分区哈希值的字段列表。如果未配置任何字段,key则将使用事件值。

  hash.random:如果不能计算散列值或键值,则随机分配事件。

  默认情况下,所有分区程序都会尝试将事件发布到所有分区。如果分区的领导者无法访问节拍,则输出可能会阻止。所有分区程序都支持设置reachable_only以覆盖此行为。如果reachable_only设置为true,则事件将仅发布到可用分区。

  发布到可用分区的子集可能会增加资源使用量,因为事件可能会分布不均匀。

 

client_id

  可配置的ClientID,用于记录,调试和审计。默认为“beats”。

 

worker

  并发负载均衡Kafka输出工作者的数量。

 

codec

  输出编解码器配置。如果codec缺少该部分,则事件将被json编码。有关更多信息,请参阅输出编解码器

 

metadata

  Kafka元数据更新设置。元数据确实包含有关用于发布的代理,主题,分区和活动领导者的信息。

  refresh_frequency  元数据刷新间隔。默认为10分钟。

  retry.max  当群集处于领导者选举的中间时,元数据更新重试的总次数。默认值为3

  retry.backoff   领导选举期间重试之间的等待时间。默认值为250毫秒。

 

max_retries

  Filebeat忽略max_retries设置并无限期重试。

 

bulk_max_size

  单个Kafka请求中批量处理的最大事件数。默认值为2048

 

timeout

  在超时之前等待Kafka经纪人响应的秒数。默认值为30(秒)。

 

broker_time

  代理将等待所需ACK数的最大持续时间。默认值为10秒。

 

channel_buffer_size

  每个Kafka代理在输出管道中缓冲的消息数。默认值为256

 

keep_alive

  活动网络连接的保持活动期。如果为0,则禁用保持活动。默认值为0秒。

 

compression

  设置输出压缩编解码器。必须是一个nonesnappylz4gzip。默认是gzip

 

max_message_bytes

  JSON编码消息的最大允许大小。更大的消息将被删除。默认值为1000000(字节)。该值应等于或小于经纪人的值message.max.bytes

 

required_acks

  经纪人需要的ACK可靠性等级。0 =无响应,1 =等待本地提交,-1 =等待所有副本提交。默认值为1

  注意:如果设置为0Kafka不会返回任何ACK。错误时,消息可能会以静默方式丢失。

 

ssl

  SSL参数的配置选项,例如Kafka连接的根CA. 有关更多信息,请参阅 指定SSL设置。

  

配置redis输出

  Redis输出将事件插入Redis列表或Redis通道。此输出插件与Logstash Redis输入插件兼容。

 

配置示例:

output.redis:redis:

  hosts: ["localhost"]  hosts: ["localhost"]

  password: "my_password"password: "my_password"

  key: "filebeat"key: "filebeat"

  db: 0db: 0

  timeout: 5timeout: 5

 

兼容性

此输出适用于Redis 3.2.4

 

配置选项

enabled

  enabled config是一个布尔设置,用于启用或禁用输出。如果设置为false,则禁用输出。默认值是true

 

hosts

  要连接的Redis服务器列表。如果启用了负载平衡,则会将事件分发到列表中的服务器。如果一台服务器无法访问,则事件仅分发给可访问的服务器。您可以通过指定HOST或定义每个Redis服务器 HOST:PORT。例    如:"192.15.3.2""test.redis.io:12345"。如果未指定端口号,port则使用配置的值。

 

key

  发布事件的Redis列表或通道的名称。默认为“filebeat”。

  可以使用访问要发布的事件中的任何字段的格式字符串动态设置redis密钥。

  此配置将使用该fields.list字段设置redis列表键。如果 fields.list缺少,fallback将被使用。

 

output.redis:redis:

  hosts: ["localhost"]  hosts: ["localhost"]

  key: "%{[fields.list]:fallback}"key: "%{[fields.list]:fallback}"

 

keys

  支持条件的键选择器配置数组,基于格式字符串的字段访问和名称映射。第一个规则匹配将用于设置key要发布的事件。如果keys缺少或没有规则匹配,key将使用该字段。规则设置:

  key:键格式字符串。如果缺少格式字符串中使用的字段,则规则将失败。

  mapping:字典将键值映射到新名称

  default:如果mapping找不到匹配项,则为默认字符串值。

  when:必须成功执行当前规则的条件。

 

示例keys设置:

output.redis:redis:

  hosts: ["localhost"]  hosts: ["localhost"]

  key: "default_list"key: "default_list"

  keys:keys:

    - key: "info_list"   # send to info_list if `message` field contains INFO    - key: "info_list"   # send to info_list if `message` field contains INFO

      when.contains:contains:

        message: "INFO"        message: "INFO"

    - key: "debug_list"  # send to debug_list if `message` field contains DEBUG- key: "debug_list"  # send to debug_list if `message` field contains DEBUG

      when.contains:contains:

        message: "DEBUG"        message: "DEBUG"

    - key: "%{[fields.list]}"- key: "%{[fields.list]}"

      mapping:mapping:

        "http": "frontend_list"        "http": "frontend_list"

        "nginx": "frontend_list""nginx": "frontend_list"

        "mysql": "backend_list""mysql": "backend_list"

 

password

  用于进行身份验证的密码。默认为无身份验证。

 

db

  发布事件的Redis数据库编号。默认值为0

 

datatype

  用于发布事件的Redis数据类型。如果数据类型为list,则使用Redis RPUSH命令,并将所有事件添加到列表中,并在其下定义键key。如果使用数据类型,channel则使用Redis PUBLISH命令,这意味着所有事件都被推送到Redispub / sub机制。频道的名称是在其下定义的名称key。默认值为list

 

codec

  输出编解码器配置。如果codec缺少该部分,则事件将被json编码。

 

worker

  为配置为向Redis发布事件的每个主机使用的工作器数。将此设置与loadbalance选项一起使用 。例如,如果您有2个主机和3个工作程序,则总共启动6个工作程序(每个主机3个)。

 

loadbalance

  如果设置为true并且配置了多个主机或工作程序,则输出插件会将已发布的事件负载平衡到所有Redis主机上。如果设置为false,则输出插件仅将所有事件发送到一个主机(随机确定),如果当前选定的主机无法访问,则将切换到另一个主机。默认值是true

 

timeout

  Redis连接超时(以秒为单位)。默认值为5秒。

 

max_retries

  Filebeat忽略max_retries设置并无限期重试。

 

bulk_max_size

  单个Redis请求或管道中要批量处理的最大事件数。默认值为2048

  如果Beat发送单个事件,则会将事件收集到批处理中。如果Beat发布大量事件(大于指定的值 bulk_max_size),则拆分批处理。

  指定更大的批处理大小可以通过降低发送事件的开销来提高性能。但是,大批量大小也会增加处理时间,这可能会导致API错误,连接中断,超时发布请求,以及最终导致吞吐量降低。

  设置bulk_max_size为小于或等于0的值将禁用批次拆分。禁用拆分时,队列将决定批处理中包含的事件数。

 

ssl

  SSL参数的配置选项,例如由SSL代理保护的Redis连接的根CA(例如stunnel)。有关更多信息,请参阅 指定SSL设置。

 

proxy_url

  连接到Redis服务器时要使用的SOCKS5代理的URL。该值必须是方案为的URL socks5://。您无法使用Web代理,因为用于与Redis通信的协议不基于HTTP

  如果SOCKS5代理服务器需要客户端身份验证,则可以在URL中嵌入用户名和密码。

  使用代理时,主机名在代理服务器上而不是在客户端上解析。您可以通过设置proxy_use_local_resolver选项来更改此行为 。

 

proxy_use_local_resolver

  此选项确定在使用代理时是否在本地解析Redis主机名。默认值为false,这意味着代理服务器上会发生名称解析。

 

配置文件输出

File输出将事务转储到每个事务都是JSON格式的文件中。目前,此输出用于测试,但它可以用作Logstash的输入。

 

output.file:

  path: "/tmp/filebeat"

  filename: filebeat

  #rotate_every_kb: 10000

  #number_of_files: 7

  #permissions: 0600

 

配置选项

enabled

  enabled config是一个布尔设置,用于启用或禁用输出。如果设置为false,则禁用输出。默认值是true

 

path

  保存生成文件的目录的路径。此选项是必需的。

 

filename

  生成的文件的名称。默认设置为Beat名称。例如,Filebeat默认生成的文件将是“filebeat”,“filebeat.1”,“filebeat.2”等。

 

rotate_every_kb

  每个文件的最大大小(以KB为单位)。达到此大小时,将旋转文件。默认值为10240 KB

 

nunber_of_files

  要保存的最大文件数path。达到此数量的文件时,将删除最旧的文件,其余文件将从最后一个文件转移到第一个文件。默认值为7个文件。

 

permissions

  用于文件创建的权限。默认值为0600

 

codec

  输出编解码器配置。如果codec缺少该部分,则事件将被json编码。有关更多信息,请参阅输出编解码器

 

配置控制台输出

Console输出将JSON格式的事件写入stdout

output.console:

  pretty: true

 

配置选项

pretty

如果pretty设置为true,则写入stdout的事件将被很好地格式化。默认值为false

 

codec

  输出编解码器配置。如果codec缺少该部分,则使用该pretty选项对事件进行json编码。有关更多信息,请参阅输出编解码器

 

enabled

  enabled config是一个布尔设置,用于启用或禁用输出。如果设置为false,则禁用输出。默认值是true

 

bulk_max_size

  发布期间内部缓冲的最大事件数。默认值为2048

  指定较大的批处理大小可能会在发布期间增加一些延迟和缓冲。但是,对于控制台输出,此设置不会影响事件的发布方式。

  设置bulk_max_size为小于或等于0的值将禁用批次拆分。禁用拆分时,队列将决定批处理中包含的事件数。

  

配置输出解码器

对于不需要特定编码的输出,可以使用编解码器配置更改编码。您可以指定jsonformat 编解码器。默认情况下,使用json编解码器。

json.pretty:如果pretty设置为true,则事件将被很好地格式化。默认值为false

 

使用json带有漂亮打印的编解码器将事件写入控制台的示例配置:

output.console:

  codec.json:

    pretty: true

 

format.string:可配置的格式字符串,用于创建自定义格式的消息。

 

可配置示例,使用format编解码器将事件时间戳和消息字段打印到控制台:

output.console:

  codec.format:

    string: '%{[@timestamp]} %{[message]}'

 

负载均衡输出主机

Filebeat提供配置选项,可用于在将事件发送到多个主机时微调负载平衡。

 

要启用负载平衡,请指定loadbalance: true配置输出的时间。例如:

output.logstash:

  hosts: ["localhost:5044", "localhost:5045"]

  loadbalance: true

 

loadbalance选项可用于RedisLogstashElasticsearch输出。Kafka输出在内部处理负载平衡。

 

负载均衡器还支持每个主机多个工作线程。默认是 worker: 1。如果增加工作人员数量,将使用其他网络连接。参与负载平衡的工作者总数是number of hosts * workers

 

filebeat.prospectors:

- type: log

  paths:

    - /var/log/*.log

output.logstash:

  hosts: ["localhost:5044", "localhost:5045"]

  loadbalance: true

  worker: 2

  在此示例中,有4worker参与负载平衡。

  

指定ssl设置

您可以在配置时指定SSL选项:

支持SSL的 输出

Kibana端点

 

启用ssl的示例输出配置

output.elasticsearch.hosts: ["192.168.1.42:9200"]

output.elasticsearch.ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

output.elasticsearch.ssl.certificate: "/etc/pki/client/cert.pem"

output.elasticsearch.ssl.key: "/etc/pki/client/cert.key"

 

另请参阅使用SSLLogstash进行安全通信。

启用S​​SL的示例Kibana端点配置:

setup.kibana.host: "192.0.2.255:5601"

setup.kibana.protocol: "https"

setup.kibana.ssl.enabled: true

setup.kibana.ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

setup.kibana.ssl.certificate: "/etc/pki/client/cert.pem"

setup.kibana.ssl.key: "/etc/pki/client/cert.key"

 

配置选项

enabled

  该enabled设置可用于通过将其设置为禁用ssl配置false。默认值为true。如果enabled设置为falsessl缺少部分,则禁用SSL设置。

 

certificate_authorities

  服务器验证的根证书列表。如果certificate_authorities为空或未设置,则使用主机系统的可信证书颁发机构。

 

certificate: "/etc/pki/client/cert.pem"

  SSL客户端身份验证证书的路径。如果未指定证书,则客户端身份验证不可用。如果服务器请求客户端身份验证,连接可能会失败 如果SSL服务器不需要客户端身份验证,则将加载证书,但服务器不会请求或使用该证书。

配置此选项后,certificate_key还需要该选项。

 

key: "/etc/pki/client/cert.key"

  用于客户端身份验证的客户端证书密钥。如果certificate指定,则此选项是必需的。

 

key_passphrase

  密码短语用于解密存储在配置key文件中的加密密钥。

 

supported_protocols

  允许的SSL / TLS版本列表。如果SSL / TLS服务器决定未配置的协议版本,则在握手期间或之后将断开连接。该设置是允许的协议版本的列表: SSLv3TLSv1用于TLS版本1.0TLSv1.0TLSv1.1TLSv1.2。默认值为[TLSv1.0, TLSv1.1, TLSv1.2]

 

verification_mode

  此选项控制客户端是否验证服务器证书和主机名。有效值为nonefull。如果verification_mode设置为none,则接受所有服务器主机名和证书。在此模式下,基于TLS的连接容易受到中间人攻击。使用此选项仅用于测试。默认是full

 

cipher_suites

  要使用的密码套件列表。第一个条目具有最高优先级。如果省略此选项,则使用Go加密库的默认套件(推荐)。

以下密码套件可用:

RSA-RC4-128-SHA(默认禁用 - 不建议使用RC4

RSA-3DES-CBC3-SHA

RSA-AES-128-CBC-SHA

RSA-AES-256-CBC-SHA

ECDHE-ECDSA-RC4-128-SHA(默认禁用 - 不建议使用RC4

ECDHE-ECDSA-AES-128-CBC-SHA

ECDHE-ECDSA-AES-256-CBC-SHA

ECDHE-RSA-RC4-128-SHA(默认禁用 - 不建议使用RC4

ECDHE-RSA-3DES-CBC3-SHA

ECDHE-RSA-AES-128-CBC-SHA

ECDHE-RSA-AES-256-CBC-SHA

ECDHE-RSA-AES-128-GCM-SHA256(仅限TLS 1.2

ECDHE-ECDSA-AES-128-GCM-SHA256(仅限TLS 1.2

ECDHE-RSA-AES-256-GCM-SHA384(仅限TLS 1.2

ECDHE-ECDSA-AES-256-GCM-SHA384(仅限TLS 1.2

 

以下是用于定义密码套件的首字母缩略词列表:

3DES:使用三重DES的密码套件

AES-128/256:使用带128/256密钥的AES的密码套件。

CBC:使用密码块链接作为分组密码模式的密码。

ECDHE:使用Elliptic Curve Diffie-HellmanDH)短暂密钥交换的密码套件。

ECDSA:使用椭圆曲线数字签名算法进行身份验证的密码套件。

GCMGalois / Counter模式用于对称密钥加密。

RC4:使用RC4的密码套件。

RSA:使用RSA的密码套件。

SHASHA256SHA384:使用SHA-1SHA-256SHA-384的密码套件。

 

curve_types

  ECDHE(椭圆曲线Diffie-Hellman短暂密钥交换)的曲线类型列表。

以下椭圆曲线类型可用:

P-256

P-384

P-521

 

renegotiation

  这会配置支持哪种类型的TLS重新协商。有效的选项是neveroncefreely。永远不会是默认值。

  never - 禁用重新协商。

  once - 允许远程服务器在每个连接请求重新协商一次。

  freely - 允许远程服务器重复请求重新协商。

 

过滤并增强导出的数据

您的用例可能只需要Filebeat导出的数据的一部分,或者您可能需要增强导出的数据(例如,通过添加元数据)。Filebeat提供了几个用于过滤和增强导出数据的选项。

您可以将每个prospector配置为包含或排除特定行或文件。这允许您为每个探针器指定不同的过滤条件。要做到这一点,您可以使用include_linesexclude_lines以及exclude_files 下方的选项filebeat.prospectors配置文件的部分(见 设置勘探者)。此方法的缺点是您需要为所需的每个过滤条件实施配置选项。

另一种方法(此处描述的方法)是定义处理器以配置Filebeat导出的所有数据的全局处理。

 

处理器

  您可以在配置中定义处理器,以便在将事件发送到配置的输出之前处理事件。libbeat库提供以下处理器:

  减少导出字段的数量

  使用其他元数据增强事件

  执行额外的处理和解码

 

  每个处理器接收事件,将定义的操作应用于事件,并返回事件。如果定义处理器列表,则按照Filebeat配置文件中定义的顺序执行它们。

  event -> processor 1 -> event1 -> processor 2 -> event2 ...

 

  删除事件示例

  以下配置将删除所有DEBUG消息。

  processors:

   - drop_event:

       when:

          regexp:  

             message: "^DBG:"

 

  要删除来自某个日志文件的所有日志消息:

  processors:

   - drop_event:

       when:

          contains:

             source: "test"

 

 

以上。

 

 

 

 

posted @ 2018-11-14 15:24  风住  阅读(20709)  评论(0编辑  收藏  举报