亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

log4j2+ELK

Sunxb / 1072人閱讀

摘要:?jiǎn)栴}初衷最近有個(gè)項(xiàng)目需求,需要統(tǒng)計(jì)下用戶的使用情況,比如什么時(shí)候登錄的,查詢了什么內(nèi)容等信息。缺點(diǎn)擴(kuò)展能力需要靠自己設(shè)計(jì),統(tǒng)計(jì)展示畫面需要自己做??奢p松應(yīng)對(duì)分布式,數(shù)據(jù)量大的情況。通過(guò),如下修改,在重啟后又會(huì)恢復(fù)原值。

問(wèn)題初衷

最近有個(gè)項(xiàng)目需求,需要統(tǒng)計(jì)下用戶app的使用情況,比如:什么時(shí)候登錄的,查詢了什么內(nèi)容等信息。

解決方案

1.定義用戶軌跡模型,每步操作都寫到數(shù)據(jù)庫(kù)中,然后在前端展示。

優(yōu)點(diǎn):可以針對(duì)業(yè)務(wù)需求自定義模型,操作靈活,有針對(duì)性。

缺點(diǎn):擴(kuò)展能力需要靠自己設(shè)計(jì),統(tǒng)計(jì)展示畫面需要自己做。

2.用現(xiàn)成的用戶數(shù)據(jù)分析平臺(tái),網(wǎng)上有很多成熟的平臺(tái),對(duì)接其api接口即可。

優(yōu)點(diǎn):各種分析圖,什么有的沒(méi)有的,見過(guò)的沒(méi)見過(guò)的一應(yīng)俱全。ps:現(xiàn)在用不上以后可能會(huì)用上。

缺點(diǎn):受制于人,主要還要看自身業(yè)務(wù)是否適用。

3.ELK,集中式日志管理,特點(diǎn):收集,傳輸,存儲(chǔ),管理,告警。

優(yōu)點(diǎn):開源,可以通過(guò)日志記錄各種你想要記錄的東西。豐富的分析圖表??奢p松應(yīng)對(duì)分布式,數(shù)據(jù)量大的情況。

ELK對(duì)接

Elasticsearch+Logstash+Kibana(ELK)是一套開源的日志管理方案。

Elasticsearch:負(fù)責(zé)日志檢索和分析
Logstash:負(fù)責(zé)日志的收集,處理和儲(chǔ)存
Kibana:負(fù)責(zé)日志的可視化

對(duì)于保存日志到文件的的項(xiàng)目,可以用logstash的logstash-input-file插件直接進(jìn)行文件讀取,處理后轉(zhuǎn)存到Elasticsearch中。處理可以用logstash-filter-kv鍵值插件或者logstash-filter-mutate等插件進(jìn)行解析。具體查看Filter plugins。

由于我們的項(xiàng)目沒(méi)有記錄日志文件,所以選擇直接發(fā)送日志信息到logstash,(對(duì)于log4j,logstash有專門的input插件)。

log4j2的配置



    
        {"logger": "%logger", "level": "%level", "msg": "%message"}%n
    
    
        
            
        
    
    
        
            
        
    

logstash的配置

input {
  tcp {
    host => "127.0.0.1"
    port => 4560
    codec => json {
      charset => "UTF-8"
    }
  }
}

filter {

}

output {
  elasticsearch {
    hosts => ["localhost"]
    manage_template => false
    index => "logstash-%{+YYYY.MM.dd}"
    document_type => "logstash"
  }
}

轉(zhuǎn)存到Elasticsearch的message就是我們log4j2配置中的Json形式,如果想要將message拉平,那么只需要加入logstash-filter-json。

filter {
  json {
    source => "message"
  }
}

這樣保存到Elasticsearch中的數(shù)據(jù),就會(huì)變成如下形式

{       
    ...                                                                                                                                       
    "message" => "{"logger": "elk", "level": "INFO", "msg": "logstash test"}
",
    "logger" => "elk",
    "level" => "INFO",
    "msg" => "logstash test"
} 

這樣對(duì)于Kibana分析的時(shí)候比較方便。

log4j2用Socket的方式會(huì)有一個(gè)問(wèn)題,當(dāng)logstash斷掉,重啟后你會(huì)發(fā)現(xiàn)收不到log4j2的日志了,傳輸斷掉沒(méi)有重連。在生產(chǎn)環(huán)境中,elk斷掉,我們不可能在去重啟所有與之相連的服務(wù)。所以接下來(lái)我們采用gelf方式。

修改pom


    biz.paluch.logging
    logstash-gelf
    1.12.0

修改log4j2的配置



    
        
            
            
            
            
            
            
            
        
    
    
        
            
        
    

修改logstash配置

input {
  gelf {
    host => "127.0.0.1"
    port => 4560
    use_tcp => true
    codec => json {
      charset => "UTF-8"
    }
  }
}

filter {
  json {
    source => "message"
  }
}

output {
  elasticsearch {
    hosts => ["localhost"]
    manage_template => false
    index => "logstash-%{+YYYY.MM.dd}"
    document_type => "logstash"
  }
}

保存到Elasticsearch中的數(shù)據(jù)就會(huì)如同log4j2中的配置格式一樣,由于我們這里依然配置了json filter,如果你的message是json字串,這里依然會(huì)拉平處理。

ELK搭建

以上我們log4j2與logstash的對(duì)接就完成了,對(duì)于docker部署elk,比較簡(jiǎn)單,網(wǎng)上有很多教程,當(dāng)然還是推薦大家先去官網(wǎng)看看,注意版本對(duì)應(yīng)。我選擇的是sebp/elk,集成好的elk容器。詳細(xì)的文檔elk-docker

這里主要說(shuō)說(shuō)需要注意的地方,強(qiáng)烈建議安裝之前看下文檔中的Prerequisites。

首先,我就遇見了vm.max_map_count限制問(wèn)題,在Elasticsearch version 5這是最常出現(xiàn)的問(wèn)題。通過(guò),如下修改,在重啟后又會(huì)恢復(fù)原值。

sysctl -w vm.max_map_count=262144

持久性的做法是修改/etc/sysctl.conf文件中的vm.max_map_count

echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p

其次,logstash的配置文件在/etc/logstash/conf.d/目錄下,將input,filter,out分開,最終組合成一個(gè),建議將/etc/logstash/conf.d映射出來(lái),自行管理。

最后,因?yàn)閘og4j2在發(fā)送日志是是通過(guò)4560接口,所以啟動(dòng)docker的時(shí)候需要映射此接口。

以上是我在對(duì)接elk的時(shí)候遇到的問(wèn)題,再次記錄下,更多的elk內(nèi)容后續(xù)會(huì)繼續(xù)探索。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28087.html

相關(guān)文章

  • springboot+ELK日志監(jiān)控系統(tǒng)

    摘要:簡(jiǎn)介是簡(jiǎn)稱是一個(gè)分布式的搜索和分析引擎,可以用于全文檢索結(jié)構(gòu)化檢索和分析,并能將這三者結(jié)合起來(lái)?;陂_發(fā),現(xiàn)在是使用最廣的開源搜索引擎之一。是一個(gè)開源的分析與可視化平臺(tái),設(shè)計(jì)出來(lái)用于和一起使用的。 ELK簡(jiǎn)介ELK是Elasticsearch+Logstash+Kibana簡(jiǎn)稱 Elasticsearch 是一個(gè)分布式的搜索和分析引擎,可以用于全文檢索、結(jié)構(gòu)化檢索和分析,并能將這三者結(jié)...

    gclove 評(píng)論0 收藏0
  • Linux ELK 安裝(服務(wù)器架設(shè)篇)

    摘要:新增了一個(gè),它是一個(gè)輕量級(jí)的日志收集處理工具,占用資源少,適合于在各個(gè)服務(wù)器上搜集日志后傳輸給,官方也推薦此工具。具體的結(jié)構(gòu)如下主機(jī)系統(tǒng)部署服務(wù)安裝準(zhǔn)備是需要的,建議安裝。先下載通用安裝包。 ELK簡(jiǎn)介 ELK是三個(gè)開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟件。新增了一個(gè)FileBeat,它是一個(gè)輕量級(jí)的日志收集處理工...

    funnyZhang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<