日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲成av人片在线观看无 | 日干夜干| 中文字幕在线视频精品 | 麻豆影音先锋 | 美女黄色大片 | 国产麻豆精品在线 | 伊人成人22 | 99资源站 | 国产伦子伦对白视频 | 黄色高清免费 | 26uuu国产精品视频 | 亚洲一区福利视频 | 亚洲综合免费视频 | 一区二区三区在线观看免费 | 一级片大全 | 天天躁狠狠躁狠狠躁夜夜躁68 | 九九热av| 性生生活大片又黄又 | 美女日批网站 | 日本a级片免费 | 久久久久久亚洲av毛片大全 | 97av.com| 亚洲污污视频 | 国产又粗又猛又爽免费视频 | 日韩中文字幕免费视频 | yy4138理论片动漫理论片 | 国产欧美中文字幕 | 91久久极品少妇xxxxⅹ软件 | 中文字幕无码不卡免费视频 | 久热国产视频 | 看污片网站 | 日韩精品在线电影 | 超碰人体 | 成人91在线 | 日韩大片免费在线观看 | 一本大道久久a久久综合婷婷 | 色峰视频 | 成人性生活免费看 | 欧美极品一区二区 | 91精品国产一区二区三区 | 毛片基地站| 天堂中文在线观看 | 久久久久久久久久久久久久免费看 | 在线观看www视频 | 女同毛片一区二区三区 | 久久夜色精品国产噜噜亚洲av | 欧美一级全黄 | 天天射天天拍 | 色姑娘av| 精品国产无码一区二区 | 久久黄色片视频 | 亚州av影院 | 性感少妇在线观看 | 一本一道av无码中文字幕 | 美女丝袜av| 精品一区二区三区免费毛片 | 97精品熟女少妇一区二区三区 | 亚欧日韩| 黄色一级免费视频 | 国产伦精品一区二区三区视频女 | 国产午夜视频在线观看 | 18av视频 | 精品1卡二卡三卡四卡老狼 日韩三级网 | 日韩在线视频一区二区三区 | 四虎8848精品成人免费网站 | 国产精品高潮呻吟久久久久久 | 久久网站免费观看 | 国产三级在线免费观看 | 免费爱爱网站 | 欧美成人三级伦在线观看 | 精品视频在线观看免费 | 男男做性免费视频网 | 一级高清视频 | 少妇高潮一区二区三区99刮毛 | 久久久久久久久影院 | 国产黑人 | 亚洲成人精品久久 | 超碰在线进入 | 亚洲精品日韩av | 女人夜夜春 | 肌肉猛男裸体gay网站免费 | 蜜桃视频一区二区 | 国产免费一区二区三区免费视频 | 国产精品一区二区视频 | www.成人av.com | 乌克兰少妇性做爰 | 337p日本欧洲亚洲鲁鲁 | 性奶老妇 视频 | 亚洲蜜桃av一区二区 | 网站在线看 | 精品久久久久一区二区国产 | 操亚洲美女| 国产1区二区| 国产精品17p| 色福利视频 | 极品久久久久久 | 天天色影 | 日本不卡一区二区 | 亚洲伦理一区 |