3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
如何建構 Log Service 與 System Monitor ElasticSearch 是一個全文搜尋引擎,這個特性用在 Log Service 領域變得相當方便。前幾年 ELK (ElasticSearch + Logstash + Kabana) 相當火熱,ElasticSearch 針對營運、Log 監控與分析市場也做了很多努力,陸續發表 Beats Project 相關產品。 完整的 Beats 包含了以下模組: 上述每一個模組都有不同的特性與使用情境,但我們今天先介紹 Metricbeat 這個模組,其他有空再研究與介紹了。 用 ElasticSearch Metricbeat 創建伺服器監控服務 我們這裡會用到 ElasticSearch 與 Kibana,安裝可以參考以前寫的 ElasticSearch 安裝文章,由於 ElasticSearch 改版迅速,如果要進行安裝建議可以使用最新版本。開始以前我們假設已經安裝好 ElasticSearch + Kibana,並且 9200, 5461 Port 已經可以正常連線。這樣的 Log Monitor 組合常用的也有 Grafana + Prometheus 等等架構,我認為選擇自己的適合的架構即可,不要同時維護太多同質性的服務會比較輕鬆。 安裝 Metricbeat Service 這裡我們先來伺服器 (VM) 部署 System Metricbeat Agent,我們這裡使用的版本是 6.6,在 Kibana 已經有內建的部署說明,進入 Kibana 後點選左上角的圖示,接著選取「Add metric data」,如下: 進入以後可以看到已經有很多常用的監控模組可以套用,Metricbeat 只是 Beats Family 的其中一個 Project,另外也可以使用 Filebeat 來讀取不同服務的 Log Format 傳送到 ElasticSearch 進行分析與監控。 這裡我們選擇「System metrics」模組 進入以後會看到一個完整的引導安裝步驟,其實比較需要注意的就是版本編號,一般來說玩 ElasticSearch 要盡量使用一制性的版本。這樣才能確保各個模組資料傳遞與整合遇到的問題最少,不同版本的 ElasticSearch Project 在整合上非常容易遇到問題,要更加小心。System Metricbeat Install 如下: 以 Ubuntu 為例子,先登入需要被監控的 Server 來安裝 Metricbeat Service。首先先下載 Deb 安裝檔 (如果是 7.6.0 以上的版本也可以加入 Spurce List 用 APT 直接安裝) 下載 Metricbeat 網址 https://www.elastic.co/guide/en/beats/libbeat/current/beats-reference.html 我在 ElasticSearch 6.6.0 版本安裝 Metricbeat 流程如下: 1 2 curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-6.6.0-amd64.deb sudo dpkg -i metricbeat-6.6.0-amd64.deb 安裝完成以後需要先編輯 metricbeat 服務設定檔 vim /etc/metricbeat/metricbeat.yml 這支 Yaml 檔案主要我們需要編輯有關 ElasticSearch 與 Kibana 連線資訊,比如連線有沒有用到 HTTPS 或登入帳號密碼等等,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 output.elasticsearch:   # Array of hosts to connect to.   hosts: ["your_elasticsearch_host:9200"]   # Enabled ilm (beta) to use index lifecycle management instead daily indices.   #ilm.enabled: false     # Optional protocol and basic auth credentials.   #protocol: "https"   #username: "elastic"   #password: "changeme"   setup.kibana:     # Kibana Host   # Scheme and port can be left out and will be set to the default (http and 5601)   # In case you specify and additional path, the scheme is required: http://localhost:5601/path   # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601   host: "your_kibana_host:5601" 修改好以後先儲存,再來就是啟用 System Module 如下: 1 sudo metricbeat modules enable system 如果要修改或調整 System Metricbeat 可以編輯 system.yml /etc/metricbeat/modules.d/system.yml 如果是第一次安裝,Metricbeat 就需要在 Kibana 建立對應的 Index template 與 Dashboard,如下: 1 sudo metricbeat setup 這個動作執行需要一點時間,而且要確保執行的機器與 Kibana 是可以連線的,如果已經執行過 Dashboard 的安裝,就可以略過這個步驟。建立好以後我們可以在 Kibana 看到很多新建立的 Dashboard: 像我的環境可能要同時監控不同 IaaS Cloud 上面的 VM,安裝過 Dashboard 以後,其他機器就只需要確認 ElasticSearch 可以連線收資料即可。 設定好以後啟動服務,就會開始自動傳送資料到 ElasticSearch 囉,如下: 1 sudo service metricbeat start ElasticSearch 搜集資料以後,接著我們從 Kibana Dashboard 就可以進行 System Monitor,提供顯示的資訊如下: 除了 System Metricbeat 還可以做些什麼? 這一次研究 ElasticSearch 來實現 Monitor 主要是服務營運需求,平時我們已經透過 ElasticSearch 搜集各種層級的 Log Data,當系統發生問題時,如果可以同時搭配 Service Log 與 System Status 會更方便我們定位錯誤,這幾年我已經放棄那些有歷史眼淚的服務監控系統 (像是 Cacti, MRTG 等等老屁股工具)。此外,Beats 除了 System Metric 還提供很多很多模組,像是 MySQL, Container, Kubernates 等等都是常使用的服務,另外搭配 Filebeat 來搜集服務 Log 也是非常好用的,例如 MySql 壓力的監控、SlowLog 等等都可以一起放進來監測,相當方便。   分享到 Twitter(在新視窗中開啟) 按一下以分享至 Facebook(在新視窗中開啟) 分享到 LinkedIn(在新視窗中開啟) 點這裡寄給朋友(在新視窗中開啟) 按一下即可分享至 Skype(在新視窗中開啟) 分享到 Reddit(在新視窗中開啟) 分享到 Tumblr(在新視窗中開啟) 按一下以分享到 Telegram(在新視窗中開啟)

本文由toright提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦