零代碼如何打造自己的實(shí)時(shí)監(jiān)控預(yù)警系統(tǒng)

概要

為什么要做監(jiān)控

線上發(fā)布了服務(wù),怎么知道它一切正常,比如發(fā)布5臺(tái)服務(wù)器袭艺,如何直觀了解是否有請(qǐng)求進(jìn)來,訪問一切正常奶栖。

當(dāng)年有一次將線上的庫配置到了Beta匹表,這么低級(jí)的錯(cuò)誤,排錯(cuò)花了一個(gè)通宵宣鄙,十幾個(gè)人袍镀。

某個(gè)核心服務(wù)掛了,導(dǎo)致大量報(bào)錯(cuò)冻晤,如何確定到底是哪里出了問題苇羡。

SOA帶來的問題,調(diào)用XX服務(wù)出問題鼻弧,很慢设江,是否可以衡量?

由于業(yè)務(wù)系統(tǒng)數(shù)量大攘轩,每天都會(huì)產(chǎn)生大量的系統(tǒng)日志和業(yè)務(wù)日志叉存,單流式業(yè)務(wù)的一臺(tái)服務(wù)器產(chǎn)生的日志達(dá)400M 想直接查看內(nèi)容打開可能幾分鐘,而且內(nèi)容之多根本無法查看度帮,給開發(fā)和運(yùn)維帶來諸多不便歼捏,現(xiàn)業(yè)務(wù)都是分布式的,日志也是分布在每臺(tái)服務(wù)器上笨篷,所以查看日志和統(tǒng)計(jì)更是效率低下瞳秽。實(shí)時(shí)收集分布在不同節(jié)點(diǎn)或機(jī)器上的日志,供離線或在線查閱及分析來提升工作效率的需求異常迫切率翅,在此背景下练俐,特對(duì)公司統(tǒng)一日志平臺(tái)進(jìn)行初步架構(gòu)設(shè)計(jì)。

在信息化時(shí)代冕臭,日志的價(jià)值是無窮的腺晾。為了對(duì)系統(tǒng)進(jìn)行有效的監(jiān)控、維護(hù)辜贵、優(yōu)化丘喻、改進(jìn),都離不開對(duì)日志的收集和分析念颈,接下來我們來看看秉著“短平快”的互聯(lián)網(wǎng)精神,構(gòu)建的這套適合現(xiàn)有業(yè)務(wù)系統(tǒng)的統(tǒng)一日志平臺(tái)连霉,總體分為業(yè)務(wù)日志監(jiān)控平臺(tái)和軟硬件服務(wù)監(jiān)控平臺(tái)榴芳。

業(yè)務(wù)日志平臺(tái)總體設(shè)計(jì)

以上是最終的一個(gè)最終的一個(gè)架構(gòu)規(guī)劃嗡靡,統(tǒng)一日志監(jiān)控系統(tǒng)負(fù)責(zé)將所有系統(tǒng)日志和業(yè)務(wù)日志集中,再通過flume或logstash上傳到日志中心(kafka集群)窟感,然后供Storm讨彼、Spark及其它系統(tǒng)實(shí)時(shí)分析處理日志,或直接將日志持久化存儲(chǔ)到HDFS供離線數(shù)據(jù)分析處理柿祈,或?qū)懭隕lasticSearch提供數(shù)據(jù)查詢哈误,或直接發(fā)起異常報(bào)警或提供指標(biāo)監(jiān)控查詢。

根據(jù)現(xiàn)有業(yè)務(wù)量來看躏嚎,以上架構(gòu)有點(diǎn)“重”蜜自,可以作為以后的目標(biāo),現(xiàn)階段來說可以參考以下架構(gòu):

以上內(nèi)容皆以配置為主卢佣,對(duì)現(xiàn)有業(yè)務(wù)沒有影響重荠,針對(duì)于Windows環(huán)境可以用FileBeat監(jiān)控本地日志全量、增量的上傳日志虚茶,對(duì)于一些穩(wěn)定的日志戈鲁,比如系統(tǒng)日志或框架日志(如HAproxy訪問日志、系統(tǒng)異常日志等)嘹叫,通過rsyslog寫到本地目錄local0婆殿,然后logstash根據(jù)其配置,會(huì)將local0中的增量日志上傳到日志中心罩扇。Java環(huán)境下可以采用log4j直接發(fā)送到Logstash婆芦。

日志處理層

可以在Logstash中對(duì)日志作簡單的分類加工處理再發(fā)送出去。

我們可以將日志聚合暮蹂,根據(jù)業(yè)務(wù)不同寞缝,建立不同的索引,存入ElasticSearch提供查詢仰泻。 發(fā)現(xiàn)異常日志時(shí)荆陆,發(fā)往監(jiān)控中心,向?qū)?yīng)的業(yè)務(wù)方發(fā)起報(bào)警集侯,發(fā)現(xiàn)和預(yù)發(fā)問題的實(shí)時(shí)性提高了被啼。統(tǒng)計(jì)一些訪問日志或調(diào)用日志等指標(biāo)信息,發(fā)往監(jiān)控中心來掌握相關(guān)調(diào)用趨勢棠枉。調(diào)用鏈開始做起來了浓体,系統(tǒng)性能瓶頸一目了然了。

日志存儲(chǔ)層

ElosticSearch中按照不同業(yè)務(wù)建索引主題(數(shù)據(jù)庫)辈讶,業(yè)務(wù)里面再按照需求建類型(表)命浴,不需要的歷史數(shù)據(jù)可按需要持久化到HDFS,以減少ES的壓力。

展示層Kibana

Kibana是ELK中的組件生闲,是一個(gè)針對(duì)Elasticsearch的開源分析及可視化平臺(tái)媳溺,用來搜索、查看交互存儲(chǔ)在Elasticsearch索引中的數(shù)據(jù)碍讯。使用Kibana悬蔽,可以通過各種圖表進(jìn)行高級(jí)數(shù)據(jù)分析及展示。

Kibana讓海量數(shù)據(jù)更容易理解捉兴。它操作簡單蝎困,基于瀏覽器的用戶界面可以快速創(chuàng)建儀表板(dashboard)實(shí)時(shí)顯示Elasticsearch查詢動(dòng)態(tài)。

Kibana可以非常方便地把來自Logstash倍啥、ES-Hadoop禾乘、Beats或第三方技術(shù)的數(shù)據(jù)整合到Elasticsearch,支持的第三方技術(shù)包括Apache?Flume逗栽、Fluentd等盖袭。

監(jiān)控ES的整體健康狀態(tài)

直接查詢ES索引內(nèi)容

簡單的查詢過濾日志數(shù)據(jù)窗口

可實(shí)時(shí)的圖形統(tǒng)計(jì)展示

采用ElastAlert實(shí)現(xiàn)日志監(jiān)控告警

平臺(tái)缺失針對(duì)mysql連接數(shù)的告警,指定業(yè)務(wù)如流式服務(wù)數(shù)據(jù)異常彼宠,當(dāng)異常觸發(fā)時(shí)能夠及時(shí)通過短信鳄虱、郵件等方式通知相關(guān)負(fù)責(zé)人員

如故障信息:

以上說的“日志”不僅限于日志信息,也可以是業(yè)務(wù)數(shù)據(jù)凭峡。

軟硬件服務(wù)監(jiān)控平臺(tái)設(shè)計(jì)

當(dāng)業(yè)務(wù)層日志發(fā)現(xiàn)異常時(shí)如保存數(shù)據(jù)到Mysql時(shí)經(jīng)常性報(bào)連接數(shù)據(jù)庫超時(shí)拙已,只有當(dāng)業(yè)務(wù)人中發(fā)現(xiàn)再通知我們時(shí)已經(jīng)過了一段時(shí)間才發(fā)現(xiàn)問題,但已無法重現(xiàn)當(dāng)時(shí)的生產(chǎn)環(huán)境摧冀,也就靠經(jīng)驗(yàn)來猜原因是服務(wù)器的網(wǎng)絡(luò)問題還是數(shù)據(jù)庫的真實(shí)連接滿了還是程序的寫法出現(xiàn)問題倍踪,因此就需要監(jiān)控當(dāng)時(shí)生產(chǎn)環(huán)境的軟硬件監(jiān)控?cái)?shù)據(jù)。

經(jīng)過多方咨詢參考各大廠的監(jiān)控方案和對(duì)比在此采用Zabbix作監(jiān)控索昂。

最近各服務(wù)整體問題一覽

針對(duì)Web服務(wù)器和API的訪問性能建车、HAproxy、IIS椒惨、Tomcat

實(shí)時(shí)繪圖監(jiān)控服務(wù)器所有TCP端口的數(shù)量和 MySql數(shù)據(jù)庫連接數(shù)缤至、Redis性能

自定義聚合展示服務(wù)器各指表最近的狀態(tài),CPU、內(nèi)存康谆、流量领斥。

顯示所有服務(wù)器的一個(gè)健康狀況,一目了然

自動(dòng)注冊監(jiān)控新的服務(wù)器

報(bào)警機(jī)制沃暗,Email月洛、微信、短信等

其它特性

可監(jiān)控Linux孽锥、Windows嚼黔、打印機(jī)细层、文件系統(tǒng)、網(wǎng)卡設(shè)備唬涧、 SNMP OID今艺、數(shù)據(jù)庫等平臺(tái)服務(wù)狀態(tài)。

允許靈活地自定義問題閥值爵卒, Zabbix 中稱為觸發(fā)器(trigger), 存儲(chǔ)在后端數(shù)據(jù)庫中。

高級(jí)告警配置撵彻,可以自定義告警升級(jí)(escalation)钓株、接收者及告警方式。

數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中? 歷史數(shù)據(jù)可配置 內(nèi)置數(shù)據(jù)清理機(jī)制陌僵。

web 前端采用 php 訪問無障礙轴合。

Zabbix API 提供程序級(jí)別的訪問接口,第三方程序可以很快接入碗短。

靈活的權(quán)限系統(tǒng)受葛。

結(jié)合以上業(yè)務(wù)和軟硬件上的日志方便開發(fā)和運(yùn)維實(shí)時(shí)查找問題提高解決問題的效率,而且前期均可只通過配置0代碼就可實(shí)現(xiàn)監(jiān)控和報(bào)表展示偎谁。

擴(kuò)展性

可用Spark對(duì)數(shù)據(jù)實(shí)時(shí)分析总滩,智能攔截異常數(shù)據(jù)和直接發(fā)送異常警報(bào)。

在Zabbix上結(jié)合自己的業(yè)務(wù)需求二次開發(fā)應(yīng)用系統(tǒng)層面上的預(yù)警監(jiān)控系統(tǒng)巡雨。

以后可加入Kafka將日志集中闰渔,至于為什么選用kafka集群來構(gòu)建日志中心,理由主要如下:

1铐望、分布式架構(gòu)冈涧,可支持水平擴(kuò)展。

2正蛙、高吞吐量督弓,在普通的服務(wù)器上每秒鐘也能處理幾十萬條消息(遠(yuǎn)高于我們的峰值1.5萬條/秒)。

3乒验、消息持久化愚隧,按topic分區(qū)存儲(chǔ),支持可重復(fù)消費(fèi)徊件。

4奸攻、可根據(jù)broker配置定期刪除過期數(shù)據(jù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虱痕,一起剝皮案震驚了整個(gè)濱河市睹耐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌部翘,老刑警劉巖硝训,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡窖梁,警方通過查閱死者的電腦和手機(jī)赘风,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纵刘,“玉大人邀窃,你說我怎么就攤上這事〖侔ィ” “怎么了瞬捕?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舵抹。 經(jīng)常有香客問我肪虎,道長,這世上最難降的妖魔是什么惧蛹? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任扇救,我火速辦了婚禮,結(jié)果婚禮上香嗓,老公的妹妹穿的比我還像新娘迅腔。我一直安慰自己,他們只是感情好陶缺,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布钾挟。 她就那樣靜靜地躺著,像睡著了一般饱岸。 火紅的嫁衣襯著肌膚如雪掺出。 梳的紋絲不亂的頭發(fā)上苫费,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天闲礼,我揣著相機(jī)與錄音柬泽,去河邊找鬼。 笑死第煮,一個(gè)胖子當(dāng)著我的面吹牛包警,可吹牛的內(nèi)容都是我干的特铝。 我是一名探鬼主播壹瘟,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了粱挡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎踱讨,沒想到半個(gè)月后痹筛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拷获。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匆瓜。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拇砰,到底是詐尸還是另有隱情,我是刑警寧澤瑰枫,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布甥材,位于F島的核電站土铺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏后德。R本人自食惡果不足惜理张,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一落蝙、第九天 我趴在偏房一處隱蔽的房頂上張望移迫。 院中可真熱鬧,春花似錦揽咕、人聲如沸逗柴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屠尊。三九已至旷祸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間讼昆,已是汗流浹背托享。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浸赫,地道東北人闰围。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像既峡,于是被迫代替她去往敵國和親羡榴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容