大家好,我是方木
Prometheus是由SoundCloud開發(fā)的開源監(jiān)控報(bào)警系統(tǒng)和時(shí)序列數(shù)據(jù)庫(TSDB)。Prometheus使用Go語言開發(fā),是google BorgMon監(jiān)控系統(tǒng)的開源版本,整套系統(tǒng)由監(jiān)控服務(wù)、告警服務(wù)、時(shí)序數(shù)據(jù)庫等幾個(gè)部分,及周邊生態(tài)的各種指標(biāo)收集器(Exporter)組成,是在當(dāng)下主流的云原生監(jiān)控告警系統(tǒng)。
Grafana是用于可視化大型測量數(shù)據(jù)的開源程序,它提供了強(qiáng)大和優(yōu)雅的方式去創(chuàng)建、共享、瀏覽數(shù)據(jù)。Dashboard中顯示了你不同metric數(shù)據(jù)源中的數(shù)據(jù)。
今天,我們就來看下怎么從零將Prometheus結(jié)合Grafana部署起來
一、部署prometheus監(jiān)控服務(wù)器:
- 安裝監(jiān)控服務(wù)器
- 修改配置文件
- 編寫service文件,管理服務(wù)
- 查看監(jiān)控?cái)?shù)據(jù)
1、環(huán)境準(zhǔn)備:
實(shí)驗(yàn)需要2臺(tái)虛擬機(jī),主機(jī)信息下表所示:所有主機(jī)系統(tǒng)均為centos7,需要提前配置IP、主機(jī)名、系統(tǒng)YUM源;(網(wǎng)卡名稱僅供參考,不能照抄)
實(shí)驗(yàn)拓?fù)淙缦聢D所示:
2、安裝步驟
步驟如下:
步驟一:安裝監(jiān)控軟件(192.168.4.10主機(jī)操作)
1)安裝軟件:
tar -xf prometheus-2.17.2.linux-386.tar.gz
ls
mv prometheus-2.17.2.linux-386 /usr/local/prometheus
ls /usr/local/prometheus/
2)修改prometheus配置文件,修改最后一行,將IP地址改為本機(jī)IP
vim /usr/local/prometheus/prometheus.yml
static_configs:
- targets: ['192.168.4.10:9090']
檢查配置配置文件是否有語法錯(cuò)誤
/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
3)編寫服務(wù)service文件,使用systemd管理服務(wù)
vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
[Install]
WantedBy=multi-user.target
設(shè)置服務(wù)器開機(jī)自啟動(dòng)服務(wù),并立刻啟動(dòng)該服務(wù)
systemctl enable prometheus.service --now
4)設(shè)置防火墻、SELinux(如果已經(jīng)關(guān)閉則可以忽略此步驟)
firewall-cmd --set-default-zone=trusted
setenforce 0
sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
步驟二:查看監(jiān)控控制臺(tái)
1)查看監(jiān)控主機(jī)、監(jiān)控?cái)?shù)據(jù)。
使用瀏覽器firefox或者google-chrome訪問http://192.168.4.10:9090。查看監(jiān)控主機(jī),點(diǎn)擊"Status" -- "Targets" 查看主機(jī),效果如圖所示:
查看具體監(jiān)控?cái)?shù)據(jù),點(diǎn)擊"Graph",選擇監(jiān)控?cái)?shù)據(jù),如go_memstats_alloc_bytes,點(diǎn)擊《Execute》效果如圖所示:
查看監(jiān)控?cái)?shù)據(jù)對(duì)應(yīng)的監(jiān)控圖形,效果如圖所示:
二、配置Prometheus被監(jiān)控端主機(jī)
- 安裝被監(jiān)控端軟件
- 編寫service文件
- 修改監(jiān)控服務(wù)器配置文件
- 查看監(jiān)控?cái)?shù)據(jù)
步驟如下:
步驟一:部署被控制端export
1)安裝軟件(192.168.4.11主機(jī)操作)
tar -xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
ls
mv node_exporter-1.0.0-rc.0.linux-amd64 /usr/local/node_exporter
ls /usr/local/node_exporter
2)編寫服務(wù)service文件(192.168.4.11主機(jī)操作)
vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
systemctl enable node_exporter –now
3)設(shè)置防火墻、SELinux(如果已經(jīng)關(guān)閉則可以忽略此步驟)
firewall-cmd --set-default-zone=trusted
setenforce 0
sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
4)修改監(jiān)控服務(wù)器配置文件(192.168.4.10主機(jī)操作)。
參考配置文件最后的模板,在文件末尾添加3行新內(nèi)容,具體內(nèi)容如下:
vim /usr/local/prometheus/prometheus.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['192.168.4.10:9090']
- job_name: 'node1' #監(jiān)控任務(wù)取任意名稱
static_configs:
- targets: ['192.168.4.11:9100'] #被監(jiān)控端主機(jī)和端口
systemctl restart prometheus.service
5)查看監(jiān)控主機(jī)、監(jiān)控?cái)?shù)據(jù)
使用瀏覽器訪問http://192.168.4.10:9090。
查看監(jiān)控主機(jī)列表,如圖所示:
查看主機(jī)CPU監(jiān)控?cái)?shù)據(jù),如圖所示:
三、grafana可視化監(jiān)控?cái)?shù)據(jù),配置grafana實(shí)現(xiàn)數(shù)據(jù)可視化效果
- 安裝Grafana
- 修改grafana配置
- 導(dǎo)入可視化模板
- 查看監(jiān)控圖表
步驟如下:
步驟一:安裝部署grafana(192.168.4.10主機(jī)操作)
1)安裝軟件:
cd prometheus_soft/
yum -y install grafana-6.7.3-1.x86_64.rpm
設(shè)置grafana服務(wù)為開機(jī)自啟動(dòng)服務(wù),并立刻啟動(dòng)該服務(wù):
systemctl enable grafana-server.service --now
提示:grafana默認(rèn)啟動(dòng)的是3000端口。
2)重置登錄密碼
默認(rèn)用戶名和密碼都是:admin。
重置密碼效果如圖所示:
附加知識(shí):
有些瀏覽器問題,可能無法重置密碼,如果無法重置密碼,則可以設(shè)置grafana允許匿名登錄,具體操作如下(非必要,不要執(zhí)行如下操作):
vim /etc/grafana/grafana.ini
[auth.anonymous]
enabled = true
org_role = Admin
systemctl restart grafana-server.service
步驟二:配置Grafana
瀏覽器訪問Grafana控制臺(tái),http://192.168.4.10:3000
1)添加數(shù)據(jù)源
Grafana可以將數(shù)據(jù)圖形化,那么數(shù)據(jù)從哪里來呢?點(diǎn)擊"Add data source",選擇從Prometheus獲取數(shù)據(jù)。
填寫Prometheus基本信息,效果如圖所示:
2)導(dǎo)入可視化模板
使用不同的可視化模板就可以將不同的數(shù)據(jù)進(jìn)行圖形化展示,下面導(dǎo)入prometheus圖形化模板,效果如下面截圖所示,選擇 "Prometheus 2.0 Stats"。
查看監(jiān)控效果如圖所示:
步驟二:查看被監(jiān)控主機(jī)的系統(tǒng)信息
1)導(dǎo)入主機(jī)監(jiān)控的可視化模板(node_exporter模板)
模板文件在在第二階段素材prometheus_soft.tar.gz中有提供。添加效果如下圖所示:
2)選擇數(shù)據(jù)源
導(dǎo)入監(jiān)控主機(jī)的可視化模板后,我們就可以查看主機(jī)的監(jiān)控圖形了,但是這個(gè)圖形的數(shù)據(jù)從哪里獲取呢,需要設(shè)置prometheus為數(shù)據(jù)源,效果如圖所示。
返回Grafana首頁,查看監(jiān)控圖形,效果如圖所示。
四、監(jiān)控?cái)?shù)據(jù)庫
使用prometheus監(jiān)控MariaDB數(shù)據(jù)庫:
- 安裝數(shù)據(jù)庫
- 安裝數(shù)據(jù)庫exporter
- 配置數(shù)據(jù)庫賬戶和密碼
- 導(dǎo)入監(jiān)控模板
步驟如下:
步驟一:安裝MariaDB(被監(jiān)控主機(jī)192.168.4.11操作)
1)安裝軟件,啟動(dòng)服務(wù)
yum -y install mariadb-server
systemctl enable mariadb --now
2)創(chuàng)建數(shù)據(jù)庫賬戶,配置密碼
監(jiān)控?cái)?shù)據(jù)庫,需要?jiǎng)?chuàng)建一個(gè)對(duì)數(shù)據(jù)庫有權(quán)限的賬戶并配置密碼。
MySQL
> grant all on *.* to 'jerry'@'127.0.0.1' identified by '123';
> exit
備注:創(chuàng)建用戶jerry,該用戶可以從本機(jī)127.0.0.1登錄服務(wù)器,該用戶的密碼為123。
步驟二:安裝配置導(dǎo)出器(exporter)
1)安裝mysqld_exporter導(dǎo)出器(被監(jiān)控主機(jī)192.168.4.11操作)
tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter
vim /usr/local/mysqld_exporter/.my.cnf
[client]
host=127.0.0.1
port=3306
user=jerry
password=123
備注:創(chuàng)建數(shù)據(jù)庫配置文件.my.cnf,到時(shí)mysqld_exporter自動(dòng)讀取配置文件,使用配置文件用的賬戶和密碼信息訪問數(shù)據(jù)庫,獲取數(shù)據(jù)庫監(jiān)控信息。
2)編寫服務(wù)service文件,默認(rèn)端口為9104(被監(jiān)控主機(jī)192.168.4.11操作)
vim /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter
--config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
[Install]
WantedBy=multi-user.target
systemctl enable mysqld_exporter --now
3)修改監(jiān)控服務(wù)器配置文件(192.168.4.10主機(jī)操作)。
參考原文的配置模板,最文件最后手動(dòng)添加如下3行內(nèi)容,修改后重啟服務(wù)
vim /usr/local/prometheus/prometheus.yml
scrape_configs:
… …
- job_name: 'mysql' #監(jiān)控任務(wù)的名稱
static_configs:
- targets: ['192.168.4.11:9104'] #被監(jiān)控主機(jī)IP和端口
systemctl restart prometheus.service
步驟三:配置Grafana可視化
1)查看監(jiān)控主機(jī)(瀏覽器訪問http://192.168.4.10:9090)。
查看prometheus是否已經(jīng)識(shí)別到MariaDB數(shù)據(jù)庫主機(jī),效果如圖所示:
2)訪問Grafana導(dǎo)入數(shù)據(jù)庫可視化模板(瀏覽器訪問http://192.168.4.10:3000)。
導(dǎo)入數(shù)據(jù)庫可視化模板,效果如圖所示:
設(shè)置數(shù)據(jù)源,數(shù)據(jù)來源于Prometheus,效果如圖所示:
如果離開監(jiān)控圖形時(shí)提示保存監(jiān)控圖形,可以任意輸入名稱即可,如圖-20所示:
來源:
https://www.jianshu.com/p/35e23e78b60d
我的微信公眾號(hào):JAVA架構(gòu)師進(jìn)階編程
專注分享Java技術(shù)干貨,包括JVM、SpringBoot、SpringCloud、數(shù)據(jù)庫、架構(gòu)設(shè)計(jì),還有我整理的上百份面試題庫,持續(xù)更新中!期待你的關(guān)注!