Nightingale企業(yè)級監(jiān)控解決方案
夜鶯(Nightingale)是一個企業(yè)級監(jiān)控解決方案。旨在滿足云原生時代企業(yè)級的監(jiān)控需求。Nightingale 在產(chǎn)品完成度、系統(tǒng)高可用、以及用戶體驗(yàn)方面,達(dá)到了企業(yè)級的要求,可滿足不同規(guī)模用戶的場景,小到幾臺服務(wù),大到數(shù)十萬都可以完美支撐。兼顧云原生和裸金屬,支持應(yīng)用監(jiān)控和系統(tǒng)監(jiān)控,插件機(jī)制靈活,插件豐富完善,具有高度的靈活性和可擴(kuò)展性。
Nightingale 最初由滴滴開源,后來捐贈給中國計(jì)算機(jī)學(xué)會開源發(fā)展委員會(建成CCF ODC),是CCF ODC首個接受產(chǎn)業(yè)界捐贈的開源項(xiàng)目。
Nightingale 在 Open-Falcon 的基礎(chǔ)上,結(jié)合滴滴內(nèi)部的最佳實(shí)踐,在性能、可維護(hù)性、易用性方面做了大量的改進(jìn),作為集團(tuán)統(tǒng)一的監(jiān)控解決方案,支撐了滴滴內(nèi)部數(shù)十億監(jiān)控指標(biāo),覆蓋了從系統(tǒng)、容器、到應(yīng)用等各層面的監(jiān)控需求,周活躍用戶數(shù)千。五年磨一劍,取之開源,回饋開源。
產(chǎn)品特點(diǎn)
開箱即用
內(nèi)置監(jiān)控大盤、快捷視圖、告警規(guī)則,導(dǎo)入即可快速使用,廣大社區(qū)用戶也在持續(xù)完善,將最佳實(shí)踐內(nèi)置于產(chǎn)品
兼容并包
可以和 Prometheus、Categraf、Telegraf、Datadog-Agent、VictoriaMetrics、M3DB 等無縫集成
高性能
得益于新時代的高性能時序庫,和夜鶯引擎?zhèn)葍?yōu)秀的設(shè)計(jì),單機(jī)輕松扛起百萬Series,節(jié)省企業(yè)大量成本
水平擴(kuò)展
服務(wù)端組件均可水平擴(kuò)展,無單點(diǎn)風(fēng)險;亦可將時序庫、告警引擎下沉到各個機(jī)房,從地域、業(yè)務(wù)層拆分
經(jīng)受打磨
夜鶯監(jiān)控已經(jīng)在上千家企業(yè)部署落地,經(jīng)受了生產(chǎn)實(shí)踐打磨,有些企業(yè)的夜鶯集群達(dá)幾十臺機(jī)器,處理十億級Series
社區(qū)活躍
托管于中國計(jì)算機(jī)學(xué)會開源發(fā)展委員會,有快貓星云商業(yè)公司持續(xù)投入,夜鶯項(xiàng)目具有持久生命力
產(chǎn)品介紹
Nightingale 可以接收各種采集器上報(bào)的監(jiān)控?cái)?shù)據(jù),轉(zhuǎn)存到時序庫(可以支持Prometheus、M3DB、VictoriaMetrics、Thanos等),并提供告警規(guī)則、屏蔽規(guī)則、訂閱規(guī)則的配置能力,提供監(jiān)控?cái)?shù)據(jù)的查看能力,提供告警自愈機(jī)制(告警觸發(fā)之后自動回調(diào)某個webhook地址或者執(zhí)行某個腳本),提供歷史告警事件的存儲管理、分組查看的能力。
系統(tǒng)截圖
系統(tǒng)架構(gòu)
鶯 v5 的設(shè)計(jì)非常簡單,核心是 server 和 webapi 兩個模塊,webapi 無狀態(tài),放到中心端,承接前端請求,將用戶配置寫入數(shù)據(jù)庫;server 是告警引擎和數(shù)據(jù)轉(zhuǎn)發(fā)模塊,一般隨著時序庫走,一個時序庫就對應(yīng)一套 server,每套 server 可以只用一個實(shí)例,也可以多個實(shí)例組成集群,server 可以接收 Categraf、Telegraf、Grafana-Agent、Datadog-Agent、Falcon-Plugins 上報(bào)的數(shù)據(jù),寫入后端時序庫,周期性從數(shù)據(jù)庫同步告警規(guī)則,然后查詢時序庫做告警判斷。每套 server 依賴一個 redis。
產(chǎn)品對比
Zabbix
Zabbix 是一款老牌的監(jiān)控系統(tǒng),對機(jī)器和網(wǎng)絡(luò)設(shè)備的監(jiān)控覆蓋很全,比如支持 AIX 系統(tǒng),常見的開源監(jiān)控都是支持 Linux、Windows,AIX 較少能夠支持,Zabbix 用戶群體廣泛,國內(nèi)很多公司基于 Zabbix 做商業(yè)化服務(wù),不過 Zabbix 使用數(shù)據(jù)庫做存儲,容量有限,今年推出的 TimescaleDB 對容量有較大提升,大家可以嘗試下;其次 Zabbix 整個產(chǎn)品設(shè)計(jì)是面向靜態(tài)資產(chǎn)的,在云原生場景下顯得力不從心。
Open-Falcon
因?yàn)殚_發(fā) Open-Falcon 和 Nightingale 的是一撥人,所以很多社區(qū)伙伴會比較好奇,為何要新做一個監(jiān)控開源軟件。核心點(diǎn)是 Open-Falcon 和 Nightingale 的差異點(diǎn)實(shí)在是太大了,Nightingale 并非是 Open-Falcon 設(shè)計(jì)邏輯的一個延續(xù),就看做兩個不同的軟件就好。
Open-Falcon 是 14 年開發(fā)的,當(dāng)時是想解決 Zabbix 的一些容量問題,可以看做是物理機(jī)時代的產(chǎn)物,整個設(shè)計(jì)偏向運(yùn)維視角,雖然數(shù)據(jù)結(jié)構(gòu)上已經(jīng)開始設(shè)計(jì)了標(biāo)簽,但是查詢語法還是比較簡單,無法應(yīng)對比較復(fù)雜的場景。
Nightingale 直接支持 PromQL,支持 Prometheus、M3DB、VictoriaMetrics 多種時序庫,支持 Categraf、Telegraf、Datadog-Agent、Grafana-Agent 做監(jiān)控?cái)?shù)據(jù)采集,支持 Grafana 看圖,整個設(shè)計(jì)更加云原生。
Prometheus
Nightingale 可以簡單看做是 Prometheus 的一個企業(yè)級版本,把 Prometheus 當(dāng)做 Nightingale 的一個內(nèi)部組件(時序庫),當(dāng)然,也不是必須的,時序庫除了 Prometheus,還可以使用 VictoriaMetrics、M3DB 等,各種 Exporter 采集器也可以繼續(xù)使用。
Nightingale 可以接入多個 Prometheus,可以允許用戶在頁面上配置告警規(guī)則、屏蔽規(guī)則、訂閱規(guī)則,在頁面上查看告警事件、做告警事件聚合統(tǒng)計(jì),配置告警自愈機(jī)制,管理監(jiān)控對象,配置監(jiān)控大盤等,就把 Nightingale 看做是 Prometheus 的一個 WEBUI 也是可以的,不過實(shí)際上,它遠(yuǎn)遠(yuǎn)不止是一個 WEBUI,用一下就會深有感觸。
聯(lián)系我們
- 我們的官網(wǎng)是 https://n9e.github.io/,相關(guān)文檔會首發(fā)于此。
- 您可以在github關(guān)注夜鶯:https://github.com/ccfos/nightingale ,歡迎您試用和參與社區(qū)。
- 我們的公眾號:夜鶯監(jiān)控,歡迎關(guān)注,夜鶯的很多教程也會發(fā)到這里
致謝和說明
- Open-Falcon 是小米運(yùn)維團(tuán)隊(duì)開源的企業(yè)級監(jiān)控解決方案,在國內(nèi)廣泛使用。
- Nightingale 采用 Apache-2.0 開源協(xié)議。
