zoukankan      html  css  js  c++  java
  • fluentd-简介

    一、Fluentd简介

    1. Fluentd是一个完全免费且完全开源的日志收集器
    2. Fluentd将日志视为JSON

    二、Fluentd特性

    1. 使用JSON统一日志结构:使用JSON后,下游的数据处理起来相当的容易,因为JSON结构在保留了灵活的模式的同时,可以被无障碍的使用
    2. 可插拔的架构
    3. 最低的资源需求:Fluentd是用C和Ruby组合编写的,需求非常少的系统资源。普通的实例内存占用在30-40MB,可以处理13000个事件/每秒/每核心
    4. 高可靠性:Fluentd支持基于内存和基于文件的缓冲区来避免内部节点的数据丢失。Fluentd还支持容错和设置高可用

    三、配置文件

    1. source(数据源):决定从哪里读取日志,关键字type指定启用插件后配置相关参数
      注意:每个source必须包含一个@type参数,用于指定要使用的输入插件;标准输入插件:http、forward
    2. filter(过滤器):根据规则过滤觉得哪些采集哪些丢弃,或者添加指定内容
      注意:过滤器是从上往下顺序执行的
    3. match(输出目的地):查找具有匹配标签的事件并对其进行处理,最常见的用法是将事件输出到其他系统
      标准输出插件:file、forward
    4. label(标签):默认情况下事件是按照从上到下的顺序进行处理的(配置复杂的情况下不便于理解),“标签”指令将过滤器和输出分组以进行内部路由
      1)在source部分指定label,因此时间都只会在对应的label部分进行过滤,而没有label的将不生效
      2)应该在紧密匹配模式之后定义较宽的匹配模式(若labe **在label myapp.access之前,则匹配过**后不会匹配具体的标签;若**在 myapp.access之后则两个都会生效
      3)如果存在两个完全相同的label,则第二个永远不会生效,如果想将日志发送到多个输出端可以使用out_copy插件

      4)永远不要讲filter放在match之后,否则filter将不会生效
    5. system(设置系统范围)
    6. @include:调用其他文件,可以将公共配置写入include所调用的文件,这样可以实现配置的复用
      1)Fluentd将按标签在配置文件中出现的顺序进行匹配

    <source>
        @type http
        port 8888
        bind 0.0.0.0
       @label @STAGING </source>
    <system>
      log_level info  #日志登记
      without_source
      suppress_repeated_stacktrace
      emit_error_log_interval  #错误日志间隔时间
      suppress_config_dump  #禁止配置转储
      process_name  #进程名
    <filter test.cycle> @type grep <exclude> key action pattern ^login$ </exclude> </filter> <label @STAGING> <filter test.cycle> @type grep <exclude> key action pattern ^logout$ </ exclude> </filter> <match test.cycle> @type stdout </match> </label>

    @include config.d/*.conf

    注解:此处因为source有使用label @STAGING,因此此处只会调用logout部分,而login的filter会被忽略
    @include调用config.d/目录下的配置文件(为了明确目录下配置文件的调用顺序,最佳使用方式是使用@include多次调用)

    四、正则表达式使用

    • *:匹配一个任意字符:a.*匹配a.b;但不匹配a或a.b.c
    • **:匹配任意个任意字符:a.**匹配以a开头的所有字符
    • {X,Y,Z}:匹配其中任意一个,可以与*和**一起使用。如{a,b} a满足,b也满足

    五、数据类型

    • string:字符串(不带引号,带单引号,带双引号)
    • integer:整数
    • float:浮点数
    • size:字节
      k匹配kilobytes.
      m匹配megabytes
      g匹配gigabytes
      t匹配terabytes
      不带单位将匹配未字节
    • time:持续时间:整数型:s/秒、m/分、h/小时、d/天,不带单位将默认为浮点型,默认单位为秒
    • array:JSON数组:key1,key2
    • hash:JSON对象:key1:value1,key2:value2

    六、配置检查

      fluentd --dry-run -c fluent.conf

  • 相关阅读:
    yeoman+grunt/gulp+bower构建angular项目
    eclipse配置svn 并从svn下载maven项目 配置tomcat启动maven项目(二)
    eclipse配置svn 并从svn下载maven项目 配置tomcat启动maven项目
    mysql Oracle常用使用区别
    海思平台交叉编译curl支持SSL功能
    Gitlab 自动构建心得
    openssl windows平台编译库
    更换树莓派源成国内源
    使用ntp协议同步本地时间(C语言)
    网络分析纪录
  • 原文地址:https://www.cnblogs.com/jayce9102/p/12322401.html
Copyright © 2011-2022 走看看