Fluentd是用来处理其他系统产生的日志的,它本身也会产生一些运行时日志。Fluentd包含两个日志层:全局日志和插件级日志。每个层次的日志都可以进行单独配置。

  1. 日志级别

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

  2. 全局日志

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

2.1 命令行

  • -v、-vv用于增加日志级别,-q、-qq用于降低日志级别。
$ fluentd -v  ... # debug level
$ fluentd -vv ... # trace level $ fluentd -q ... # warn level
$ fluentd -qq ... # error leve

使用命令行可以在不改变配置文件的情况下调整日志级别,方便调试。

  • 配置文件

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

    可通过@log_level对每个插件单独设置日志级别,这个级别将覆盖全局日志级别。
<source>
@type tail
@log_level debug
path /var/log/data.log
...
</source>
<source>
@type http
@log_level fatal
</source>

上边这个片段中,对两个不同的输入源分别设置了各自的日志级别。

  1. 日志格式

    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}
  1. 将日志写入文件

    Fluentd默认将其日志输出到stdout,可通过-o将日志输出到文件中。
$ fluentd -o /path/to/log_file

若将日志写入文件,默认情况下Fluentd不会进行日志轮转,即会向指定的文件中不断写入日志,这可能会导致日志文件过大。可通过命令行参数开启日志轮转功能。

5.1 --log-rotate-age AGE

这里AGE为整数或字符串,需要和下边的rotate-size配合使用。

整数表示轮转文件个数;

字符串表示轮转频率,可为daily、weekly或monthly。

5.2 --log-rotate-size BYTES

BYTES为轮转文件的大小,达到此字节数即开始写入新的文件。

当rotate-age值为整数时,通过此配置项控制日志的轮转。

$ fluentd -c fluent.conf --log-rotate-age 5 --log-rotate-size 104857600
  1. 捕获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运行情况。

9. Fluentd部署:日志的更多相关文章

  1. JXOJ(基于UOJ)部署日志

    JXOJ部署日志 前些日子协助cyc.llf两位奆老部署了JXOJ,为方便日后维护我校OJ的同学,写篇日志做记录以日后查看. 一.准备: ​ 在尝试了多个不同OJ之后,我们最终选择了Universal ...

  2. 为什么我们需要Logstash,Fluentd等日志摄取器?

    前文传送门:Logging with ElasticSearch, Kibana, ASP.NET Core and Docker 疑问:既然应用能直接向ElasticSearch写日志,为什么我们还 ...

  3. Linux_部署日志服务器

    一.部署日志服务 1.查看自己的系统是否安装(一般默认安装) [root@localhost ~]# rpm -qa | grep rsyslog rsyslog-8.37.0-13.el8.x86_ ...

  4. Fluentd部署详解

    Fluentd系统配置项 https://www.cnblogs.com/sanduzxcvbnm/p/13920972.html Fluentd自身日志 https://www.cnblogs.co ...

  5. 10. Fluentd部署:高可用配置

    对于高访问量的web站点或者服务,可以采用Fluentd的高可用配置模式. 消息分发语义 Fluentd设计初衷主要是用作事件日志分发系统的.这类系统支持几种不同的分发模式: 至多一次.消息被立即发送 ...

  6. CentOS 6.7下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

    一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...

  7. CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

    一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...

  8. 性能测试二十:环境部署之Tomcat多实例部署+日志监控

    一个tomcat性能有限,所以需要部署等多个tomcat 单实例部署与windows下类似,项目包放到webapp目录下,启动bin目录下的startup.sh即可启动命令:./startup.sh启 ...

  9. CDH部署日志

    CDH部署时出现如图所示的错误 可去服务器查看:/opt/cm-5.5.0/run/cloudera-scm-agent/process/ccdeploy_hbase-conf_etchbasecon ...

随机推荐

  1. labview入门到出家11(补充)——基于单片机和labview开发的虚拟示波器

    ​ 之前有小伙伴提到需要虚拟示波器的资料,有些库还有文件丢失了,直接给的工程跑不起来,这里我把关键的地方讲解一下,大家可以自行开发.其实开发不难,只是有些点会耗点时间.虚拟示波器,顾名思义就是非实物的 ...

  2. for_in循环

    for-in循环也可以简单称为for循环 in表达从(字符串,序列等)中依次取值,又称为遍历(全部都要取到) for-in遍历的对象必须是可迭代对象 目前可以简单认为只有字符串和序列是可迭代对象 它是 ...

  3. 常用的函数式接口_Prodicate接口_默认方法or&negate和常用的函数式接口_Predicate接口练习_集合信息筛选

    常用的函数式接口_Prodicate接口_默认方法or&negate OR package com.yang.Test.PredicateStudy; import java.util.fun ...

  4. Linux系列之管理用户环境变量

    前言 环境变量控制你在Linux工作环境中的外观.行为和感觉.一共有两种类型的变量: 环境变量:这些是内置于系统中的进程范围的变量,控制着系统的外观和行为.因为是进程范围的,所以它们被任何子shell ...

  5. java基础Synchronized关键字之对象锁

    java中Synchronized关键字之对象锁    当有多个线程对一个共享数据进行操作时,需要注意多线程的安全问题. 多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同 ...

  6. BZOJ3732 (Kruskal重构树)

    Kruskal重构树上\(x\)和\(v\)的\(lca\)的权值即为它们最长路最小值 #include <cstdio> #include <iostream> #inclu ...

  7. Windows 电脑杀毒简单有效的方式

    Windows 电脑杀毒通常会选择杀毒软件,这样太笨重,且容易占内存和存在流氓软件侵入. 推荐使用 Windows 自带的恶意软件删除工具 按住 Win + R 键,弹出运行窗口,输入 mrt. 系统 ...

  8. 开源图编辑库 NebulaGraph VEditor 的设计思路分享

    本文首发于 NebulaGraph 公众号 NebulaGraph VEditor 是一个拥有高性能.高可定制的所见即所得图可视化编辑器前端库. NebulaGraph VEditor 底层基于 SV ...

  9. TypeScript 项目报错 Unknown file extension ".ts"

    下图是该问题的详细报错截图,经过多次捣鼓,初步猜测是模块有问题,要用 ES Module 还真是曲折,最不容易出错的就是 CommonJS 模块: 在百度.Bing 上搜索了好久的帖子也都没有相关的解 ...

  10. 在 WXML 中直接使用 JS 代码

    因为有在 Vue 下开发应用的习惯,希望能够直接在 wxml 中的标签里使用 JS 代码.微信小程序其实也是可以的,在使用 JS 代码的时候需要用{{}}来包裹起来. 以下是在 wxml 中使用 JS ...