【ELK入門】Elastic中文社群運維監控實戰之架構篇
專案背景
本文為系列文章第一篇,主要介紹如何把 Elastic 中文社群的網站伺服器監控起來,對有同樣想了解如何使用 Elastic Stack 來做運維監控的同學,可以作為一個很好的參考和入門資料,學習門檻定義為入門級。
首先,我們要監控的網站,也就是大家現在正在訪問的 Elastic 官方中文社群,網址:elasticsearch.cn,這個網站基於開源的 WeCenter 搭建,開發語言是 PHP,後端資料庫是 MySQL,目前只有一臺伺服器,由 ConvertLab 友情無償贊助,大寫的贊!再次感謝!
伺服器部署環境是 Ubuntu 16.04.2,部署了以下服務及軟體:
- Nginx – Http 反向代理,不要介紹了吧
- PHP-FPM – 一個常用的 PHP FastCGI 管理
- Elasticsearch – Elasticsearch 服務,用於社群的垂直搜尋服務 Elastic情報局服務。
- GOPA – 可以說是為社群而寫的,一個輕量級的爬蟲,用於爬取 Elatic 周邊相關相關資料,建立索引存放到 Elasticsearch 裡面,提供垂直搜尋服務。程式碼地址
- Grok Debugger – 一個 Java 的 Grok pattern 除錯服務,方便大家除錯 Grok 日誌解析規則。訪問地址
伺服器上所有的財產就這些了,一個平淡無奇的網站,基本上所有的東西都能公開訪問到,這個網站的目的就是為所有 Elastic 愛好者服務的,供大家交流和溝通的專屬平臺,所以請各位黑客大俠不要再掃描和攻擊啦,畫一個簡單的拓撲圖如下所示:
作為一個合格的網管,除了重啟伺服器之外,還必須要保證網站的正常執行,所以瞭解網站的執行情況就變成了一個需要解決的首要問題,我們可以先把任務具體列一下:
- 網站是否正常訪問,各項服務有沒有掛
- 網站訪問情況如何,使用者訪問速度如何
- 網站訪客統計分析,訪客相關資料分析
- 伺服器的各項指標,詳細指標監控分析
- 伺服器的各項服務,日誌集中分析處理
- 伺服器是否很安全,有沒有黑客來造訪
- 資料是否安全備份,有沒有定期測試過
實在編不下去了,話說對的還蠻齊。說人話就是監控起伺服器的各項指標和收集服務的日誌,然後出幾個分析的 Dashboard,監控報警整起來。
技術選型
結合社群監控場景,需要的工具主要是如下幾個:
監控資料儲存:Elasticsearch
Elasticsearch 是一個分散式的 RESTful 風格的搜尋和資料分析引擎。簡單易用,使用者眾多,效能優良,久經考驗,支援單節點部署到虛擬機器,並可隨著業務增長無縫伸縮擴容至上千個節點規模的叢集,PB 級別資料也不在話下。
日誌資料和指標監控資料都能放,通過集中式儲存所有的這些時序型資料,可以快速方便的對這些資料進行分析和關聯,實在是排障運維和效能調優的不二選擇,你如果還不知道 Elasticsearch,那我只能說你真的是 out 了。
日誌資料收集:Filebeat
Elastic Beats 家族的一員,Go 語言編寫,輕量級,無依賴,這樣就可以很方便的完成收集端的部署,所以如果你的場景和我一樣, 可以優先使用 Filebeat 代替 Logstash 來收集日誌,當然如果有日誌的進一步加工,可以讓 Filebeat 把資料傳送給 Logstash,然後 Logstash 處理完之後再傳送給 Elasticsearch。
Filebeat 使用很靈活,可以指定你的日誌路徑來進行收集,還可以對資料進行預過濾,對於一些常見的監控需求,Filebeat 以模組的方式替你打包好了一切,如:日誌路徑配置、解析規則、機器學習的任務,甚至還自帶 Dashboard,簡單幾個操作,就可以完成從資料收集到最終視覺化分析的所有工作。
指標資料收集:Metricbeat
我們這次需要監控的伺服器都是一些常規的指標,而 Metricbeat 剛好都支援這些指標的收集。Metricbeat 同樣也是 Elastic Beats 家族的一員,同樣也是開源的。定位是一個輕量級的監控指標採集器,採用 Go 語言編寫,同樣提供的是一個很小的無依賴的二進位制檔案包,能夠收集伺服器(Linux、Windows、Mac)本身的執行指標,如: CPU 使用率、記憶體、檔案系統、磁碟 IO 和網路 IO 統計資料等,還能獲取伺服器上面的各項服務的執行指標,常見的如: Apache、NGINX、MongoDB、MySQL、PostgreSQL、Prometheus、Redis 等都有直接支援,並且內建了 Elasticsearch 索引和 mapping 設定,以及 Ingest pipeline 設定,還提前預置了不少 Kibana 的 Dashboard,開箱即用、即分析。
資料分析展現:Kibana
和 Elasticsearch 工作的最佳拍檔,結合 Elasticsearch 的實時分析能力,可以非常方便的對各種資料進行搜尋和分析,你可以靈活的自定義的各種圖形展現和 Dashboard,不用編寫一行程式碼,即可進行資料分析,除了分析,還整合了 Elastic Stack 的各個產品的管理功能,作為 Elastic Stack 的圖形互動終端。
除了上面這些工具,後續我們還可以考慮使用 Auditbeat 來收集伺服器的安全行為日誌,使用 Heartbeat 來監控各個服務的埠是否正常,我們先完成基本的監控之後,再慢慢將這些加上。
可以看到,我們沒有用到 Logstash。是的,這個規模的監控,可以不考慮 Logstash,這樣我們可以做到架構簡單和足夠的輕量級。
上面列的這些軟體都是 Elastic 家族的產品,並且都是開源的,所有的原始碼都在:https://github.com/elastic/ 。
部署方案
在收集資料之前,我們需要明確我們資料放在哪裡,毫無疑問,所有的資料都將放在 Elasticsearch 裡面,不過 Elasticsearch 不能部署在 Elastic 中文社群的這臺伺服器上面,一個是資源的限制,另外一個是基於安全的考慮,如果 Elastic 社群的伺服器掛了,資料不光收不到,連什麼時候掛的都不知道。所以我們需要把 Elasticsearch 服務搭建在別的地方,有多種選擇:
- 使用 Elastic Cloud,很方便就能開通,缺點國內訪問速度慢,暫時還沒開放機器學習的功能。
- 使用阿里雲的 Elasticsearch,Elastic 官方合作伙伴,國內唯一包含 X-Pack 的完整功能的 Elasticsearch 雲服務,國內訪問速度快。
- 自己搭建的 Elasticsearch 叢集。
使用阿里雲的 Elasticsearch 無疑很方便,不過我家裡剛好有一臺伺服器,型號 HP Gen8,16GB 記憶體,上面執行了 SmartOS,跑幾個 zone 很輕鬆,每天用來備份社群的資料庫,再來起一個 Elasticsearch 服務也很方便,通過路由器將內網 IP 對映出去,讓社群伺服器將監控資料傳送到這臺伺服器上面來,安全上面,需要保證這臺伺服器不被黑客攻擊,需要做一些必要的訪問控制,可以使用 X-Pack 的身份驗證,結合 IP 白名單功能,只允許內網和 Elastic 中文社群伺服器的 IP 訪問。我們將之命名為:Ops Center,方便後面招呼。
可以看到,Elastic 社群伺服器除了啟動 Filebeat 和 Metricbeat 之外,不需要額外做什麼伺服器本身的設定。
這裡畫一個簡單的部署拓撲圖,方便理解:
本篇就寫到這裡,未完待續。
作者介紹
曾勇(Medcl)
Elastic開發工程師、Elasticsearch中文社群管理者、阿里雲MVP
在分散式搜尋、高效能、高可用架構、自動化運維等方面積累了超過七年的經驗。曾勇是Elasticsearch國內首批使用者,自2010年起就開始接觸Elasticsearch並投入到生產環境中使用,並編寫過一系列的中文處理相關的外掛。
加入釘釘技術討論群
阿里雲Elasticsearch已正式釋出啦,Elastic開源官方聯合開發,整合5.5商業版本XPack功能,歡迎開通使用。
點選瞭解更多產品資訊
相關文章
- 運維架構服務監控Open-Falcon運維架構
- ELK基礎架構解說-運維筆記架構運維筆記
- 踩坑指南:入門OpenTenBase之監控篇
- 測試右移:線上質量監控 ELK 實戰
- elastic-job-lite 入門以及架構原理分析AST架構
- 運維監控工具運維
- 入門MySQL——架構篇MySql架構
- Pulsar 入門實戰(2)--特性及架構架構
- 【IT運維監控】幾大運維監控工具優缺點介紹運維
- 呼叫鏈監控 CAT 之 入門
- 全新SaaS運維監控平臺構建書運維
- 無監控,不運維:解讀企業全棧式監控運維運維全棧
- 微服務架構之「 呼叫鏈監控 」微服務架構
- 微服務架構之「 監控系統 」微服務架構
- ELK運維文件運維
- 應對複雜架構下的監控挑戰?統一運維可觀測能力是關鍵!架構運維
- 監控入門
- Hadoop2.x運維實戰之入門手冊v1.0Hadoop運維
- IT監控(進階篇):運維監控系統手把手部署教學運維
- 運維監控利器nagios運維iOS
- 運維必學的監控系統——Prometheus,大牛免費直播帶你入門~運維Prometheus
- Systemd 入門教程:實戰篇
- Elastic AMP監控.NET程式效能AST
- 運維監控系統 PIGOSS BSM的監控策略運維Go
- 體驗監控寶自定義監控 送你《IT運維之道》運維
- 運維監控指標彙總運維指標
- 「滴滴運維」招聘——誠求運維架構師運維架構
- Spring Boot Serverless 實戰系列“架構篇”首發 | 光速入門函式計算Spring BootServer架構函式
- .Net微服務實戰之技術架構分層篇微服務架構
- 金融系統IT運維監控的探索與實踐運維
- 入門篇-其之七-Java運算子Java
- Docker 監控實戰Docker
- 雲原生架構日誌監控最佳實踐架構
- Spring Boot 揭祕與實戰(九) 應用監控篇 - HTTP 健康監控Spring BootHTTP
- LED螢幕監控運維管理方案運維
- ORACLE OGG運維及日常監控Oracle運維
- 運維文件:網站監控系統運維網站
- 分層運維自動化監控運維