日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

監(jiān)控是運(yùn)維系統(tǒng)的基礎(chǔ),我們衡量一個公司/部門的運(yùn)維水平,看他們的監(jiān)控系統(tǒng)就可以了。一個完善的監(jiān)控系統(tǒng)可以提高應(yīng)用的可用性和可靠性,在提供更優(yōu)質(zhì)服務(wù)的前提下,降低運(yùn)維的投入和工作量,為用戶帶來更多的商業(yè)利益和客戶體驗(yàn)。下面就帶大家徹底搞懂監(jiān)控系統(tǒng),使用Prometheus +Grafana搭建完整的應(yīng)用監(jiān)控系統(tǒng)。

 

一、監(jiān)控系統(tǒng)簡介

1.1 什么是監(jiān)控系統(tǒng)?

監(jiān)控系統(tǒng)顧名思義就是監(jiān)控服務(wù)器、應(yīng)用系統(tǒng)以及其他第三方組件運(yùn)行狀態(tài)的系統(tǒng)。對于平臺系統(tǒng)而言,監(jiān)控系統(tǒng)就是我們的第三只眼,監(jiān)控系統(tǒng)會實(shí)時跟蹤應(yīng)用平臺的運(yùn)行狀態(tài),如果有應(yīng)用系統(tǒng)出現(xiàn)問題或是服務(wù)器內(nèi)存爆滿,我們通過監(jiān)控系統(tǒng)就可以快速定位問題所在,甚至可以設(shè)置預(yù)警,對一些將要出現(xiàn)的問題進(jìn)行提前預(yù)防處理,及時避免問題的發(fā)生。

 

1.2 監(jiān)控系統(tǒng)的作用

監(jiān)控是運(yùn)維系統(tǒng)的基礎(chǔ),我們衡量一個公司/部門的運(yùn)維水平,看他們的監(jiān)控系統(tǒng)就可以了。監(jiān)控系統(tǒng)的作用不言而喻,能幫我們快速定位問題,減少故障,容量規(guī)劃,性能優(yōu)化等。

1)定位故障:在發(fā)生故障時,我們可以通過查看監(jiān)控系統(tǒng)的各項(xiàng)指標(biāo)數(shù)據(jù),輔助故障分析和定位。

2)減少故障率:對于即將可能產(chǎn)生的故障能夠及時發(fā)出預(yù)警信息,做好提前預(yù)防處理。

3)容量規(guī)劃:為服務(wù)器、中間件以及應(yīng)用集群的容量規(guī)劃提供數(shù)據(jù)支撐。

4)性能調(diào)優(yōu):JVM垃圾回收次數(shù)、接口響應(yīng)時間、慢SQL等等都可以監(jiān)控優(yōu)化。

總而言之,一個完善的監(jiān)控系統(tǒng)可以提高應(yīng)用的可用性和可靠性,在提供更優(yōu)質(zhì)服務(wù)的前提下,降低運(yùn)維的投入和工作量,為用戶帶來更多的商業(yè)利益和客戶體驗(yàn)。

 

1.3 常見的監(jiān)控對象和指標(biāo)都有哪些?

應(yīng)用系統(tǒng)的監(jiān)控主要分為指標(biāo)監(jiān)控和日志監(jiān)控兩大部分:

  • 指標(biāo)監(jiān)控主要是對一定時間段內(nèi)性能指標(biāo)進(jìn)行測量,然后再通過時間序列的方式,進(jìn)行處理、存儲和告警。
  • 日志監(jiān)控則可以提供更詳細(xì)的上下文信息,通常通過 ELK 技術(shù)棧來進(jìn)行收集、索引和圖形化展示。

指標(biāo)監(jiān)控可以說是系統(tǒng)監(jiān)控最核心的功能。主要有服務(wù)器資源、應(yīng)用監(jiān)控、數(shù)據(jù)庫中間件等。

  • 服務(wù)器資源監(jiān)控:CPU使用率、內(nèi)存使用率、磁盤使用率、磁盤讀寫的吞吐量、網(wǎng)絡(luò)出入流量等等。
  • 數(shù)據(jù)庫監(jiān)控:TPS、QPS、數(shù)據(jù)庫連接數(shù)、慢SQL、InnoDB緩沖池命中率等。
  • redis監(jiān)控:內(nèi)存使用率、緩存命中率、key值總數(shù)、Redis響應(yīng)請求時間、客戶端連接數(shù)、持久性指標(biāo)等。
  • MQ消息監(jiān)控:連接數(shù)、隊(duì)列數(shù)、生產(chǎn)速率、消費(fèi)速率、消息堆積量等等。
  • 應(yīng)用監(jiān)控:包括HTTP請求,JVM,線程池等。

 

1.4 監(jiān)控系統(tǒng)的架構(gòu)

一個完整的監(jiān)控系統(tǒng)通常由數(shù)據(jù)采集、數(shù)據(jù)傳輸、數(shù)據(jù)存儲、數(shù)據(jù)展示、監(jiān)控告警等多個模塊組成。

  • 數(shù)據(jù)采集,采集的方式有很多種,包括日志埋點(diǎn)進(jìn)行采集,JMX標(biāo)準(zhǔn)接口輸出監(jiān)控指標(biāo),被監(jiān)控對象提供REST API進(jìn)行數(shù)據(jù)采集(如Hadoop、ES),系統(tǒng)命令行,統(tǒng)一的SDK進(jìn)行侵入式的埋點(diǎn)和上報等。
  • 數(shù)據(jù)傳輸,將采集的數(shù)據(jù)以TCP、UDP或者HTTP協(xié)議的形式上報給監(jiān)控系統(tǒng),有主動Push模式,也有被動Pull模式。
  • 數(shù)據(jù)存儲,有使用MySQL、Oracle等關(guān)系數(shù)據(jù)庫存儲的,也有使用時序數(shù)據(jù)庫RRDTool、OpentTSDB、InfluxDB存儲的,還有使用HBase存儲的。
  • 數(shù)據(jù)展示,數(shù)據(jù)指標(biāo)的圖形化展示。
  • 監(jiān)控告警,靈活的告警設(shè)置,以及支持郵件、短信、IM等多種通知通道。

 

二、當(dāng)前流行的監(jiān)控系統(tǒng)

目前大部分廠商都采用自研或是基于開源組件的方式搭建自己的監(jiān)控平臺。當(dāng)然也有很多非常流行的開源監(jiān)控系統(tǒng),其中,最流行的莫過于Zabbix和Prometheus。下面就對這兩個監(jiān)控系統(tǒng)進(jìn)行介紹,同時總結(jié)下各自的優(yōu)劣勢。

2.1 Zabbix

Zabbix 1998年誕生,核心組件采用C語言開發(fā),Web端采用php開發(fā)。它屬于老牌監(jiān)控系統(tǒng)中的優(yōu)秀代表,功能全面,使用廣泛,是最優(yōu)秀的監(jiān)控解決方案之一。

 

2.1.1 Zabbix的優(yōu)勢

  • 產(chǎn)品成熟:由于誕生時間長且使用廣泛,擁有豐富的文檔資料以及各種開源的數(shù)據(jù)采集插件,能覆蓋絕大部分監(jiān)控場景。
  • 采集方式豐富:支持Agent、SNMP、JMX、SSH等多種采集方式,以及主動和被動的數(shù)據(jù)傳輸方式。

2.1.2 Zabbix的劣勢

Zabbix需要在被監(jiān)控主機(jī)上安裝Agent,所有的數(shù)據(jù)都存在數(shù)據(jù)庫里,產(chǎn)生的數(shù)據(jù)很大,瓶頸主要在數(shù)據(jù)庫。

 

2.2 Prometheus

隨著微服務(wù)架構(gòu)和容器的興起,Zabbix對容器監(jiān)控顯得力不從心。為解決監(jiān)控容器的問題 Prometheus 應(yīng)運(yùn)而生。

Prometheus 是一套開源的系統(tǒng)監(jiān)控報警框架,采用Go語言開發(fā)。得益于google與k8s的強(qiáng)力支持,自帶云原生的光環(huán),天然能夠友好協(xié)作,使得Prometheus 在開源社區(qū)異常火爆。

 

2.2.1 Prometheus優(yōu)點(diǎn)

(1)提供多維度數(shù)據(jù)模型和靈活的查詢方式

通過將監(jiān)控指標(biāo)關(guān)聯(lián)多個 tag,來將監(jiān)控?cái)?shù)據(jù)進(jìn)行任意維度的組合,并且提供簡單的 PromQL 查詢方式,還提供 HTTP 查詢接口,可以很方便地結(jié)合 Grafana 等 GUI 組件展示數(shù)據(jù)。

(2)基于時序數(shù)據(jù)庫,支持服務(wù)器節(jié)點(diǎn)的本地存儲

通過 Prometheus 自帶的時序數(shù)據(jù)庫,可以完成每秒千萬級的數(shù)據(jù)存儲;不僅如此,在保存大量歷史數(shù)據(jù)的場景中,Prometheus 可以對接第三方時序數(shù)據(jù)庫和 OpenTSDB 等。

(3)定義了開放指標(biāo)數(shù)據(jù)標(biāo)準(zhǔn)

以基于 HTTP 的 Pull 方式采集時序數(shù)據(jù),只有實(shí)現(xiàn)了Prometheus監(jiān)控?cái)?shù)據(jù)才可以被 Prometheus 采集、匯總、并支持 Push 方式向中間網(wǎng)關(guān)推送時序數(shù)據(jù),能更加靈活地應(yīng)對多種監(jiān)控場景。

(4)支持通過靜態(tài)文件配置和動態(tài)發(fā)現(xiàn)機(jī)制發(fā)現(xiàn)監(jiān)控對象

自動完成數(shù)據(jù)采集。Prometheus 目前已經(jīng)支持 Kube.NETes、etcd、Consul 等多種服務(wù)發(fā)現(xiàn)機(jī)制。

(5)易于維護(hù)

可以通過二進(jìn)制文件直接啟動,并且提供了容器化部署鏡像。

(6)集群支持

支持?jǐn)?shù)據(jù)的分區(qū)采樣和集群部署,支持大規(guī)模集群監(jiān)控。

2.2.2 Prometheus缺點(diǎn)

  • Prometheus 是基于 Metric 的監(jiān)控,不適用于日志(Logs)、事件(Event)、調(diào)用鏈(Tracing)。
  • 由于Prometheus采用的是Pull模型拉取數(shù)據(jù),意味著所有被監(jiān)控的endpoint必須是可達(dá)的,需要合理規(guī)劃網(wǎng)絡(luò)的安全配置。
  • 指標(biāo)眾多,需進(jìn)行適當(dāng)裁剪。

 

2.3 綜合對比

下表通過多維度展現(xiàn)了各自監(jiān)控系統(tǒng)的優(yōu)缺點(diǎn):

 

綜合來看,Zabbix 成熟度更高,上手更快,但靈活性較差。而且,監(jiān)控?cái)?shù)據(jù)的復(fù)雜度增加后,Zabbix 做進(jìn)一步定制難度很高,即使做好了定制,也沒法利用之前收集到的數(shù)據(jù)了(關(guān)系型數(shù)據(jù)庫造成的問題)。

Prometheus 基本上是正相反,上手難度大一些,但由于定制靈活度高,數(shù)據(jù)也有更多的聚合可能,起步后的使用難度遠(yuǎn)小于 Zabbix。

如果監(jiān)控的是物理機(jī),用 Zabbix 沒毛病,Zabbix 在傳統(tǒng)監(jiān)控系統(tǒng)中,尤其是在服務(wù)器相關(guān)監(jiān)控方面,占據(jù)絕對優(yōu)勢;但如果是云環(huán)境的話,除非是 Zabbix 玩得非常溜,可以做各種定制,否則還是 Prometheus 吧,畢竟人家就是干這個的。

Prometheus 號稱下一代監(jiān)控系統(tǒng),已經(jīng)成為主導(dǎo)及容器監(jiān)控方面的標(biāo)配,并且在未來可見的時間內(nèi)被廣泛應(yīng)用。

 

三、使用Prometheus+grafana搭建監(jiān)控系統(tǒng)

前面,我們了解了一些監(jiān)控系統(tǒng)的區(qū)別和優(yōu)缺點(diǎn),下面我們以Prometheus為例,帶大家一步一步搭建監(jiān)控系統(tǒng)。

3.1 下載

Prometheus需要下載prometheus(Prometheus主服務(wù))、node_exporter(服務(wù)器監(jiān)控)、mysqld_exporter(Mysql數(shù)據(jù)庫監(jiān)控-可選)、pushgateway(數(shù)據(jù)網(wǎng)關(guān)-可選)、alertmanager(告警組件-可選)

下載地址:
https://prometheus.io/download/

Grafana為數(shù)據(jù)展示界面,下載地址:
https://grafana.com/grafana/download

 

3.2 架構(gòu)圖

 

 

3.3 安裝 Prometheus Server

Prometheus 的架構(gòu)設(shè)計(jì)中,Prometheus Server 主要負(fù)責(zé)數(shù)據(jù)的收集,存儲并且對外提供數(shù)據(jù)查詢支持。下面開始安裝Prometheus Server。

step1:首先,下載prometheus,并上傳到服務(wù)器

# 解壓到/usr/local/prometheus目錄下:
tar -zxvf prometheus-2.37.0.linux-amd64.tar.gz -C /usr/local/prometheus
# 修改目錄名:
cd /usr/local/prometheus
mv prometheus-2.37.0.linux-amd64 prometheus-2.37.0

setp2:啟動prometheus Server 服務(wù)。prometheus啟動非常簡單,只需要一個命令即可,進(jìn)入到
/usr/local/prometheus/prometheus-2.37.0后執(zhí)行如下命令:

#進(jìn)入prometheus目錄
cd /usr/local/prometheus/prometheus-2.37.0
#執(zhí)行啟動腳本
./prometheus --web.enable-admin-api --config.file=prometheus.yml

step3:驗(yàn)證prometheus是否啟動成功,prometheus默認(rèn)端口為:9090,我們在瀏覽器中輸入:
http://10.2.1.231:9090/graph,進(jìn)入prometheus數(shù)據(jù)展示頁面,說明prometheus啟動成功。

 

3.4 安裝 Node Exporter

實(shí)際的監(jiān)控樣本數(shù)據(jù)的由 Exporter 負(fù)責(zé)收集,如node_exporter 就是負(fù)責(zé)服務(wù)器的資源信息,同時提供了對外訪問的HTTP服務(wù)地址(通常是/metrics)給prometheus拉取監(jiān)控樣本數(shù)據(jù)。下面開始安裝node_exporter。

step1:首先,下載node_exporter,并上傳到服務(wù)器

# 解壓到/usr/local/prometheus目錄下:
tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local/prometheus
# 修改目錄名:
cd /usr/local/prometheus
mv node_exporter-1.3.1.linux-amd64 node_exporter-1.3.1

step2:啟動node_exporler,輸入如下命令啟動:

#node_exporter
cd /usr/local/prometheus/node_exporter-1.3.1
#執(zhí)行啟動命令,指定數(shù)據(jù)訪問的url
./node_exporter --web.listen-address 10.2.1.231:9527

step3:驗(yàn)證node_exporler是否啟動成功,我們在瀏覽器中輸入上面指定的地址:
http://10.2.1.231:9527/metrics,可以看到當(dāng)前 node_exporter 獲取到的當(dāng)前主機(jī)的所有監(jiān)控?cái)?shù)據(jù)。說明node_exporler啟動成功。

 

step4:最后,配置prometheus,將新增加的node配置到prometheus。

修改prometheus-2.37.0 文件夾下的prometheus.yml文件。增加新的node配置,具體配置如下:

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
      - targets: ["localhost:9090"]
      
    # 采集node exporter監(jiān)控?cái)?shù)據(jù)
  - job_name: 'node'
    static_configs:
      - targets: ['10.2.1.231:9527']

修改完prometheus.yml 文件后,重新啟動prometheus。再次訪問prometheus數(shù)據(jù)展示頁面,選擇status | target,可以看到新的node已經(jīng)添加進(jìn)來了。

 

在Graph 頁面,在查詢框中輸入: process_cpu_seconds_total

 

3.5 安裝grafana

前面已經(jīng)把prometheus和node exporter 安裝并集成成功。prometheus雖然有自帶的數(shù)據(jù)展示界面,但是不夠全面也不直觀。接下來集成grafana 完成數(shù)據(jù)展示。

下載地址:
https://grafana.com/grafana/download

step1:首先,下載Grafana,并上傳到服務(wù)器。

# 下載grafana
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.3.linux-amd64.tar.gz
# 解壓到
tar -zxvf grafana-enterprise-9.0.3.linux-amd64.tar.gz -C /usr/local/prometheus
# 修改目錄名:
cd /usr/local/prometheus
mv ngrafana-enterprise-9.0.3.linux-amd64 grafana-9.0.3

step2:啟動Grafana,輸入如下命令:

#grafana
cd /usr/local/prometheus/grafana-9.0.3/bin
#執(zhí)行啟動命令,指定數(shù)據(jù)訪問的url
./grafana-server --homepath /usr/local/prometheus/grafana-9.0.3 web

step3:驗(yàn)證是否安裝成功,Grafana默認(rèn)端口:3000。在瀏覽器中輸入:http://10.2.1.231:3000/ 輸入默認(rèn)賬號密碼:adminadmin。能正常進(jìn)入Grafana,說明Grafana安裝成功。

 

step4:配置prometheus數(shù)據(jù)源,點(diǎn)擊 設(shè)置 | Data Sources ,按照操作添加prometheus數(shù)據(jù)源。

 

 

點(diǎn)擊add data source,后選擇prometheus數(shù)據(jù)源。

 

 

輸入data source 的名字以及prometheus的地址:http://10.2.1.231:9090/ 后點(diǎn)擊Save&Test 即可。

 

step5:創(chuàng)建儀表盤 Dashboard

Grafana 支持手動創(chuàng)建儀表盤 Dashboard 和自動導(dǎo)入Dashboard模板兩種方式,手動一個個添加Dashboard 比較繁瑣,Grafana 社區(qū)鼓勵用戶分享 Dashboard,通過
https://grafana.com/dashboards 網(wǎng)站,可以找到大量可直接使用的Dashboard模板。

Grafana 中所有的Dashboard 通過 JSON 進(jìn)行共享,下載并且導(dǎo)入這些 JSON 文件,就可以直接使用這些已經(jīng)定義好的 Dashboard。

 

選擇自己喜歡的模板后,點(diǎn)擊 Download JSON下載對應(yīng)的json 文件。然后在Grafana系統(tǒng)中導(dǎo)入相應(yīng)的json即可。

接下來回到Grafana頁面,點(diǎn)擊DashBoards|Import

 

選擇之前下載好的json文件,導(dǎo)入即可。

 

點(diǎn)擊Import后,我們就可以看到詳細(xì)的服務(wù)器資源監(jiān)控?cái)?shù)據(jù)。如下圖所示:

 

最后

以上,我們就把監(jiān)控系統(tǒng)介紹完了,并使用Prometheus + Grafana 構(gòu)建了一個初步的監(jiān)控系統(tǒng)。

監(jiān)控是運(yùn)維系統(tǒng)的基礎(chǔ),在DevOps大行其道的今天,運(yùn)維監(jiān)控不再是運(yùn)維工程師的工作,而是程序員和架構(gòu)師的必備技能。希望大家能夠熟練掌握。

分享到:
標(biāo)簽:監(jiān)控系統(tǒng)
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定