forked from ops-baidu/7.genius.in
    
        
        - 
                Notifications
    You must be signed in to change notification settings 
- Fork 0
Getting started
        clojureit edited this page Apr 17, 2014 
        ·
        44 revisions
      
    系统具有2个用户界面:
- 日志采集界面: 提取日志字段,发送日志字段
- 用户使用界面: 设置计算任务,获取统计结果
- product : 产品线,按照公司定义,产品线应是一个大产品,比如www,im,sf。
- service : 产品线下辖的服务。比如:router,as,bs。用户可自定义。
- item : 计算项。一个计算内容,比如:page_view,response_time。发送过来的日志中需要包含此字段名字和值。
- calculation : 计算方法。比如:count,average,percent80。
- tag : 按照tag对item进行分维度计算。比如:按照不同的idc进行page_view的计算。
- job : 计算任务。一个计算任务包含一个item,一个calculation,0个或者多个tag。用户可自定义。
下载客户端到需要采集日志的机器上,客户端的主要功能是采集日志字段,客户端以来java 1.6。work帐号执行以下命令
- wget http://aqueducts.baidu.com/download/logstash_install.sh -O logstash_install.sh
- sh logstash_install.sh
- cd /home/work/opbin/logstash
安装完客户端后需要在web端添加计算任务。让集群做好实时计算的准备
- 访问Aqueducts
- 添加service
- 添加job
新增service,新增或删除job并不会使计算任务上线。需要点击“apply_jobs"按钮。
删除service会将service包含的job全部下线。
完成第1步后,相当于有了一个容器(product + service)。客户端可以向这个容器发送日志。为了保证提交的日志能够被计算,需要保证被提取字段和item名称一致。比如:在web上注册的item名字叫page_view,则agent的format字段需要提取出page_view:  (?<page_view>NOTICE:)
以下是一个配置样例。用于提取im产品线router模块的page_view和response _time。
input {
  file {
    # 详细配置项请参考http://logstash.net/docs/1.3.3/inputs/file
    path => "/home/work/local/imas.log"
    # 附加自定义字段
    # add_field => { "input_a" => "input_a"
    #                "input_b" => "input_b"
    #              }
  }
}
filter {
  # 通过正则提取需要计算的字段
  grok {
    # 详细配置项请参考http://logstash.net/docs/1.3.3/filters/grok
    match => [ "message", "^(?<page_view>NOTICE):.*tt=(?<response_time>[0-9]*) (?<timestamp>\d\d\d\d-\d\d-\d\d-\d\d-\d\d-\d\d)" ]
  }
  # 定义日志中的时间戳格式
  date {
    match => [ "timestamp", 'YYYY-MM-dd-HH-mm-ss' ]
  }
  # 统计发送分钟级别的发送量
  metrics {
    meter => "events"
    clear_interval => 60
    flush_interval => 60
    rates => [1]
    add_tag => "metric"
  }
}
output {
#  stdout { debug => true }
  if "metric" in [tags] {
    # 统计数据发送通道
    kafka {
      product => "aqueducts"
      service => "logstash"
    }
  } else {
    # 日志数据发送通道
    kafka {
      product => "astream" # 产品线,需修改
      service => "test" # 服务,需修改
    }
  }
}
- Agent基于logstash开发,详细文档请参考logstash配置
- 需要手工配置的说明在样例的注释中说明,其余的不需要修改
- 用于验证grok正则表达式正确性的web service:grokdebug
##第3步:获取计算结果
http://api.aqueducts.baidu.com/v1/events?product=im&service=router&item=page_view&calculation=count&from=-1m&to=now
获取im产品线router服务近1分钟的page view
这里是更详细的API使用说明




