Logstash 采集服务器日志datahup处理上传阿里云 Maxcomputer

阿里云官方提供多种数据采集方式    阿里云Maxcomputer数据上传工具

阿里云官网 博文           Logstash + DataHub + MaxCompute/StreamCompute 进行实时数据分析

阿里云的基于飞天开发的pubsub服务   datahup

安装 logstash about datahub:

$ tar -xzvf logstash-with-datahub-2.3.0.tar.gz
$ cd logstash-with-datahub-2.3.0

安装流程参考 阿里云社区博文

在 logstash 配置文件中给出的示例日志数据:

20:04:30.359 [qtp1453606810-20] INFO  AuditInterceptor - [13pn9kdr5tl84stzkmaa8vmg] end /web/v1/project/fhp4clxfbu0w3ym2n7ee6ynh/statistics?executionName=bayes_poc_test GET, 187 ms

示例 logstash  conf  配置文件:

input {
    file {
        path => "${APP_HOME}/log/bayes.log"
        start_position => "beginning"
    }
}

filter{
    # 对每一条日志message进行分割,并将各分片指定对应的tag
    # 若将整条日志作为Topic的一个字段,可创建只包含(message string)字段的Topic,从而不用配置grok filter
    grok {
        match => {
           "message" => "(?<request_time>\d\d:\d\d:\d\d\.\d+)\s+\[(?<thread_id>[\w\-]+)\]\s+(?<log_level>\w+)\s+(?<class_name>\w+)\s+\-(?<detail>.+)"
        }
    }
}

output {
    datahub {
        access_id => ""
        access_key => ""
        endpoint => ""
        project_name => "project"
        topic_name => "topic"
        #shard_id => "0"
        #shard_keys => ["thread_id"]
        dirty_data_continue => true
        dirty_data_file => "/Users/u1/trash/dirty.data"
        dirty_data_file_max_size => 1000
    }
}

如设涉及多文件采集(/home/admin/accessxxx.log     /home/admin/xxx.log),input 可改为:

#  第一种

input {
    file {
        path => ["home/admin/accessxx.log","home/admin/xxx.log"]
        start_position => "beginning"
    }
}


#  第二种


input {
    file {
        path => "home/admin/accessxx.log"
        #start_position => "end"   
    } 
    file {
        path => "home/admin/xxx.log"
        #start_position => "end"
    }
}

"""
start_position 参数
logstash 从什么位置开始读取文件数据,默认是结束位置,也就是说 logstash 进程会以类似 tail -F 的形式运行。如果你是要导入原有数据,把这个设定改成 "beginning",logstash 进程就从头开始读取,有点类似 cat,但是读到最后一行不会终止,而是继续变成 tail -F

"""

关于grok的校验,可以参考 GROK DEBUG(强烈建议使用此工具调试grok)

grok match 提供两种方式,一种是示例中自定义正则,另一种是logstash官方 grok patterns ,参考上篇博文

logstash 启动命令,进入安装目录(建议在screen中运行):

./logstash -f 配置文件地址 

关于datahub关联maxcomputer分区表的建立,

首先在maxcomputer中新建分区表设置分区字段(如使用系统分区,设置ds  hh mm三个分区字段),在datahub中新建表时选择从maxcomputer导入即可,注意分区时间,分区选择,是否建立自动归档关联等,字段必须一一对应,完全一致,

日志处理:

如日志不需要处理,在grok中正则过滤即可直接上传datahup 自动归档maxcomputer

反之 则可以用过通过datahup 订阅 发布数据数据 具体参考 sdk  支持  java  python (如分表等其他操作)

关于异常调试,数据调试:

maxcomputer表中数据与原始日志不相符!

  1. 首先确保 logstash 数据的完全采集,即logstabsh采集有没有问题,可以在datahup控制台某时候数据抽样对比原始日志  
  2. 如果能查出表中数据相较于原始日志缺失详细,更快定位错误
  3. logstash 没有问题,极大可能自定义数据处理程序出现问题,排查代码逻辑,禁用异常处理,打log等方式

其他问题google 或  提交工单

猜你喜欢

转载自blog.csdn.net/RedPintings/article/details/84136061