温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Fluentd如何部署日志

发布时间:2021-11-30 14:28:26 来源:亿速云 阅读:183 作者:小新 栏目:大数据

这篇文章主要介绍Fluentd如何部署日志,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Fluentd是用来处理其他系统产生的日志的,它本身也会产生一些运行时日志。我们一起来了解一下Fluentd本身的日志机制。

Fluentd包含两个日志层:全局日志和插件级日志。每个层次的日志都可以进行单独配置。

  1. 日志级别

    Fluentd的日志包含6个级别:fatal、error、warn、info、debug和trace。级别依次递增,高级别的日志包含低级别的日志。默认为info,所以默认情况下,日志中包含info、warn、error、fatal这4个级别的日志。


  2. 全局日志

    Fluentd内核使用全局日志配置,若插件没有单独设置自己的日志配置项,插件也共用全局日志配置项。可通过命令行或配置文件进行设置。

    1. 命令行

      -v、-vv用于增加日志级别,-q、-qq用于降低日志级别。

      $ fluentd -v  ... # debug level$ fluentd -vv ... # trace level
      $ fluentd -q  ... # warn level$ fluentd -qq ... # error leve
      使用命令行可以在不改变配置文件的情况下调整日志级别,方便调试。



    2. 配置文件
      也可以在配置文件中设置<system>的log_level来配置全局日志级别。    
            
            
            
            <system>   
             
             
               # equal to -qq option   
             
             
               log_level error   
             
             
             </system>


  3. 插件日志
    可通过 @log_level对每个插件单独设置日志级别,这个级别将覆盖全局日志级别。
     
         
         
         
         <source>  
          
          
            @type tail  
          
          
            @log_level debug  
          
          
            path /var/log/data.log  
          
          
            ...  
          
          
          </source>  
          
          
          <source>  
          
          
            @type http  
          
          
            @log_level fatal  
          
          
          </source>
     
    上边这个片段中,我们对两个不同的输入源分别设置了各自的日志级别。

  4. 日志格式
    如今天第一篇文章中所述,Fluentd的日志支持text和json两种格式,默认使用text,可在<system>中进行设定。
     
         
         
         
         <system>  
          
          
            <log>  
          
          
              format json  
          
          
              time_format %Y-%m-%d  
          
          
            </log>  
          
          
          </system>
     
    若使用json格式,
     
         
         
         
         2017-07-27 06:44:54 +0900 [info]: #0 fluentd worker is now running worker=0
     
    这条日志将会转化为如下输出:
     
         
         
         
         {"time":"2017-07-27","level":"info","message":"fluentd worker is now running worker=0","worker_id":0}
        
  5. 将日志写入文件
    Fluentd默认将其日志输出到stdout,可通过-o将日志输出到文件中。
     
         
         
         
         $ fluentd -o /path/to/log_file
     
    若将日志写入文件,默认情况下Fluentd不会进行日志轮转,即会向指定的文件中不断写入日志,这可能会导致日志文件过大。可通过命令行参数开启日志轮转功能。

    1. --log-rotate-age AGE
      这里AGE为整数或字符串,需要和下边的rotate-size配合使用。
      整数表示轮转文件个数;
      字符串表示轮转频率,可为daily、weekly或monthly。
    2. -log-rotate-size BYTES
      BYTES为轮转文件的大小,达到此字节数即开始写入新的文件。
      当rotate-age值为整数时,通过此配置项控制日志的轮转。    
      $ fluentd -c fluent.conf --log-rotate-age 5 --log-rotate-size 104857600



  6. 捕获Fluentd日志
    Fluentd自身日志也可以被采集。
    Fluentd使用fluent作为自身日志的tag,我们可以通过<label @FLUENT_LOG>来处理Fluentd自身的日志。
    # Add hostname for identifying the server<label @FLUENT_LOG>  <filter fluent.*>    @type record_transformer    <record>      host "#{Socket.gethostname}"    </record>  </filter>
     <match fluent.*>    @type monitoring_plugin    # parameters...  </match><label>
     
    这样做的一个用处是用来监控Fluentd运行情况。

以上是“Fluentd如何部署日志”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI