微服務(wù)實踐是一個漫長的過程, 教程只是個開始硅堆, 讓我們填平這條路的坑
前言
在本次專題中講解的是微服務(wù)的監(jiān)控概要沧奴,該專題的內(nèi)容非常多, 第一是因為監(jiān)控本身可以說做得好就是一個子系統(tǒng)了姓蜂, 要做的很好, 可能還需要一些監(jiān)控工具的二次開發(fā)等医吊, 而對于中小型企業(yè)钱慢, 能利用一些開源、認(rèn)知度高的監(jiān)控工具卿堂, 也足以滿足基本要求束莫。 在本節(jié)中, 主要介紹一下監(jiān)控草描, 對于如何搭建微服務(wù)的監(jiān)控览绿, 將在下節(jié)進(jìn)行介紹。
為什么需要監(jiān)控
監(jiān)控是一個不能被忽略的點穗慕, 想象一下饿敲, 服務(wù)突然宕機, 而如果監(jiān)控做的不到位逛绵, 第一時間就連服務(wù)宕機也可能不知道怀各。 如果此時用戶正在使用倔韭, 那么對于產(chǎn)品的性價比將會是一個巨大的疑問, 對于公司瓢对, 損失的可能不僅僅是那么幾個用戶了寿酌。盡管我們可以做負(fù)載均衡來提高容災(zāi)性,但是如果監(jiān)控不到位沥曹, 我們怎么能知道其中的一個服務(wù)發(fā)生了問題份名, 對于其中的一個服務(wù)發(fā)生問題后碟联, 我們依據(jù)哪些東西來確定問題的原因妓美, 還是說僅僅是重新啟動服務(wù)呢?
所以鲤孵, 搭建一套監(jiān)控系統(tǒng)是非常有必要的壶栋, 而對于監(jiān)控, 我認(rèn)為主要從以下幾個方面考慮
- 指標(biāo)
- 告警
- 日志
指標(biāo)
指標(biāo)(metrics): 衡量目標(biāo)特征方法普监, 一些特定的指標(biāo)能夠反映出系統(tǒng)的穩(wěn)定情況贵试, 服務(wù)的健康狀況, 比如磁盤剩余容量凯正,磁盤剩余量/磁盤總?cè)萘?達(dá)到90%時毙玻, 我們可能就需要采取擴容策略了。 通過各個系統(tǒng)/服務(wù)指標(biāo)的采集廊散, 再通過一定的手段分析展示桑滩,
除了監(jiān)控一些指標(biāo)超標(biāo)外, 我們還可以通過分析這些指標(biāo)來優(yōu)化性能允睹,比如采集垃圾收集器的頻率运准, 如果發(fā)現(xiàn)YGC過高的話,則可以通過增大Eden區(qū)域來優(yōu)化缭受。
告警
告警即當(dāng)某種條件達(dá)成時胁澳, 向特定目標(biāo)發(fā)送報警通知,通過告警米者, 我們可以第一時間去處理問題韭畸, 而不是通過用戶偶然的發(fā)現(xiàn)某功能/服務(wù)不可用了。 當(dāng)然告警的條件有很多蔓搞, 比如服務(wù)上線或下線時進(jìn)行告警陆盘, 因為下線可能是正常下線, 也可能是異常下線败明; 指標(biāo)超標(biāo)告警隘马, 某些指標(biāo)可能直接關(guān)系著系統(tǒng)/服務(wù)的健康情況, 一旦指標(biāo)超標(biāo)妻顶, 可能會存在著服務(wù)不可用的風(fēng)險酸员。通常告警的方式有短信蜒车、郵件, 當(dāng)然現(xiàn)在主流的一些應(yīng)用也支持通過接口推送到應(yīng)用中幔嗦。
告警是發(fā)生了問題或問題即將發(fā)生能夠及時通知酿愧, 而優(yōu)化是讓問題盡可能少的發(fā)生, 所以我們的目標(biāo)應(yīng)重點放在優(yōu)化上邀泉, 而不要過度依賴于告警后再采取行動嬉挡, 但是告警也是監(jiān)控必不可少。
日志
對于任何系統(tǒng)或服務(wù)汇恤, 日志是不可或缺的組成部分之一庞钢, 日志中記錄了程序(服務(wù))運行中輸出的信息,而程序的錯誤日志也會記錄在日志中因谎, 而對于一個龐大的系統(tǒng)基括, 日志的大小就不在一個數(shù)量級, 在很多時候财岔, 日志是通過文件進(jìn)行存儲的风皿, 直接查看龐大的日志是幾乎不切實際的, 即使將日志文件以天或時進(jìn)行分割匠璧, 查閱如此龐大的日志是幾乎無價值的桐款, 所以需要有效的分析日志工具來幫我們從日志中找出其價值,在下節(jié)中夷恍, 我會介紹ELK以及我的ELK的實踐魔眨。