logstash優(yōu)化

zabbix

http://www.ttlsa.com/zabbix/zabbix_server-conf-detail/
https://blog.csdn.net/zhs2014150551/article/details/48975931
https://segmentfault.com/a/1190000008942618

logstash

input,常見得輸入內(nèi)容

1) file:從文件系統(tǒng)上的文件讀取,與UNIX命令非常相似 tail -0F
2) syslog:在已知端口上偵聽syslog消息進(jìn)行解析
3) redis:使用redis通道和redis列表從redis服務(wù)器讀取曙咽。Redis通常用作集中式Logstash安裝中的“代理”风罩,該安裝將Logstash事件從遠(yuǎn)程Logstash“托運(yùn)人”排隊(duì)筐钟。
4) beats:處理 Beats發(fā)送的事件,beats包括filebeat燃观、packetbeat、winlogbeat拯田。

filter圆仔,常見的過濾器

1) grok:解析并構(gòu)造任意文本垃瞧。Grok是目前Logstash中將非結(jié)構(gòu)化日志數(shù)據(jù)解析為結(jié)構(gòu)化和可查詢內(nèi)容的最佳方式。Logstash內(nèi)置了120種模式坪郭,您很可能會(huì)找到滿足您需求的模式个从!
2) mutate:對事件字段執(zhí)行常規(guī)轉(zhuǎn)換。您可以重命名歪沃,刪除嗦锐,替換和修改事件中的字段。
3) drop:完全刪除事件沪曙,例如調(diào)試事件奕污。
4) clone:制作事件的副本,可能添加或刪除字段液走。
5) geoip:添加有關(guān)IP地址的地理位置的信息(也在Kibana中顯示驚人的圖表L寄)

output輸出內(nèi)容

1) elasticsearch:將事件數(shù)據(jù)發(fā)送給Elasticsearch。如果您計(jì)劃以高效缘眶,方便且易于查詢的格式保存數(shù)據(jù)...... Elasticsearch是您的最佳選擇
2) file:將事件數(shù)據(jù)寫入磁盤上的文件嘱根。
3) graphite:將事件數(shù)據(jù)發(fā)送到graphite,這是一種用于存儲(chǔ)和繪制指標(biāo)的流行開源工具巷懈。http://graphite.readthedocs.io/en/latest/
4) statsd:將事件數(shù)據(jù)發(fā)送到statsd该抒,這是一種“偵聽統(tǒng)計(jì)信息,如計(jì)數(shù)器和定時(shí)器顶燕,通過UDP發(fā)送并將聚合發(fā)送到一個(gè)或多個(gè)可插入后端服務(wù)”的服務(wù)凑保。如果您已經(jīng)在使用statsd,這可能對您有用割岛!
影響logstash性能因素如下:

logstash是一個(gè)pipeline愉适,數(shù)據(jù)流從input進(jìn)來,在filter進(jìn)行正則解析癣漆,然后通過output傳輸給ES维咸。

filebeat->logstash tcp連接
logstash->es tcp連接
logstash input
logstash filter
logstash output

logstash filter & logstash output ( 瓶頸)

升級(jí)logstash版本 1.7 -> 2.2
2.2版本之后的logstash優(yōu)化了input,filter,output的線程模型。

增大 filter和output worker 數(shù)量 通過啟動(dòng)參數(shù)配置 -w 48 (等于cpu核數(shù))

logstash正則解析極其消耗計(jì)算資源惠爽,而我們的業(yè)務(wù)要求大量的正則解析癌蓖,因此filter是我們的瓶頸。
官方建議線程數(shù)設(shè)置大于核數(shù)婚肆,因?yàn)榇嬖贗/O等待租副。
考慮到我們當(dāng)前節(jié)點(diǎn)同時(shí)部署了ES節(jié)點(diǎn),ES對CPU要求性極高较性,因此設(shè)置為等于核數(shù)用僧。

增大 woker 的 batch_size 150 -> 3000 通過啟動(dòng)參數(shù)配置 -b 3000

   batch_size 參數(shù)決定 logstash 每次調(diào)用ES bulk index API時(shí)傳輸?shù)臄?shù)據(jù)量结胀,考慮到我們節(jié)點(diǎn)機(jī)256G內(nèi)存,應(yīng)該增大內(nèi)存消耗換取更好的性能责循。

增大logstash 堆內(nèi)存 1G -> 16G

   logstash是將輸入存儲(chǔ)在內(nèi)存之中糟港,worker數(shù)量 * batch_size = n * heap (n 代表正比例系數(shù))

worker * batch_size / flush_size = ES bulk index api 調(diào)用次數(shù)

優(yōu)化

在配置文件中可以通過配置pipeline.workers來調(diào)整filter和
output的線程數(shù)
網(wǎng)友的測評(píng)數(shù)據(jù)是兩個(gè)點(diǎn)的logstah可以承受600+的連接數(shù)

pipeline.workers:
決定filter和output的線程數(shù),官方建議大于CPU數(shù)院仿,如果logstah節(jié)點(diǎn)是混用服務(wù)器秸抚,
建議等于或小于CPU數(shù)

pipeline.batch.size:
單個(gè)線程每次調(diào)用ES bulk index API時(shí)的事件數(shù)。
這些時(shí)間將被放到內(nèi)存中歹垫。最好的設(shè)定值是不斷地測試剥汤,測試,測試排惨。

JVM_heap:內(nèi)存堆大小吭敢,通過配置jvm_option來修改。

logstash的優(yōu)化相關(guān)配置

實(shí)際output 時(shí)的線程數(shù)

默認(rèn)配置 ---> pipeline.output.workers: 1

可優(yōu)化為 ---> pipeline.output.workers: 不超過pipeline 線程數(shù)

每次發(fā)送的事件數(shù)

默認(rèn)配置 ---> pipeline.batch.size: 125

可優(yōu)化為 ---> pipeline.batch.size: 1000

發(fā)送延時(shí)

默認(rèn)配置 ---> pipeline.batch.delay: 5

可優(yōu)化為 ---> pipeline.batch.size: 10

總結(jié)

通過設(shè)置-w參數(shù)指定pipeline worker數(shù)量若贮,也可直接修改配置文件logstash.yml省有。這會(huì)提高filter和output的線程數(shù),如果需要的話谴麦,將其設(shè)置為cpu核心數(shù)的幾倍是安全蠢沿,線程在I/O上是空閑的。

默認(rèn)每個(gè)輸出在一個(gè)pipeline worker線程上活動(dòng)匾效,可以在輸出output中設(shè)置workers設(shè)置舷蟀,不要將該值設(shè)置大于pipeline worker數(shù)。

還可以設(shè)置輸出的batch_size數(shù)面哼,例如ES輸出與batch size一致野宜。

filter設(shè)置multiline后,pipline worker會(huì)自動(dòng)將為1魔策,如果使用filebeat匈子,建議在beat中就使用multiline,如果使用logstash作為shipper闯袒,建議在input 中設(shè)置multiline虎敦,不要在filter中設(shè)置multiline。

(3)Logstash中的JVM配置文件

Logstash是一個(gè)基于Java開發(fā)的程序政敢,需要運(yùn)行在JVM中其徙,可以通過配置jvm.options來針對JVM進(jìn)行設(shè)定。比如內(nèi)存的最大最小喷户、垃圾清理機(jī)制等等唾那。JVM的內(nèi)存分配不能太大不能太小,太大會(huì)拖慢操作系統(tǒng)褪尝。太小導(dǎo)致無法啟動(dòng)闹获。默認(rèn)如下:

-Xms256m #最小使用內(nèi)存

-Xmx1g #最大使用內(nèi)存

參考文檔:
https://www.cnblogs.com/along21/p/8613115.html#auto_id_12
https://blog.csdn.net/weixin_34092455/article/details/91719799
https://www.cnblogs.com/along21/p/8613115.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末期犬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子避诽,更是在濱河造成了極大的恐慌哭懈,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件茎用,死亡現(xiàn)場離奇詭異,居然都是意外死亡睬罗,警方通過查閱死者的電腦和手機(jī)轨功,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來容达,“玉大人古涧,你說我怎么就攤上這事』ㄑ危” “怎么了羡滑?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長算芯。 經(jīng)常有香客問我柒昏,道長,這世上最難降的妖魔是什么熙揍? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任职祷,我火速辦了婚禮,結(jié)果婚禮上届囚,老公的妹妹穿的比我還像新娘有梆。我一直安慰自己,他們只是感情好意系,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布泥耀。 她就那樣靜靜地躺著,像睡著了一般蛔添。 火紅的嫁衣襯著肌膚如雪痰催。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天作郭,我揣著相機(jī)與錄音陨囊,去河邊找鬼。 笑死夹攒,一個(gè)胖子當(dāng)著我的面吹牛蜘醋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咏尝,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼压语,長吁一口氣:“原來是場噩夢啊……” “哼啸罢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起胎食,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤扰才,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后厕怜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衩匣,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年粥航,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琅捏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡递雀,死狀恐怖柄延,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缀程,我是刑警寧澤搜吧,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站杨凑,受9級(jí)特大地震影響滤奈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蠢甲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一僵刮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鹦牛,春花似錦搞糕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至礼殊,卻和暖如春驹吮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晶伦。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來泰國打工碟狞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婚陪。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓族沃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子脆淹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容