日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

ELK Stack生產實踐——pod日志采集(Elastic Agent方案)

來源: 責編: 時間:2023-10-23 17:05:56 323觀看
導讀pod日志采集方案方案選型DaemonSet+Elastic Agent方案:使用DaemonSet控制器在每個kubernetes集群節點上運行elastic agent服務,業務容器日志目錄統一掛載到節點指定目錄下。在fleet中配置集成Custom Logs集成策略,指定日

pod日志采集方案

方案選型

  1. DaemonSet+Elastic Agent方案:使用DaemonSet控制器在每個kubernetes集群節點上運行elastic agent服務,業務容器日志目錄統一掛載到節點指定目錄下。在fleet中配置集成Custom Logs集成策略,指定日志采集目錄和ingest pipeline,實現自定義路徑下的日志收集和清理操作。
  2. DaemonSet+filebeat+logstash方案:通過DaemonSet方式在每個kubernetes集群節點上運行filebeat服務。以容器運行時containerd為例,配置filebeat輸入路徑為/var/log/containers/<kubernetes.container.id>.log,輸出路徑為logstash。并在logstash中配置規則提取container名稱變量,然后在logstash輸出中引用container名稱變量,以此來實現寫入到es的不同index中。
  3. sidecar+fluentd方案:每個業務容器中通過sidecar方式運行一個fluentd日志采集處理容器,Fluentd是一個開源的數據收集器,專為處理數據流設計,使用JSON作為數據格式。它采用了插件式的架構,具有高可擴展性高可用性,同時還實現了高可靠的信息轉發。由于logstash處理性能較弱且占用資源較高,可以通過fluentd一個組件替代filebeat+logstash的功能,從而簡化日志采集流程與配置。
  4. sidecar+filebeat+kafka+logstash方案:每個業務容器中通過sidecar方式運行一個filebeat日志采集容器,用于采集業務容器產生的日志并輸出到kafka中。借助Kafka的Consumer Group技術可部署多個logstash副本,提升數據處理能力和高可用性。需要注意的是每個consumer最多只能使用一個partition,當一個Group內consumer的數量大于partition的數量時,只有等于partition個數的consumer能同時消費,其他的consumer處于等待狀態。因此想要增加logstash的消費性能,可以適當的增加topic的partition數量,但kafka中partition數量過多也會導致kafka集群故障恢復時間過長。

適用場景

在小規模日志場景下,首選DaemonSet+Elastic Agent方案采集pod日志,我們只需要調整集成策略的采集日志路徑和ingest pipeline管道處理規則即可,集群性能瓶頸取決于ingest節點性能。 Tx628資訊網——每日最新資訊28at.com

在大規模日志場景下,推薦使用sidecar+fluentd方案,由fluentd實現日志的采集與過濾處理后直接寫入ES集群,集群性能瓶頸取決于es集群hot節點性能。 Tx628資訊網——每日最新資訊28at.com

在超大規模且業務存在瞬間高峰的日志場景下,推薦使用sidecar+filebeat+kafka+logstash方案??蓪⑷罩緝热輹捍娴絢afka消息隊列中,由logstash集群逐個消費并寫入ES,防止瞬間高峰導致直接寫入ES失敗,集群性能瓶頸取決于logstash節點性能。Tx628資訊網——每日最新資訊28at.com

注意事項

應用日志應配置日志輪換以防止日志文件無限增長并占用過多的磁盤空間。通過設置日志輪換參數,可以控制日志文件的大小、保留的日志文件數量以及輪換的頻率。這種做法可以高效管理日志,避免磁盤空間問題。Tx628資訊網——每日最新資訊28at.com

部署模擬日志程序

項目地址

代碼倉庫地址:https://gitee.com/cuiliang0302/log_demoTx628資訊網——每日最新資訊28at.com

日志格式

模擬常見的后端服務日志,格式如下Tx628資訊網——每日最新資訊28at.com

2023-07-23 09:35:18.987 | INFO     | __main__:debug_log:49 - {'access_status': 200, 'request_method': 'GET', 'request_uri': '/account/', 'request_length': 67, 'remote_address': '186.196.110.240', 'server_name': 'cu-36.cn', 'time_start': '2023-07-23T09:35:18.879+08:00', 'time_finish': '2023-07-23T09:35:19.638+08:00', 'http_user_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.2999.0 Safari/537.36'}2023-07-23 09:35:19.728 | WARNING  | __main__:debug_log:47 - {'access_status': 403, 'request_method': 'PUT', 'request_uri': '/public/', 'request_length': 72, 'remote_address': '158.113.125.213', 'server_name': 'cu-35.cn', 'time_start': '2023-07-23T09:35:18.948+08:00', 'time_finish': '2023-07-23T09:35:20.343+08:00', 'http_user_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.2999.0 Safari/537.36'}2023-07-23 09:35:19.793 | INFO     | __main__:debug_log:49 - {'access_status': 200, 'request_method': 'GET', 'request_uri': '/public/', 'request_length': 46, 'remote_address': '153.83.121.71', 'server_name': 'cm-17.cn', 'time_start': '2023-07-23T09:35:19.318+08:00', 'time_finish': '2023-07-23T09:35:20.563+08:00', 'http_user_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:57.0) Gecko/20100101 Firefox/57.0'}2023-07-23 09:35:20.614 | ERROR    | __main__:debug_log:45 - {'access_status': 502, 'request_method': 'GET', 'request_uri': '/public/', 'request_length': 62, 'remote_address': '130.190.246.56', 'server_name': 'cu-34.cn', 'time_start': '2023-07-23T09:35:20.061+08:00', 'time_finish': '2023-07-23T09:35:21.541+08:00', 'http_user_agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; Hot Lingo 2.0)'}

打包并上傳鏡像

[root@es-master ~]# cd /opt/[root@es-master opt]# git clone https://gitee.com/cuiliang0302/log_demo.git[root@es-master opt]# cd log_demo/[root@es-master log_demo]# lsDockerfile  log.py  main.py  readme.md  requirements.txt[root@es-master log_demo]# docker build -t harbor.local.com/app/log_demo:1.0 .[root@es-master log_demo]# docker push harbor.local.com/app/log_demo:1.0

部署服務

在本案例中,我們將容器日志目錄通過hostPath方式掛載到宿主機的/var/log/logDemo路徑下。Tx628資訊網——每日最新資訊28at.com

[root@tiaoban fleet]# cat log-demo.yaml apiVersion: apps/v1kind: Deploymentmetadata:  name: log-demospec:  replicas: 2  selector:    matchLabels:      app: log-demo  template:    metadata:      labels:        app: log-demo    spec:      containers:      - name: log-demo        image: harbor.local.com/app/log_demo:1.0        resources:          requests:            memory: "32Mi"            cpu: "100m"          limits:            memory: "128Mi"            cpu: "500m"        volumeMounts:          - mountPath: /opt/logDemo/log            name: logs      volumes:        - name: logs          hostPath:            path: /var/log/logDemo            type: DirectoryOrCreate[root@tiaoban fleet]# kubectl apply -f log-demo.yaml deployment.apps/log-demo created[root@tiaoban fleet]# kubectl get pod -o wideNAME                        READY   STATUS    RESTARTS       AGE     IP             NODE    NOMINATED NODE   READINESS GATESlog-demo-76c57cf9dc-9znrd   1/1     Running   0              2m45s   10.244.3.124   work3   <none>           <none>log-demo-76c57cf9dc-lkvrq   1/1     Running   0              2m45s   10.244.4.158   work2   <none>           <none>

配置代理采集日志

創建集成策略

日志路徑填寫掛載到Elastic agent的日志路徑,即/var/log/logDemo/info.log,代理策略選擇現有的Elastic Agent on ECK policy。Tx628資訊網——每日最新資訊28at.com

圖片圖片Tx628資訊網——每日最新資訊28at.com

自定義ingest處理

在先前的自定義日志采集(fleet方式)中已有詳細講解,具體內容可參考文檔https://www.cuiliangblog.cn/detail/article/62,此處不再贅述。Tx628資訊網——每日最新資訊28at.com

多應用采集思路

通常情況下我們需要采集多個自定義應用的日志內容,我們只需要保證應用日志目錄均掛載至宿主機/var/log目錄下,然后配置fleet代理策略,指定對應的日志路徑和名稱以及ingest pipeline即可。Tx628資訊網——每日最新資訊28at.com

圖片圖片Tx628資訊網——每日最新資訊28at.com

如下所示,我們需要采集myapp和springboot兩個應用的日志,只需要添加多條Custom logs集成策略即可。Tx628資訊網——每日最新資訊28at.com

圖片圖片Tx628資訊網——每日最新資訊28at.com

博客地址:https://www.cuiliangblog.cn/Tx628資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-14621-0.htmlELK Stack生產實踐——pod日志采集(Elastic Agent方案)

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python高頻面試題——如何在字符串中刪除指定字符

下一篇: Go并發可視化解釋:sync.WaitGroup

標簽:
  • 熱門焦點
  • Redmi Pad評測:紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍牙耳機到筆記本電腦,紅米不知不覺之間也已經形成了自己頗有競爭力的產品體系,在中端和次旗艦市場上甚至要比小米新機的表現來得更好,正所謂“大丈夫生居
  • 一年經驗在二線城市面試后端的經驗分享

    忠告這篇文章只適合2年內工作經驗、甚至沒有工作經驗的朋友閱讀。如果你是2年以上工作經驗,請果斷劃走,對你沒啥幫助~主人公這篇文章內容來自 「升職加薪」星球星友 的投稿,坐
  • 企業采用CRM系統的11個好處

    客戶關系管理(CRM)軟件可以為企業提供很多的好處,從客戶保留到提高生產力。  CRM軟件用于企業收集客戶互動,以改善客戶體驗和滿意度?! RM軟件市場規模如今超過580
  • “又被陳思誠騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國產懸疑電影,成了陳思誠的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠再度風頭無兩。你可以說陳思誠的
  • 微博大門常打開,迎接海外畫師漂洋東渡

    作者:互聯網那些事&ldquo;起猛了,我能看得懂日語了&rdquo;。&ldquo;為什么日本人說話我能聽懂?&rdquo;&ldquo;中文不像中文,日語不像日語,但是我竟然看懂了&rdquo;&hellip;&hell
  • iQOO Neo8 Pro評測:旗艦雙芯加持 最強性能游戲旗艦

    【Techweb評測】去年10月,iQOO推出了一款Neo7手機,該機搭載了聯發科天璣9000+,配備獨顯芯片Pro+,帶來了同價位段最佳的游戲體驗,一經上市便受到了諸多用
  • iQOO Neo8 Pro搶先上架:首發天璣9200+ 安卓性能之王

    經過了一段時間的密集爆料,昨日iQOO官方如期對外宣布:將于5月23日推出全新的iQOO Neo8系列新品,官方稱這是一款擁有旗艦級性能調校的作品。隨著發布時
  • 機構稱Q2全球智能手機出貨量同比下滑11% 蘋果份額依舊第2

    7月20日消息,據外媒報道,研究機構的報告顯示,由于需求下滑,今年二季度全球智能手機的出貨量,同比下滑了11%,三星、蘋果等主要廠商的銷量,較去年同期均有下
  • Meta盲目擴張致超萬人被裁,重金押注元宇宙而前景未明

    圖片來源:圖蟲創意日前,Meta創始人兼CEO 馬克&middot;扎克伯發布公開信,宣布Meta計劃裁員超11000人,占其員工總數13%。他公開承認了自己的預判失誤:&ldquo;不僅
Top 主站蜘蛛池模板: 龙游县| 南投县| 郯城县| 临安市| 福安市| 盐源县| 上思县| 万年县| 白城市| 根河市| 凭祥市| 浙江省| 合川市| 阿勒泰市| 耿马| 黑河市| 汝阳县| 红河县| 葵青区| 苏州市| 怀集县| 五寨县| 武川县| 吉安市| 陆河县| 成武县| 岱山县| 芜湖市| 鸡西市| 成安县| 额敏县| 津市市| 宁国市| 依兰县| 富蕴县| 淮南市| 新津县| 隆化县| 盐亭县| 旅游| 金华市|