1 Prometheus安裝配置
1.1 下載
在 Prometheus 官網(wǎng) https://prometheus.io/download/#prometheus 獲取適用于 Linux 的 Prometheus 安裝包。
1.2 安裝
系統(tǒng)環(huán)境如下:
[root@centos ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@centos ~]# uname -r
3.10.0-957.el7.x86_64
為了安全,不用 root 用戶啟動相關(guān)服務(wù)越除;自建 prometheus 用戶啟動服務(wù)
groupadd prometheus
useradd -g prometheus -M -s /sbin/nologin prometheus
將安裝包 prometheus-2.47.1.linux-amd64.tar.gz
上傳至服務(wù)器 /opt/src
目錄下
解壓壓縮包
[root@centos ~]# cd /opt/src
[root@centos src]# tar -zxvf prometheus-2.47.1.linux-amd64.tar.gz -C /opt
[root@centos src]# cd /opt
[root@centos opt]# mv prometheus-2.47.1.linux-amd64/ prometheus
[root@centos opt]# mkdir -pv /opt/prometheus/data
[root@centos opt]# chown -R prometheus.prometheus /opt/prometheus
切換到解壓縮后的目錄阅畴,執(zhí)行 prometheus --version
命令查看是否正常
[root@centos ~]# cd /opt/prometheus/
[root@centos prometheus]# ./prometheus --version
prometheus, version 2.47.1 (branch: HEAD, revision: c4d1a8beff37cc004f1dc4ab9d2e73193f51aaeb)
build user: root@4829330363be
build date: 20231004-10:31:16
go version: go1.21.1
platform: linux/amd64
tags: netgo,builtinassets,stringlabels
創(chuàng)建Systemd
服務(wù)啟動prometheus
[root@centos opt]# vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
ExecStart=/opt/prometheus/prometheus \
--config.file=/opt/prometheus/prometheus.yml \
--storage.tsdb.path=/opt/prometheus/data
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
在service文件里面昆汹,我們定義了啟動的命令唇辨,定義了數(shù)據(jù)存儲在
/opt/prometheus/data
路徑下秧均。
啟停命令
systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus
systemctl status prometheus
systemctl reload prometheus
1.3 配置
Prometheus 通過抓取監(jiān)控目標(biāo)上的 HTTP 端點(diǎn)來收集指標(biāo)驯妄,而且 Prometheus 本身也暴露 metrics 指標(biāo)接口荷并,所以它也可以抓取并監(jiān)控其自身的運(yùn)行狀況。
1.3.1 收集Prometheus自身數(shù)據(jù)配置
配置文件 /opt/prometheus-2.47.1.linux-amd64\prometheus.yml
global:
scrape_interval: 5s # 抓取頻率
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
上面配置了 Prometheus 每 5s
從自身抓取指標(biāo)青扔。global
區(qū)域用于配置一些全局配置和默認(rèn)值源织,scrape_configs
部分是用來告訴 Prometheus 要抓取哪些目標(biāo)。
在實(shí)際情況下微猖,抓取頻率間隔通常在 10 到 60 秒之間谈息。
1.3.2 安裝配置 node_exporter
為監(jiān)控服務(wù)器 CPU , 內(nèi)存 , 磁盤 , I/O 等信息,需要在被監(jiān)控機(jī)器上安裝 node_exporter 服務(wù)凛剥。
首先我們需要從 node_exporter下載頁 下載我們需要安裝的版本侠仇。
node_exporter-1.6.1.linux-amd64.tar.gz
解壓并安裝 node_exporter 服務(wù):
[root@centos ~]# cd /opt/src
[root@centos src]# tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz -C /opt
[root@centos src]# cd /opt/
[root@centos opt]# mv node_exporter-1.6.1.linux-amd64/ node_exporter
[root@centos opt]# chown -R prometheus.prometheus /opt/node_exporter
創(chuàng)建Systemd
服務(wù)啟動node_exporter
[root@centos opt]# vim /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/opt/node_exporter/node_exporter
[Install]
WantedBy=default.target
啟動 node_exporter 服務(wù):
systemctl daemon-reload
systemctl enable node_exporter
systemctl start node_exporter
systemctl status node_exporter
修改 prometheus 的配置文件/srv/prometheus/prometheus.yml
,增加如下內(nèi)容:
scrape_configs:
...
- job_name: 'node'
scrape_interval: 10s
static_configs:
- targets: ['localhost:9100','192.168.1.100:9100']
重啟 Prometheus 服務(wù):
systemctl reload prometheus
1.4 查看監(jiān)控目標(biāo)
當(dāng)啟動 Prometheus 后犁珠,我們可以檢查下它是否正確的抓取了配置的目標(biāo)逻炊,可以在瀏覽器中訪問 http://<host-ip>:9090/targets
來查看所有的抓取目標(biāo)列表
如果我們配置的抓取本身的 prometheus 這個任務(wù)顯示的綠色的
UP
狀態(tài),證明 Prometheus 已經(jīng)正常抓取自身的監(jiān)控指標(biāo)了犁享。
如果在抓取過程中出現(xiàn)任何問題(DNS
解析失敗余素、連接超時等等錯誤),抓取目標(biāo)都會顯示為 DOWN
炊昆,同時還有一條錯誤消息桨吊,提供有關(guān)抓取失敗的相關(guān)信息,可以幫助我們快速發(fā)現(xiàn)錯誤配置或不健康的目標(biāo)凤巨。
2 Grafana安裝配置
Grafana
用來展示 Prometheus 的監(jiān)控指標(biāo)
2.1 下載
到Grafana的官網(wǎng)進(jìn)行下載
grafana-enterprise-10.2.0.linux-amd64.tar.gz
2.2 安裝
[root@centos opt]# cd /opt/src/
[root@centos src]# tar -zxvf grafana-enterprise-10.2.0.linux-amd64.tar.gz -C /opt
[root@centos src]# cd /opt/
[root@centos opt]# mv grafana-10.2.0/ grafana
[root@centos opt]# mkdir -pv /data/grafana/data
[root@centos opt]# mkdir -pv /data/grafana/log
[root@centos opt]# mkdir -pv /data/grafana/plugins
[root@centos opt]# mkdir -pv /data/grafana/conf/provisioning
[root@centos opt]# chown -R prometheus.prometheus /opt/grafana
[root@centos opt]# chown -R prometheus.prometheus /data/grafana
[root@centos opt]# chmod 777 /data/grafana/*
2.3 配置
修改 /opt/grafana/conf/defaults.ini
文件视乐,配置為上面新建的數(shù)據(jù)目錄。
data = /data/grafana/data
logs = /data/grafana/log
plugins = /data/grafana/plugins
provisioning = /data/grafana/conf/provisioning
2.4 把 grafana-server 添加到 systemd
新增 grafana-server.service
文件敢茁,使用systemd來管理grafana服務(wù)
vim /etc/systemd/system/grafana-server.service
[Unit]
Description=Grafana
After=network.target
[Service]
User=prometheus
Group=prometheus
Type=notify
ExecStart=/opt/grafana/bin/grafana-server \
--config=/opt/grafana/conf/defaults.ini \
--homepath=/opt/grafana
Restart=on-failure
[Install]
WantedBy=multi-user.target
啟停并設(shè)置開機(jī)啟動命令
#重載配置:
systemctl daemon-reload
#設(shè)置開機(jī)啟動
systemctl enable grafana-server
#啟動服務(wù)
systemctl start grafana-server
#關(guān)閉服務(wù)
systemctl stop grafana-server
#查看服務(wù)狀態(tài)
systemctl status grafana-server
2.5 打開 Grafana 的 web 頁面
在瀏覽器中訪問 http://<host-ip>:3000
默認(rèn)的賬號密碼 admin/admin
2.6 添加數(shù)據(jù)源
2.7 導(dǎo)入Grafana模板佑淀,數(shù)據(jù)展示
如要使用其他的模板,請到grafana的官網(wǎng)去查找 https://grafana.com/grafana/dashboards/