[elk] 教學與介紹
文章推薦指數: 80 %
[elk] 教學與介紹. 上網打關鍵字「什麼是elk?」,都會介紹說elk 是elasticsearch + logstash + kibana 三兄弟stack 起來的服務。
GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWritePublishedin程式乾貨[elk]教學與介紹上網打關鍵字「什麼是elk?」,都會介紹說elk是elasticsearch+logstash+kibana三兄弟stack起來的服務。
Elasticsearch、Logstash、Kibana簡單來說,就是想要把logfile解析後、並視覺化變得美美的~例如我有兩隻排程每天會執行,並且有寫logfile去監控排程的執行狀況,那我的logfile大概會長這個樣子密密麻麻的log檔今天我想要找出有哪些job有出過錯誤,如果log檔本身內容不多或許還好查詢,但現在我想找的是某一個區間(EX.2020年8月~2020年9月)有出過error的job可就會找到眼睛脫窗了!這時候如果有個完美的圖形化介面,能幫我解析logfile、把我想要的資訊及區間篩選出來,不就能增進我監控排程的效率?像下面這樣:視覺化解析log檔因此,整體的流程圖可以用下面這張呈現。
logstash負責收集、轉換與解析logfile,elasticsearch使用分布式搜索快速地檢索logfile中的資料,最後kibana提供漂亮的圖形化介面。
dataflowofelkstack既然知道有這麼好用的工具,那我們就趕緊來使用吧~但既然是三兄弟,安裝步驟肯定多,今天這篇就先介紹怎麼在macOS系統上搭建elk環境與產出圖形化介面(windows用戶抱歉啦!step1.下載ELK三套件ElasticsearchLogstashKibana下載完後將各個檔案夾解壓縮到某一個目錄即可,像我的話是放在「下載項目/Users/{your_user_name}/Downloads」中,端看個人喜好~所以我下載完三套件的路徑就會在:/Users/{your_user_name}/Downloads/elasticsearch-7.8.0/Users/{your_user_name}/Downloads/logstash-7.8.0/Users/{your_user_name}/Downloads/kibana-7.8.0-darwin-x86_64step2.啟動E、L、K三套件2.1啟動Elasticsearch進入elasticsearch-7.8.0/bin目錄中,輸入$elasticsearch,成功啟動後,可以輸入以下網址http://localhost:9200/,順利的話應該可以看到下面的輸出:{"name":"Atalanta","cluster_name":"elasticsearch","version":{"number":"2.1.1","build_hash":"40e2c53a6b6c2972b3d13846e450e66f4375bd71","build_timestamp":"2015-12-15T13:05:55Z","build_snapshot":false,"lucene_version":"5.3.1"},"tagline":"YouKnow,forSearch"}2.2啟動logstash並設定如何讀取logfile在啟動logstash之前,我們必須撰寫設定檔config、來要求logstash如何解析log檔案。
首先一樣先進入logstash-7.8.0/bin中,我們創建一個資料夾叫做「conf」、並在下面撰寫一個conf檔「logstash-indexer.conf」:$mkdirconf$viconf/logstash-indexer.confconf檔案內容如下,內容可大致分為輸入層、解析層、輸出層,為了從簡我們先對輸入與輸出層做conf撰寫就好了:#輸入層:指定log讀取位置(可以多個文件同時讀取),可依照你log檔的位置撰寫input{file{path=>"/Users/user/Desktop/MyCheatSheet/log/daily_job.log"start_position=>"beginning"}}#解析層:指定解析欄位方式filter{}#輸出層:指定elasticsearch存放的主機位置與index名稱output{elasticsearch{hosts=>["localhost:9200"]index=>"mylocal_logstash"}stdout{codec=>rubydebug}}將logstash-indexer.conf保存好後,接下來就可以啟動logstash~一樣到logstash-7.8.0/bin目錄下,輸入$logstash-fconf/logstash-indexer.conf,讓子彈飛一會兒後~如果看到「SuccessfullystartedlogstashAPI」字樣就代表啟動成功了,這時如果你到原本的logfile裡面隨便寫一些東西、或是本來裡面就有資料,也會把資料讀取到終端機畫面如下:代表logstash運作正常、確實有讀取數據2.3.啟動Kibana與設定首先在kibana-4.3.1-darwin-x64/config下面有一個設定文件「kibana.yml」,找到下面這一行並修改:#TheURLsoftheElasticsearchinstancestouseforallyourqueries.#細心的你應該會發現這個localhost:9200就是前面logstash指定要output到elasticsearch的主機位置elasticsearch.hosts:["http://localhost:9200"]修改完後,回到kibana-7.8.0-darwin-x86_64/bin下,輸入$kibana即可啟動kibana啟動畫面啟動完成後,在任一瀏覽器輸入http://localhost:5601/,就可以成功看到kibana的介面~kibana介面step3.創建index並視覺化3.1建立index-pattern當我們首次搭建elk環境時,我們必須建立index來告訴kibana如何將elasticsearch與logstash讀取到的檔案視覺化,因此我們進入kibana的「index-management」中,會發現之前在logstash-index.conf中最後我們output曾有指定index名稱是「mylocal_logstash」,並且其中的詳細資訊(例如資料筆數Docscount)也列在其中:此時我們就要利用這個index,到kibana下面的「index-pattern」中,建立一個新的index-pattern:點選「Createindexpattern」,接著會提示你可以用的index,從中輸入你想要的index-pattern名稱後(像我隨便取一個my*),點選Nextstep:接著選取你想要篩選使用的時間欄位,通常logfile都會標注時間欄位,這時就端看你的時間欄位名稱為何。
如果你的logfile中沒有寫時間欄位,也可以選擇不要使用timefilter~完成後就可以點選Createindexpattern,系統就會顯示創建完成的畫面,並顯示你從logstash解析到的欄位fields有哪些選取讓kibana篩選的時間欄位依據index-pattern建立成功!3.2回到kibana看漂亮的視覺化接著回到kibana介面,記得在左上角的index切換成你剛剛建立的「my*」,接下來你就可以用滑鼠點點拉拉分析你的logfile啦~是不是很方便呢~還可以選我想要單獨看的欄位,例如:message是我主要紀錄log日誌的訊息,我其實看這個就夠了單獨看message這個欄位延伸問題綜合以上例子,我們發現在「message」這個欄位中其實隱藏了許多詳細資訊,像是time,project_name,msg...等,但是kibana怎麼沒有解析出這些欄位呢?還記得我們一開始撰寫logstash-indexer.conf時,我們的filter解析層其實並沒有寫入任何規則對吧!?這個眉角就在這裡喔~如果我們想要讓kibana上面針對「message」有詳細的解析欄位,像是我想要單獨把msg解析出來:單獨把message中的msg解析出來我們就必須要在logstash-indexer.conf中的filter解析層撰寫規則,像是下面這個樣子:這個撰寫規則需要用到正則表達式regex,內容有點瑣碎與複雜,大致上是把「message」解析出「time,function_name,project_name,msg」這幾個欄位fields,詳細寫法我們就留到之後再介紹囉~Morefrom程式乾貨記錄著學習程式與技術道路上的點點滴滴,希望能幫助到想要進入程式領域的各位。
學好程式的技巧無他:Makeyourhandsdirty~坐下來一起敲電腦吧Readmorefrom程式乾貨AboutHelpTermsPrivacyGettheMediumappGetstartedPCChen73Followers喜歡接觸與動手實作各種軟體技術的後端數據工程師Adata-backendengineerwhoisenthusiasticinlearningandimplementinganytechniquesinsoftwareengineering.FollowMorefromMediumMajidParvinRunningaKafkaclusterlocallyImalshaGunasekaraFormPostResponseModewithWSO2IdentityServerBorisEpsteinHIAB(HIVEInaBox) :11JuneupdateGayanLiyanagamageAutoscalingWSO2APIGatewayandWSO2ChoreoConnectonKubernetes — Part2HelpStatusWritersBlogCareersPrivacyTermsAboutKnowable
延伸文章資訊
- 1如何開始搭建Elastic Stack及使用方式介紹-下- 偉康科技洞察室
.env: ELK版本參數. docker-compose.yml: container相關設定 ... ELK應用場境 ... ELK在Machine learning上異常偵測必知的教學設定...
- 2[elk] 教學與介紹
[elk] 教學與介紹. 上網打關鍵字「什麼是elk?」,都會介紹說elk 是elasticsearch + logstash + kibana 三兄弟stack 起來的服務。
- 3ELK 安裝教學|Elasticsearch 線上及離線安裝
- 4今夜,先來個開場,什麼是ELK Stack?
ELK是一個簡單但功能強大的日誌管理和分析平台,價格卻僅為其一小部分。 我公司的運維主管,透過快速的教學,已經能讓我的同事們(客服)都會觀看Kibana ...
- 5以ELK進行視覺化分析資安設備日誌