fluentd+mongodb 的安裝不多說了,官網上很詳細各種作業系統版本的都有。由於,我的專案中需要將多個log檔案進行初步的過濾,所以,官網上提供的in_tail 外掛程式不能夠滿足需求,需要基於in_tail外掛程式寫乙個適合自己需求的外掛程式。
直接上**:
module fluent
require 'fluent/plugin/in_tail'
class ltabcinput < fluent::tailinput
fluent::plugin.register_input('lt_abc', self)
# override the 'configure_parser(conf)' method.
# you can get config parameters in this method.
def configure_parser(conf)
@time_format = conf['time_format'] || '%y%m%d%h%m%s'
end# override the 'parse_line(line)' method that returns the time and record.
# this example method assumes the following log format:
# %y-%m-%d %h:%m:%s\tkey1\tvalue1\tkey2\tvalue2...
# %y-%m-%d %h:%m:%s\tkey1\tvalue1\tkey2\tvalue2...
# ...
def parse_line(line)
elements = line.split("|") //獲取輸入的每一行的資訊
time = elements.shift
time = time.strptime(time, @time_format).to_i
# [k1, v1, k2, v2, ...] ->
record = {}
mark = elements.shift
record["mark"] = mark //這裡是我的log中每行資料的型別
while (p = elements.shift)
pair = p.split(":")
if (k = pair.shift) && (v = pair.shift)
record[k] = v
endif (p == "e")
record["e"] = "e";
endif (p == "n")
record["n"] = "n";
endend
return time, record
endend
end
下面是log檔案的格式
20131228182935|heart|id:40354|obu:102198|type:0x1
20131228182935|gps|id:40444|obu:104751|type:0|lat:363936|lon:1170118|speed:0.0000|direction:0|time:182935|e|n|mile:27647448
20131228182935|time sync|id:46576|obu:105450|termtime:1388255374:20131229022934
20131228182935|gps|id:40886|obu:103611|type:0|lat:363819|lon:1165236|speed:0.0000|direction:0|time:182933|e|n|mile:3140237
20131228182935|gps|id:50446|obu:104756|type:0|lat:363936|lon:1170135|speed:31.687|direction:90|time:182934|e|n|mile:12300444
20131228182935|gps|id:41464|obu:103569|type:0|lat:364212|lon:1165313|speed:0.0000|direction:0|time:182934|e|n|mile:4211590
20131228182935|gps|id:47602|obu:103170|type:0|lat:364309|lon:1170235|speed:13.575|direction:310|time:192249|e|n|mile:17175434
20131228182935|heart|id:43991|obu:102578|type:0x1
20131228182935|gps|id:40221|obu:104703|type:0|lat:364051|lon:1165917|speed:36.632|direction:181|time:182934|e|n|mile:938709
20131228182935|heart|id:40303|obu:104036|type:0x1
20131228182935|inout|id:42517|obu:102431|io:0|auto^hand:1|route:00027|service:00w|station:00271048|time:182934
實變函式 實分析總結
一 概述。實變函式,又叫實分析,整本書滿滿的證明就講了乙個勒貝格積分。最為大家所熟知的是用牛頓 萊布尼茨公式算的黎曼積分。但是黎曼積分本身依賴於函式的連續性,像不連續的狄利克雷函式就無法積分了。為了解決這一問題,勒貝格利用分割值域的方法,使得函式可積。但是分割出來的值域,只能放在一起,形式集合。如果...
NestedScrollWebview實現與優化
nestedscrollwebview實現與優化 原文如下 好久沒寫了,好像也沒什麼人關注我,呵呵,但我還是堅持寫一下,希望能幫到有需要的人!今天我來說一下nestedscrollwebview。最近在弄乙個需求,我需要用到coordinatorlayout webview 實現滾動互動效果,但要實...
saltstack keepalived實現高可用
本篇部落格承接saltstack安裝部署和saltstack grains,pillar,jinja模組的使用 建立目錄。root server1 keepalived vim files keepalived.conf configuration file for keepalived globa...