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