最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

09 生產(chǎn)經(jīng)驗:如何為生產(chǎn)環(huán)境中的數(shù)據(jù)庫部署監(jiān)控系統(tǒng)?

2023-06-13 17:47 作者:儒猿課堂  | 我要投稿

生產(chǎn)經(jīng)驗:如何為生產(chǎn)環(huán)境中的數(shù)據(jù)庫部署監(jiān)控系統(tǒng)?



1、生產(chǎn)環(huán)境的數(shù)據(jù)庫可不能裸奔??!


之前我們已經(jīng)給大家講解完了數(shù)據(jù)庫的壓測相關(guān)的知識,想必大家只要利用我們講解的知識,在自己的公司里,哪怕DBA團隊、QA團隊都沒法給你提供專業(yè)的數(shù)據(jù)庫壓測技術(shù)支持,但是大家手上拿到一個數(shù)據(jù)庫之后,其實自己也可以通過各種工具和命令,非常好的完成一臺機器上的數(shù)據(jù)庫的壓測了。


你應(yīng)該可以心里非常有數(shù),一臺什么樣配置的機器,部署了一個數(shù)據(jù)庫之后,利用sysbench構(gòu)造了多少個表和數(shù)據(jù)量,然后模擬了多少個線程壓測的時候,機器的各項硬件負載在可以接受的范圍內(nèi)時,數(shù)據(jù)庫的QPS和TPS可以壓測到多高。


這個時候你大致就明白你的數(shù)據(jù)庫在高峰時期最多可以讓他去承受多少Q(mào)PS和TPS了。


但是搞定壓測之后,難道大家就想直接開始開發(fā)你的Java系統(tǒng)?直接讓你的系統(tǒng)連接到MySQL上去執(zhí)行各種CRUD的SQL語句?然后接著就開始拼命寫各種Java代碼和SQL語句,寫好之后就找QA進行測試,然后部署到線上生產(chǎn)環(huán)境,接著就萬事大吉了,不管數(shù)據(jù)庫了?


這種做法可能目前很多公司和團隊都是這樣做的,但是如果你僅僅是這么搞是絕對不行的。因為實際上我們需要對線上系統(tǒng)進行完善的監(jiān)控,不光是對你開發(fā)的Java系統(tǒng)進行監(jiān)控,還得對你的數(shù)據(jù)庫進行監(jiān)控,包括對CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤IO、慢查詢、QPS、TPS的監(jiān)控。


因為如果你不對你的數(shù)據(jù)庫做任何監(jiān)控,那么有可能你的數(shù)據(jù)庫CPU負載已經(jīng)很高了,或者磁盤IO已經(jīng)達到極限了,你都不知道,結(jié)果你還是一如既往的運行你的Java系統(tǒng),有一天可能你的數(shù)據(jù)庫突然掛了你都沒反應(yīng)過來!


所以今天我們就帶著大家來一步步搭建一下生產(chǎn)環(huán)境數(shù)據(jù)庫的可視化監(jiān)控平臺,我們會基于Prometheus+Grafana來搭建。


當然在公司里,如果要針對數(shù)據(jù)庫搭建一個統(tǒng)一的可視化監(jiān)控平臺,這個活兒往往是DBA團隊負責的,但是不管如何,我們這里也要對這個數(shù)據(jù)庫可視化監(jiān)控的技術(shù)有一定的了解。


2、簡單介紹一下Prometheus和Grafana是什么


我們先給大家簡單介紹一下Prometheus和Grafana兩個系統(tǒng)分別是什么。


簡單來說,Prometheus其實就是一個監(jiān)控數(shù)據(jù)采集和存儲系統(tǒng),他可以利用監(jiān)控數(shù)據(jù)采集組件(比如mysql_exporter)從你指定的MySQL數(shù)據(jù)庫中采集他需要的監(jiān)控數(shù)據(jù),然后他自己有一個時序數(shù)據(jù)庫,他會把采集到的監(jiān)控數(shù)據(jù)放入自己的時序數(shù)據(jù)庫中,其實本質(zhì)就是存儲在磁盤文件里。


我們采集到了MySQL的監(jiān)控數(shù)據(jù)還不夠,現(xiàn)在我們還要去看這些數(shù)據(jù)組成的一些報表,所以此時就需要使用Grafana了,Grafana就是一個可視化的監(jiān)控數(shù)據(jù)展示系統(tǒng),他可以把Prometheus采集到的大量的MySQL監(jiān)控數(shù)據(jù)展示成各種精美的報表,讓我們可以直觀的看到MySQL的監(jiān)控情況。


其實不光是對數(shù)據(jù)庫監(jiān)控可以采用Prometheus+Grafana的組合,對你開發(fā)出來的各種Java系統(tǒng)、中間件系統(tǒng),都可以使用這套組合去進行可視化的監(jiān)控,無非就是讓Prometheus去采集你的監(jiān)控數(shù)據(jù),然后用Grafana展示成報表而已。


3、安裝和啟動Prometheus


之前給大家說過,讓大家自己準備一個linux機器,如果你是windows筆記本電腦,可以自己裝一個linux虛擬機。我們就基于一臺linux機器來部署Prometheus和Grafana,至于MySQL的安裝,這個非常的簡單,大家在網(wǎng)上很容易搜索到。


首先大家需要下載3個壓縮包,在下面鏈接:


https://prometheus.io/download/


大家可以下載到下面兩個壓縮包,這里prometheus就是用來部署監(jiān)控系統(tǒng)自己的,然后node_exporter是用來采集MySQL數(shù)據(jù)庫所在機器的CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤之類的監(jiān)控數(shù)據(jù)的:


prometheus-2.1.0.linux-amd64.tar.gz ? ?

node_exporter-0.15.2.linux-amd64.tar.gz ?


接著大家可以通過下面的鏈接下載第三個壓縮包:mysqld_exporter-0.10.0.linux-amd64.tar.gz,這個mysqld_exporter就是用來采集MySQL數(shù)據(jù)庫自己的一些監(jiān)控數(shù)據(jù)的,比如SQL性能、連接數(shù)量之類的:


https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz


接著需要解壓縮上面的幾個包,參照我如下的命令來做就可以了:


mkdir /data

mkdir /root


tar xvf prometheus-2.1.0.linux-amd64.tar -C /data

tar xf node_exporter-0.15.2.linux-amd64.tar -C /root

tar xf mysqld_exporter-0.10.0.linux-amd64.tar.gz -C /root


cd /data

mv prometheus-2.1.0.linux-amd64/ prometheus

cd /prometheus


vi prometheus.yml,接下來修改prometheus的配置文件,其實主要是在scrape_configs下面加入一大段自定義的配置,因為他需要去采集MySQL數(shù)據(jù)庫本身和MySQL所在機器的監(jiān)控數(shù)據(jù):


scrape_configs:

?- file_sd_configs:

? ?-files:

? ? ?- host.yml

? ?job_name: Host

? ?metrics_path: /metrics

? ?relabel_configs:

? ?- source_labels: [__address__]

? ? ?regex: (.*)

? ? ?target_label: instance

? ? ?replacement: $1

? ?- source_labels: [__address__]

? ? ?regex: (.*)

? ? ?target_label: __address__

? ? ?replacement: $1:9100

?- file_sd_configs:

? ?- files:

? ? ?- mysql.yml

? ?job_name: MySQL

? ?metrics_path: /metrics

? ?relabel_configs:

? ?- source_labels: [__address__]

? ? ?regex: (.*)

? ? ?target_label: instance

? ? ?replacement: $1

? ?- source_labels: [__address__]

? ? ?regex: (.*)

? ? ?target_label: __address__

? ? ?replacement: $1:9104


?- job_name: prometheus

? ?static_configs:

? ?- targets:

? ? ?- localhost: 9090


上面的配置文件寫好之后,就可以啟動Prometheus了,不過大家仔細看幾遍上面的配置信息,因為我在寫文章的時候不太方便,都是直接手敲出來的,可能會有少數(shù)配置錯誤,如果大家有發(fā)現(xiàn)配置文件錯誤的地方,及時在后臺評論區(qū)告訴我。


接著必須要在/data/prometheus目錄中,去執(zhí)行啟動命令:


/data/prometheus/prometheus --storage.tsdb.retention=30d &,這里的30d是說你的監(jiān)控數(shù)據(jù)保留30天的。啟動之后,就可以在瀏覽器中訪問9090端口號去查看prometheus的主頁了。


因為我們部署和安裝Prometheus和Grafana的過程比較多,所以拆分為兩篇文章,今天同步更新的第二篇文章里,會把剩余的Grafana的安裝部署過程,以及監(jiān)控配置和采集的過程都講完。

End

專欄版權(quán)歸公眾號儒猿技術(shù)窩所有

未經(jīng)許可不得傳播,如有侵權(quán)將追究法律責任

09 生產(chǎn)經(jīng)驗:如何為生產(chǎn)環(huán)境中的數(shù)據(jù)庫部署監(jiān)控系統(tǒng)?的評論 (共 條)

分享到微博請遵守國家法律
耒阳市| 冷水江市| 弥渡县| 泰兴市| 秦皇岛市| 襄垣县| 平罗县| 丹东市| 兰州市| 朔州市| 安阳县| 天全县| 广元市| 新干县| 武胜县| 板桥市| 海伦市| 武宣县| 南投县| 阿尔山市| 治多县| 本溪市| 邵阳县| 马尔康县| 深水埗区| 辉南县| 湟源县| 深泽县| 泗水县| 佳木斯市| 西青区| 万安县| 万年县| 新密市| 泰州市| 嘉黎县| 长寿区| 清丰县| 辉南县| 临邑县| 沈阳市|