日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Elasticsearch+filebeat+logstach+kibana构建日志服务平台

發(fā)布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Elasticsearch+filebeat+logstach+kibana构建日志服务平台 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景

  • devops中日志服務(wù)的搭建
  • 收集各個節(jié)點(agent)的日志文件進(jìn)ES集群,并提供分析和查詢的服務(wù)
  • 各個agent的filebeat收集服務(wù)不能終斷,也就是需要動態(tài)reload配置文件
  • 支持用戶設(shè)置分隔符劃分和正則匹配兩種方式添加field字段

技術(shù)方案

  • 將filebeat部署在agent節(jié)點,master節(jié)點控制agent節(jié)點的配置文件,filebeat很輕量
  • 因為filebeat的配置文件支持reload的只有input和moudel兩個模塊,但是需要對用戶提供的分隔符和正則表達(dá)式進(jìn)行處理,可以完成這個操作的processors模塊不支持動態(tài)reload,所以filebeat只收集日志,處理日志的任務(wù)交給logstach,logstach支持整個配置文件的動態(tài)reload

Filebeat安裝以及使用

  • Filebeat是一個輕量化的日志收集工具,對標(biāo)Logstach,filebeat只有30M,而logstach有300M

  • 調(diào)試啟動命令:./filebeat -e -c filebeat.yml,-c指明配置文件路徑,-e表示記錄到stderr,并禁用syslog文件輸出

  • 啟動命令相關(guān):https://johng.cn/filebeat-command-configuration/

  • 后臺啟動方式:nohup ./filebeat -e -c filebeat.yml > filebeat.log &

  • filebeat啟動可以使用root用戶,但是ES啟動不能使用root用戶

  • reload相關(guān)寫法參考:https://blog.csdn.net/junxuezheng/article/details/108349689

  • filebeat.yml配置文件

    filebeat.config.inputs:enable: truepath: /usr/local/xxx/input.ymlreload.enable: truereload.period: 5soutput.console:pretty: true#output.elasticsearch: # hosts: ["10.243.65.186:9200"]output.logstash:hosts: ["1.1.1.186:5044"] processors: - rename:fields:- from: hostto: _host- from: messageto: _messageignore_missing: falsefail_on_error: true - drop_fields:fields:- ecs- log- input
  • input.yml文件

    - type: log# Change to true to enable this input configuration.enabled: true# Paths that should be crawled and fetched. Glob based paths.paths:- /usr/local/xxxtags: c7f1771f-0c8f-4c75-9d71-3b8c4b6bd191fields: source: wang_testfields_under_root: true
  • filebeat只能輸出到一個地方,logstach可以輸出到多個地方

  • fields_under_root,這個字段如果設(shè)置為true,則新增的字段成為頂級目錄,和message平級,如果為false,則會多出一個fields字段,這個fields字段和message字段平級,我們自定義的字段都存放在fields字段下

  • 注意,filebeat文件夾下有一個data的文件夾,可以記錄哪些行傳輸過,所以如果ctrl+c之后再重開,不會把之前傳過的內(nèi)容再傳一遍,除非刪除這個data文件夾

Logstach安裝以及使用

  • 二進(jìn)制安裝,解壓即用

  • 可以用root用戶啟動

  • 部署命令:`bin/logstash -f config/xxx.conf

  • 測試config文件是否寫的正確bin/logstash -t -f config/xxx.conf

  • 配置logstash自動刷新配置文件:bin/logstash -f config/xxx.conf --config.reload.automatic

  • 配置文件如下:

    input {beats {port => 5044} }filter {mutate{rename => {"host" => "_host"}rename => {"message" => "_message"}rename => {"tags" => "_tags"}remove_field => ["@version", "ecs"]}if [log][file][path] == "/usr/local/dashuaibi/log/wang.log"{dissect {mapping => {"message" => "%{wang_time} %{wang_pid} %{wang_level} %{comtent}"}}} }output {if [log][file][path] == "/usr/local/dashuaibi/log/wang.log"{elasticsearch {hosts => "10.1.1.186:9200"index => "wang_test_666"}} }
    • 注意:mapping里的分隔符表達(dá)式,最后一個字段默認(rèn)會把后面所有的內(nèi)容都接收下來
    • field字段的增刪改在filebeat和logstash中都可以做,看業(yè)務(wù)需求。

Elasticsearch安裝以及使用

  • 二進(jìn)制安裝,解壓即用tar -zxf xxx.tar.gz

  • 先在root用戶下修改權(quán)限chown -R elastic:elastic elastic

    • 最后一個elastic是文件夾的名字
    • -R表示處理指定目錄以及其子目錄下的所有文件
  • vim config/elasticsearch.yml,將network.host: 0.0.0.0,讓外部可以訪問到

  • node.name: node-1這行的注釋也打開,下面這個操作要用

  • vim config/elasticsearch.yml,將cluster.initial_master_nodes: ["node-1"]這行的注釋打開,有幾個節(jié)點就在list里寫幾個值,否則master節(jié)點會一直搜索另一個節(jié)點,"node-1"是本臺機(jī)器的hostname,需要提前在/etc/hosts里定義(如果默認(rèn)沒有添加的話),文件里寫的是ip + hostname

  • 啟動命令:bin/elasticsearch

  • ES不能使用root用戶啟動

  • 可以在創(chuàng)建ES索引的時候指定分片的參數(shù),wangtest是要創(chuàng)建的索引名

    PUT wangtest {"settings": {"index": {"number_of_shards": 3,"number_of_replicas": 1}} }

Kibana安裝以及使用

  • 二進(jìn)制安裝,解壓即用
  • vim config/kibana.yml,將server.host:"0.0.0.0",讓外部可以訪問到
  • 啟動命令:./bin/kibana,注意這個.必須帶
  • Kibana也不能使用root用戶啟動,但是根據(jù)提示,好像有開關(guān)可以控制使用root啟動

監(jiān)控軟件cerebro的安裝和使用

  • 下載壓縮包,解壓

  • bin/cerebro

  • 非必須:如果經(jīng)常使用的話,可以先在conf/application.conf中配置好ElasticSearch服務(wù)器地址

    hosts = [{host = "http://localhost:9200"name = "Some Cluster"} ]
  • 參考:https://www.jianshu.com/p/433d821f9667

如何在腳本里啟動filebeat

  • 前提背景:有一些場景是需要在腳本里自動啟動的 ,且希望在后臺運行,所以我想到了nohup

    nohup ./filebeat -e -c /usr/local/sahoc/filebeat.yml &

    這個做法可以后臺起一個進(jìn)程運行filebeat,但是主進(jìn)程不會退出,因為啟動的filebeat在另一個進(jìn)程里有終端輸出

  • 解決方案:nohup ./filebeat -e -c /usr/local/sahoc/filebeat.yml >> $FILEBEAT_LOG 2>&1 &

    這樣把終端的輸出重定向到一個文件,主進(jìn)程就不會持續(xù)監(jiān)聽了,注意2>&1必須加,必須把所有的輸出都追加到文件,文件地址可以是/dev/null

關(guān)于ES查詢的分頁問題

這里的查詢分為兩種,一種是基于ES的DQL,就是用restfulAPI的調(diào)用方式,另一種是說使用SQL語言進(jìn)行查詢。眾所周知在MYSQL里分頁可以使用limit 10,5來解決,第一個10是偏移量(offset),從第十個數(shù)據(jù)開始讀取,第二個參數(shù)5說明是一次取5個值,通過這種方式可以實現(xiàn)分頁。但是使用

POST /_sql?format=txt{"query": "SELECT CONTENT FROM XXX LIMIT 10,5" }

ES報錯,不能識別逗號,所以說這個接口里的limit后面只支持一個參數(shù)。下面說分別對應(yīng)這兩種方法的解決方案

  • DQL查詢方式

    • from+size方式
    • scroll方式
    • search_after方式
    • 參考:https://chunsoft.blog.csdn.net/article/details/91406928
  • SQL的查詢方式

    • cursor(游標(biāo))方式
    • 參考:https://blog.csdn.net/qq_42569136/article/details/115465322
    • 參考:https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-pagination.html
    • 感覺這種方式和上面的search_after是一樣的,多用于數(shù)據(jù)導(dǎo)出,并不適用這種場景,且不能跳轉(zhuǎn),只能一頁一頁的讀
    • fetch_size方案
    • 參考:https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-search-api.html#sql-search-api-request-body
    • 可以看到這里有一個fetch_size的參數(shù),講道理應(yīng)該和上面一樣還有一個fetch_from就完美了,可惜是官方并沒有提供這個參數(shù),想不明白是為什么
  • 最終的方案,使用先用/_sql/translate把SQL查詢變成DQL之后,再在DQL里面補(bǔ)充from和size字段,默認(rèn)情況下使用translate會自動有一個size:1000的對象,如果SQL語句里有l(wèi)imit 100,這個1000就變成100了,但是不會自動添加from

如果一行數(shù)據(jù),用指定的分割方式?jīng)]有分割出來怎么辦

直接把這個數(shù)據(jù)添加到message里,并不會丟棄

如果之前我們的filebeat的input.yml文件有一段時間為空,后面再加上還能正常工作嗎?

可以

采用上面的方案會導(dǎo)致,每次有新的數(shù)據(jù)加入log文件,都會把之前的所有內(nèi)容再重新傳一遍,導(dǎo)致重復(fù)采集

  • 問題出在vim編輯器,用echo添加就不會有問題,估計是vim保存的時候創(chuàng)建了一個新的文件或者鏈接
  • 參考:https://elasticsearch.cn/question/2533

vi指令保存后,會重復(fù)發(fā)送,用echo寫東西測試沒問題,類似vi估計都會有問題。官方論壇翻譯內(nèi)容如下:

你怎么修改文件。你試過了$ echo ‘new line’ >> /usr/src/app/log.log嗎?filebeat試圖根據(jù)元數(shù)據(jù)來檢測文件是否是新的。一些工具/編輯器創(chuàng)建一個全新的文件保存并取消舊鏈接。這被filebeat檢測為新文件,迫使它重新發(fā)送所有內(nèi)容。

上面使用[log][file][path]不太嚴(yán)謹(jǐn)

  • 如果不同機(jī)器上有不同的業(yè)務(wù),但是log文件名都一樣,這樣就會把這些日志放在一個索引,其實不應(yīng)該放在一起

  • 采用打tags的方式解決

  • filebeat_input.yml文件里加入tag

    - type: log# Change to true to enable this input configuration.enabled: true# Paths that should be crawled and fetched. Glob based paths.paths:- /usr/local/xxxtags: wang1fields: source: wang_test - type: log# Change to true to enable this input configuration.enabled: true# Paths that should be crawled and fetched. Glob based paths.paths:- /usr/local/xxxtags: wang2fields: source: wang_test

    tags后面的值可以不帶引號

  • logstash配置文件根據(jù)這個tag去做相應(yīng)的處理

    inputs {beats {port => 5044} }filter {if "wang1" in [tags]{dissect {mapping => {"message" => "%{wang_time} %{wang_pid} %{wang_level} %{comtent}"}}} }output {if "wang1" in [tags]{elasticsearch {hosts => "10.1.1.186:9200"index => "wang_test_666"}} }

總結(jié)

以上是生活随笔為你收集整理的使用Elasticsearch+filebeat+logstach+kibana构建日志服务平台的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 羞辱狗奴的句子有哪些 | 性高跟鞋xxxxhd人妖 | 国产熟女一区二区三区五月婷 | 欧美成人aaaaⅴ片在线看 | 蜜桃传媒一区二区亚洲 | 手机av网 | 黑人100部av解禁片 | 天天操天天射天天爱 | 露脸啪啪清纯大学生美女 | 波多野结衣一区二区三区免费视频 | 欧美在线三区 | 未满十八岁勿进 | 成人午夜天 | 亚洲精品一区二区三区蜜桃久 | 99综合色 | 天天久久综合网 | 福利午夜视频 | 午夜av剧场| 国产精品乱码妇女bbbb | 国产一区在线观看视频 | 青青草原av在线 | 国产一级精品毛片 | 91亚洲视频在线观看 | 欧美亚洲精品在线 | 麻豆美女视频 | 91女人18毛片水多国产 | 免费搞黄网站 | eeuss国产一区二区三区黑人 | 无码人妻精品一区二区三区66 | 超爽视频| 秋霞二区 | 日韩欧美视频在线免费观看 | 欧美成人精品欧美一级乱黄 | 91影院在线免费观看 | 亚洲中字幕 | 永久黄色网址 | 黄色片aaaa | 少妇aaaa| 亚洲AV无码阿娇国产精品 | 午夜黄色福利 | 日日夜夜国产精品 | 精品无码国产一区二区三区51安 | 黄色大片在线免费观看 | 久久91亚洲精品中文字幕奶水 | 中出少妇| 亚洲色图在线观看视频 | 成年人精品视频 | 91porny在线| 亲切的金子片段 | 国产做爰免费视频观看 | 国产超碰人人模人人爽人人添 | 一级性视频 | 操操操爽爽爽 | av2018| 三上悠亚 电影 | 国产精品15p | 日韩精品一区二区三区四区五区 | a级片在线看 | 中文字幕在线观看视频一区 | 久久一级视频 | 一区二区观看 | 小辣椒导航 | 91丨porny在线 | 最新极品jizzhd欧美 | 亚洲色成人网站www永久四虎 | 特黄aaaaaaaaa毛片免 | 国产人成视频在线观看 | 日本一区二区三区四区视频 | 亚洲中文字幕无码不卡电影 | 亚洲天堂中文字幕在线 | 毛片美女| 精品国产自 | 91在线看视频| 日本午夜在线 | 天天做天天爱天天做 | 久久久久国色av免费观看性色 | 黄色一级视屏 | 久草色在线 | 三级网站视频 | 一级久久久久久久 | 精品国语对白 | 激情综合婷婷 | 成人做爰免费视频免费看 | 影音先锋在线视频 | 精品无码一区二区三区在线 | 好看的黄色网址 | 国产精品国产精品 | 国产黄色影院 | 特黄在线| 丁香伊人| 91色在线视频 | 亚洲中文字幕一区二区在线观看 | 欧美日b片 | 艳妇乳肉亭妇荡乳av | 久久视频免费看 | 国产精品国产一区二区 | 91一区二区三区四区 | 性户外野战hd | 亚洲专区中文字幕 |