flume+elasticsearch日志收集分析
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
由于不同版存在不兼容問題也試了好多次,網(wǎng)上找別人寫的博客版本最后終于成功了。
flume:1.6.0
elasticsearch:1.7.6
kibana:4.1.9
從elasticsearch的lib目錄拷貝elasticsearch-1.7.6.jar,lucene-core-4.10.4.jar到flume的lib目錄,我們服務(wù)器使用的是logcxx和spdlog,使用syslog方式收集日志,(由于spdlog的syslog不能寫到遠(yuǎn)程服務(wù)器,自己要改下源碼用udp發(fā)送出去就行了)。
日志內(nèi)容:<15>(Balance)[2016-12-15 14:53:28,610][DEBUG] ServerName[Entrance] statistics_total: total_UserCount = [cur_total=11,max_total=0],
紅色:syslog用日志級(jí)別和日志類型生成的一個(gè)數(shù)字(自己修改spdlog的syslog需要在一條日志前加上尖括號(hào)和這個(gè)數(shù)字)
綠色:下面正則表達(dá)式要過濾出來(lái)的服務(wù)器名字或者模塊名字
藍(lán)色:時(shí)間,下面也會(huì)轉(zhuǎn)換成時(shí)間戳
褐色:級(jí)別
黑色:內(nèi)容
logcxx配置:
log4j.appender.RootSyslog=org.apache.log4j.net.SyslogAppender
log4j.appender.RootSyslog.SyslogHost=127.0.0.1 #flume地址
log4j.appender.RootSyslog.Facility=USER
log4j.appender.RootSyslog.Append=true
log4j.appender.RootSyslog.layout=org.apache.log4j.PatternLayout
log4j.appender.RootSyslog.layout.ConversionPattern=(服務(wù)器名字或者模塊)[%d][%p] %m%n
flume配置:
agent.sources = sysSource
agent.channels = memoryChannel
agent.sinks = k1
#syslog source
agent.sources.sysSource.type = syslogudp
agent.sources.sysSource.bind = 0.0.0.0
agent.sources.sysSource.port = 514
agent.sources.sysSource.channels = memoryChannel
agent.sources.sysSource.interceptors = i1 i2 i3
#時(shí)間
agent.sources.sysSource.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder
#服務(wù)器IP
agent.sources.sysSource.interceptors.i2.type = org.apache.flume.interceptor.HostInterceptor$Builder
agent.sources.sysSource.interceptors.i2.hostHeader = host
#正則表達(dá)式過濾出自定義圓括號(hào)中的字符串作為服務(wù)器類型名
agent.sources.sysSource.interceptors.i3.type=org.apache.flume.interceptor.RegexExtractorInterceptor$Builder
agent.sources.sysSource.interceptors.i3.regex = ((?<=\\()[^\\)]+)
agent.sources.sysSource.interceptors.i3.serializers = s1?
agent.sources.sysSource.interceptors.i3.serializers.s1.name = server_type
#ElasticSearchSink
agent.sinks.k1.type = org.apache.flume.sink.elasticsearch.ElasticSearchSink
agent.sinks.k1.channel = memoryChannel
#elasticsearch地址
agent.sinks.k1.hostNames = 10.105.92.225:9300?
#elasticsearch索引名字
agent.sinks.k1.indexName = server_log
agent.sinks.k1.batchSize = 100
agent.sinks.k1.indexType = log
#這個(gè)要和elasticsearch名字一樣
agent.sinks.k1.clusterName = log-es
agent.sinks.k1.serializer = org.apache.flume.sink.elasticsearch.ElasticSearchLogStashEventSerializer
#memory channel
agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 10000
agent.channels.memoryChannel.transacionCapacity = 100
agent.channels.memoryChannel.byteCapacityBufferPercentage = 20
agent.channels.memoryChannel.byteCapacity ?= 10240000
?
elasticsearch配置:
cluster.name: log-es
node.name: "log-es01"
node.master: true
node.data: true
?
可以給elasticsearch配置kibana和head插件
轉(zhuǎn)載于:https://my.oschina.net/u/1411528/blog/806432
總結(jié)
以上是生活随笔為你收集整理的flume+elasticsearch日志收集分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二十四种设计模式:装饰模式(Decora
- 下一篇: 【更新】ReSharper v2016.