全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
数据集成
    基于Fluentd实现日志数据导入MaxCompute

基于Fluentd实现日志数据导入MaxCompute

更新时间:2017-06-07 13:26:11

一、

Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方。本文介绍如何通过Fluentd将日志上传到ODPS DataHub

二、环境要求

?  Ruby 2.1.0

?  Gem 2.4.5 or later

?  Fluentd-0.10.49 or later

?  Protobuf-3.5.1 or later

三、安装步

安装依赖:

gem install protobuf

gem install fluentd —no-ri —no-rdoc

安装插件:

gem install fluent-plugin-aliyun-odps

四、配置实例

第一步、创建odps datahub:

create table nginx_logs(remote string, accesstime string, method string, path string, code string, size string, agent string) into 5 shards hublifecycle 7;

第二步、修改fluentd配置文件,将nigix日志实时传入odps datahub

<source>

   type tail

   path /logs/access.log

   pos_file /tmp/nginx.access.pos

   refresh_interval 5s

   tag nginx.access

   format /^(?<remote>[^ ]) - - [(?<accesstime>[^]])] “(?<method>\S+)(?: +(?<path>[^\”]?)(?: +\S)?)?” (?<code>[^ ]) (?<size>[^ ]) “-“ “(?<agent>[^\”])”$/

   time_format %Y%b%d %H:%M:%S %z

</source>

<match >

  type aliyun_odps 

  aliyun_access_id **

  aliyun_access_key *

  aliyun_odps_endpoint http://service.odps.aliyun.com/api/

  aliyun_odps_hub_endpoint http://dh.odps.aliyun.com

  project test

  buffer_chunk_limit 2m

  buffer_queue_limit  128

  flush_interval 5s

  <table nginx.access>

        table nginx_logs

        fields remote,accesstime,method,path,code,size,agent

        shard_number 5

  </table>

</match>

第三步、启动fluentd,如果有类似如下的输出,就可以说明数据实时写入Datahub服务已经成功。

2015-08-19 16:41:15 +0800 [info]: 5 records to be sent

2015-08-19 16:41:15 +0800 [info]: Successfully import 5 data to table:nginx_logs at threadId:0

五、了解更多

插件GitHub地址

本文导读目录