fluentd学习笔记

本文主要讲述fluentd 收集 java的日志信息,对于新接触fluentd有个快速的开始.

一丶什么是fluentd

套用官网的图片及概况

Fluentd是一款开源数据收集器,可让您统一数据收集和消耗,以更好地使用和理解数据。

使用fluentd之前,你的系统是这样的


使用之后


二.安装fluentd

官网上描述的有不同的安装方式,本人使用的是rpm安装.可以根据自己的喜好选择

官网安装:https://docs.fluentd.org/v1.0/articles/java#installing-fluentd

直接执行

echo "=============================="
echo " td-agent Installation Script "
echo "=============================="
echo "This script requires superuser access to install rpm packages."
echo "You will be prompted for your password by sudo."

# clear any previous sudo permission
sudo -k

# run inside sudo
sudo sh <<SCRIPT

  # add GPG key
  rpm --import https://packages.treasuredata.com/GPG-KEY-td-agent

  # add treasure data repository to yum
  cat >/etc/yum.repos.d/td.repo <<'EOF';
[treasuredata]
name=TreasureData
baseurl=http://packages.treasuredata.com/3/redhat/\$releasever/\$basearch
gpgcheck=1
gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent
EOF

  # update your sources
  yum check-update

  # install the toolbelt
  yes | yum install -y td-agent

SCRIPT

# message
echo ""
echo "Installation completed. Happy Logging!"
echo ""

执行完之后就会在本机安装fluentd

rpm安装的话可以通过/etc/init.d/td-agent  start 来开启fluentd

[root@localhost admin]# /etc/init.d/td-agent start
Starting td-agent (via systemctl):                         [  确定  ]

开启完成之后,可以使用/etc/init.d/td-agent status 命令.查看fluentd的状态

[root@localhost admin]# /etc/init.d/td-agent status
td-agent is running                                        [  确定  ]

这样的状态表示fluentd已经启动成功了.

三.配置文件(vim /etc/td-agent/td-agent.conf)

[root@localhost admin]# vim /etc/td-agent/td-agent.conf

在配置文件里你需要为很多参数赋值,这些值必须使用 fluentd 支持的数据格式,有下列这些:

  • string:字符串,最常见的格式
  • integer:整数
  • float:浮点数
  • size 大小,仅支持整数
    • <INTEGER>k 或 <INTERGER>K
    • <INTEGER>m 或 <INTERGER>M
    • <INTEGER>g 或 <INTERGER>G
    • <INTEGER>t 或 <INTERGER>T
  • time:时间,也只支持整数;
    • <INTEGER>s 或 <INTERGER>S
    • <INTEGER>m 或 <INTERGER>M
    • <INTEGER>h 或 <INTERGER>H
    • <INTEGER>d 或 <INTERGER>D
  • array:按照 JSON array 解析;
  • hash:按照 JSON object 解析。

四.命令

  • fluentd最核心的就是命令模块,每种命令都是完成不同的处理.
  • source 表示fluentd的输入源,比如原生自带的http和foeward模块,分别用来接收http请求和tcp请求
<source>
  @type forward
  port 24224
  tag  debug.test
</source>

match 直接使用原生的debug输出到控制台type stdout

五.java代码

    private static FluentLogger LOG = FluentLogger.getLogger("debug.test", "192.168.150.156", 24224);  
    public static void main(String[] args) {  
      
        Map<String, Object> map = new HashMap<String, Object>();  
        map.put("from", "userA");  
        map.put("to", "userB"); 
        LOG.log("hello", map);
        FluentLogger.closeAll();
    }  

maven构建的项目需要加入以下依赖

	<dependencies>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.6</version>
		</dependency>


		<dependency>
			<groupId>org.fluentd</groupId>
			<artifactId>fluent-logger</artifactId>
			<version>0.3.4-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>
	</dependencies>

重启fluentd(/etc/init.d/td-agent  restart),执行java代码,输入以下命令,查看日志输出:
 tail -f /var/log/td-agent/td-agent.log 

执行完后就可以看到这样的信息:

就此这个小案例就成功了,想要更详细的了解fluentd请参考官网信息fluentd

本人也是最近开始学习fluentd,有什么不足之处,还请指正.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值