成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ELK 集群,騰訊云上的日志監控不用愁

企業動態
公司項目,越來越多的系統在計劃上云。如何監控云上的系統運行,是每個系統上云的過程中都會碰到的一個問題。在這里,我們以公司的某個項目為例,向大家詳細闡述該項目上云后的日志監控方案,詳細講解如何通過ELK集群,實現每天百G日志的監控。

公司項目,越來越多的系統在計劃上云。如何監控云上的系統運行,是每個系統上云的過程中都會碰到的一個問題。在這里,我們以公司的某個項目為例,向大家詳細闡述該項目上云后的日志監控方案,詳細講解如何通過ELK集群,實現每天百G日志的監控。

此項目原本是一個包含眾多業務流的一個 APP 監控系統,在遷移到騰訊云之后,希望接入更多的業務,日志監控壓力也隨之劇增,每天的日志數量將達到百 G 以上,為滿足這個項目的日志監控需求,特意在騰訊云的 kubernetes(K8s) 上配置了一套 ELK 集群。

1.ELK 系統介紹

我們在 SNGAPM 項目這個配置的 ELK 系統主要包含四個部分 filebeat,logstash,elasticsearch 以及 kibana。其中

  • filebeat 主要負責日志的收集,能自動感知日志文件中增加的 log 條目。
  • logstash 主要復雜日志文件的轉發,并且在轉發過程中對日志進行過濾和整理。
  • elasticsearch 可以看作一個高效的集群化的數據庫,可以直接通過 url 對其進行訪問,在 ELK 中,主要復雜 ELK 的存儲,也是真個 ELK 系統的核心。
  • kibana 可以看作 elasticsearch 的一個前端頁面,其將用戶的操作轉化為 elasticsearch 的查詢指令,并將從 elasticsearch 查詢到的數據進行圖形化展示。

2. ELK 集群預覽

在物理機上,可以通過多臺服務器構建一個 ELK 的集群,在騰訊云上,配置 ELK 集群的另一種方式就是通過 kubernetes 管理一個包含多個 pods 的 ELK。

 

 

3. ELK 集群配置

集群化的 ELK 系統的關鍵就是配置集群化的 elasticsearch 系統,通過配置 elasticsearch 的集群,實現海量日志的存儲,和快速查詢。

配置 elasticsearch 集群,我們主要參考了 github 上的一個樣例 kubernetes-elasticsearch-cluster

我們將 elasticsearch 節點,分為 master, client, data 三種類型,分別負責不同的任務,其中

  • Master 節點 - 只復雜集群的管理,不存儲日志數據,也不接受 HTTP 請求
  • Client 節點 - 主要負責接受 HTTP 請求,不存儲日志數據
  • Data 節點 - 主要復雜數據的存儲,不接受 HTTP 請求

在這,我們給出我們的配置文件供大家參考和借鑒

首先,給出 elasticsearch 的集群配置方法

  1. cluster:   
  2. name: ${CLUSTER_NAME}   
  3.  
  4. node:   
  5. master: ${NODE_MASTER}   
  6. data: ${NODE_DATA}   
  7. name: ${NODE_NAME}   
  8. ingest: ${NODE_INGEST}   
  9. max_local_storage_nodes: ${MAX_LOCAL_STORAGE_NODES}   
  10.  
  11. network.host: ${NETWORK_HOST}   
  12.  
  13. path:   
  14. data: /***/***   
  15. logs: /***/***   
  16.  
  17. bootstrap:   
  18. memory_lock: true   
  19.  
  20. http:   
  21. enabled: ${HTTP_ENABLE}   
  22. compression: true   
  23.     cors:   
  24. enabled: ${HTTP_CORS_ENABLE}   
  25. allow-origin: ${HTTP_CORS_ALLOW_ORIGIN}   
  26.  
  27. discovery:   
  28. zen:   
  29. ping.unicast.hosts: ${DISCOVERY_SERVICE}   
  30. minimum_master_nodes: ${NUMBER_OF_MASTERS} 

其次是配置 kibana,只需要提供 elasticsearch 的訪問 url,就能直接與 elasticsearch 進行直接交互(如果配置了 x-pack 插件,還須提供相應的用戶名以及密碼才能訪問)。

  1. server.host: "0.0.0.0"   
  2.  
  3. elasticsearch.url: "http://elasticsearch.default.svc.cluster.local:9200"   
  4.  
  5. elasticsearch.username: "******"   
  6. elasticsearch.password"******" 

***是配置 logstash 以及 filebeat

在 filebeat 中設置日志文件的路徑,并在輸入的日志數據上加上標簽,方便 logstash 對日志進行分類,對不同的日志類型進行不同的處理。

  1. filebeat.prospectors: 
  2. - input_type: log 
  3.     paths: 
  4.         - /*****.log 
  5.         - /*****.log 
  6.     document_type: json_log 
  7.     tags: ["json-log""itrans"
  8.  
  9. output.logstash: 
  10.     hosts: ${LOGSTASH_HOSTS:?No logstash host configured. Use env var LOGSTASH_HOSTS to set hosts.} 
  11.  
  12. logging.level: info 
  13. logging.files: 
  14.     path: /home 
  15.     name: filebeat.log 

在這里,logstash 根據日志的標簽,對不同類型的日志,執行不同的處理(如果配置了 x-pack 插件,還須提供相應的用戶名以及密碼才能訪問)。

  1. input { 
  2.         beats { 
  3.                 port => 5043 
  4.                 congestion_threshold => 60 
  5.         } 
  6.  
  7. filter { 
  8.         if "json-log" in [tags] { 
  9.                 json { 
  10.                         source => "message" 
  11.                         remove_field => [ "message"
  12.                 } 
  13.                 mutate { 
  14.                         replace => { "type" => "json-log" } 
  15.                 } 
  16.         } 
  17.  
  18. output { 
  19.         if "json-log" in [tags] { 
  20.                 elasticsearch { 
  21.                         hosts => ["elasticsearch:9200"
  22.                         manage_template => false 
  23.                         index => "%{label}-%{ YYYY.MM.dd.HH}" 
  24.                         user => ****** 
  25.                         password => ****** 
  26.                 } 
  27.         } else { 
  28.                 elasticsearch { 
  29.                         hosts => ["elasticsearch:9200"
  30.                         manage_template => false 
  31.                         index => "unlabeled-%{ YYYY.MM.dd.HH}" 
  32.                         user => ****** 
  33.                         password => ****** 
  34.                 } 
  35.         } 

4.在 Kubernetes 上運行所需的 yaml 文件

想要實現 ELK 集群在 Kubernetes 上的運行自然少不了相應的 yaml 文件,我們使用的 yaml 文件主要參考了 kubernetes-elk-clusterkubernetes-elasticsearch-cluster等倉庫。

原文鏈接:https://cloud.tencent.com/community/article/562397,作者:丁呂

【本文是51CTO專欄作者“騰訊云技術社區”的原創稿件,轉載請通過51CTO聯系原作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2020-09-11 16:17:02

產品定價AI人工智能

2020-06-11 09:00:59

ELKTB級監控

2022-08-30 08:41:51

日志文件FileBeat配置

2016-07-05 10:53:56

2021-12-30 10:28:22

鴻蒙HarmonyOS應用

2010-06-09 08:39:34

2010-04-07 16:50:41

雙線解析DNS巧搭建

2021-05-01 20:36:01

隨身WiFiWiFi網絡

2020-05-18 12:04:17

PrometheusMySQL監控

2011-12-29 11:57:08

WA2612無線信號

2020-08-06 14:36:24

Elasticsear集群運維

2015-07-06 11:57:18

移動設備安全移動安全策略

2020-10-27 10:43:24

Redis字符串數據庫

2019-12-26 09:52:33

Redis集群線程

2022-03-01 18:27:18

云原生日志監控

2021-10-20 18:46:45

人工智能AI無人機

2009-08-27 16:53:05

C# using作用

2011-12-08 10:25:19

戴爾IT設備升級解決方案

2009-04-29 14:46:15

ADSL寬帶掉線
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久久久久久久久久久久久 | 午夜性色a√在线视频观看9 | 久久国产精品一区二区三区 | 一级黄色短片 | 精品综合 | 91电影院| 国产欧美精品一区二区色综合 | 九九热免费在线观看 | 久久久五月天 | 国产在线观看一区二区 | 免费小视频在线观看 | 久久精品国产一区二区三区不卡 | 精品视频一区二区三区在线观看 | 国产一区二区精品在线 | 一区二区三区在线观看视频 | 综合久久久| 99re视频在线免费观看 | 亚洲一区二区三区在线免费观看 | 一区二区在线 | 国产成人精品免高潮在线观看 | 中文字幕不卡视频在线观看 | 国产福利视频 | 国产精品一区二区视频 | 精品一区二区三区免费视频 | 亚洲精久久 | 久久久久久亚洲欧洲 | 中文字幕97 | 一区二区电影网 | 国产偷录视频叫床高潮对白 | 国产精品一区二区三区在线 | 妞干网av| 精品影院 | 国产午夜精品久久 | 一区二区在线免费观看视频 | 在线一区二区三区 | 欧美a区 | 欧美一区二区在线看 | 精品久久精品 | 午夜精品久久久久久久久久久久久 | 亚洲视频在线播放 | 亚洲精品久久久久久国产精华液 |