概念
介紹
VictoriaMetrics,是一個快速高效、經濟并且可擴展的監控解決方案和時序數據庫
本文均用VM簡稱VictoriaMetric
作用
用于作為prometheus的長期儲存方案,代替prometheus存儲監控采集的數據
優點
- 遠程存儲:可作為單一或多個Prometheus的遠程存儲
- 安裝簡單:單節點架構一條命令就可以部署完畢
- Grafana兼容:VM可替換Grafana的Prometheus數據源(Grafana:一款用于prometheus的圖形界面)
- 低內存:更低的內存占用
- 高壓縮比:提供存儲數據高壓縮
- 高性能:查詢性能比Prometheus更快
缺點
- 圖形界面簡陋,功能少
- 告警功能需要單獨配置vmalert,而且vmalert只有api管理和查看,暫時沒用圖形界面
- 沒有類似Prometheus的WAL日志,突然故障可能會丟失部分數據
分類
分為單機版和集群版
- 單節點版:直接運行二進制文件即可啟動,簡單容易維護,但不支持告警
- 集群版:支持數據水平拆分,把功能拆分為vmstorage、 vminsert、vmselect,如果要替換Prometheus,還需要vmagent、vmalert
官網
https://victoriametrics.com?
術語
在時間序列(time-series)中的每一個點稱為一個樣本(sample),樣本(sample)由以下三部分
- 指標(metric):指標名和一組描述當前樣本特征的labelsets唯一標識
- 時間戳(timestamp):一個精確的時間戳,一般由采集時間決定(VM為秒,Prometheus為毫秒)
- 樣本值(value):當前樣本的值
關于target:
每一個監控目標稱為一個target,如:單個node-exporter、mysqld-exporter等等。
VM單節點版本
本文著重使用單節點方式
結構
服務名稱???????? | IP | PORT |
node- exporter???????? | 172.16.12.145???????? | 9100???????? |
prometheus???????? | 172.16.12.144 | 9090 |
VM | 8428???????? | |
Grafana | 3000 |
?
VM單節點版本有兩種使用方式,一種是作為prometheus的監控數據數據庫,另一種是直接代替prometheus自己工作?
prometheus部署
配置prometheus和node- exporter節點
配置node- exporter服務器
#將壓縮包文件傳入到/usr路徑下
tar -xvf node_exporter-1.8.0.linux-arm64.tar -C /usr
#更改文件夾名
mv node_exporter-1.8.0.linux-arm64 node_exporter
#進入文件夾
cd node_exporter
#啟動服務并輸入到日志文件中
nohup ./node_exporter & #開頭nohup為往日志文件nohup中輸入
配置prometheus服務器
為什么要部署prometheus
先部署好prometheus和監控節點后,才能安裝VM使其為prometheus工作或者代替
1.解壓安裝包
tar -xvf prometheus-2.51.2.linux-arm64.tar -C /usr
?2.更改文件夾名
mv prometheus-2.51.2.linux-arm64 prometheus
3.進入文件夾
cd prometheus
4.修改配置文件
vim prometheus.xml
修改為以下內容
global:scrape_interval:? ? ?15s
scrape_configs:- job_name: 'linux'static_configs:- targets: ['192.168.1.100:9100']- targets: ['192.168.1.101:9100']# 通過relabeling替換從__address__中提取IP信息,主要是為了后面驗證VM是否兼容relabelingrelabel_configs:?- source_labels:? ['__address__']regex: '(.*):(.*)'action: replacetarget_label: 'ip'replacement: '\${1}'
5.檢查配置文件格式
#必須在prometheus文件夾下運行
./promtool check config prometheus.yml
6.啟動prometheus服務并存入日志文件
nohup ./prometheus --config.file="prometheus.yml" --storage.tsdb.retention=30d --web.enable-lifecycle &
7.進入瀏覽器查看prometheus運行情況
http://172.16.12.144:9090/targets
Garfana部署
1.下載安裝
官網下載地址
https://grafana.com/grafana/download/9.2.3?edition=oss&pg=graf&platform=linux&plcm
t=deploy-box-1
ARM64 for Centos7?
sudo yum install -y https://dl.grafana.com/oss/release/grafana-9.2.3-1.armhfp.rpm
2.啟動服務
systemctl start grafana-server
3.瀏覽器訪問
http://172.16.12.144:3000
賬號密碼默認:admin/admin
4.添加界面
添加數據并填入http://172.16.12.144:9090
VM單節點作為遠程部署?
配置VM服務器
安裝在prometheus所在的服務器上
1.解壓安裝包
tar -xvf victoria-metrics-linux-arm64-v1.101.0.tar -C /usr
?2.更改文件夾名
mv victoria-metrics-linux-arm64-v1.101.0 victoria-metrics
3.進入文件夾
cd victoria-metrics
4.啟動服務
nohup ./victoria-metrics-prod -retentionPeriod=30d -storageDataPath=data &
5.修改prometheus的配置文件
global:scrape_interval:? ? ?15s
scrape_configs:- job_name: 'linux'static_configs:- targets: ['192.168.1.100:9100']- targets: ['192.168.1.101:9100']relabel_configs:? ?# 通過relabeling替換從__address__中提取IP信息- source_labels:? ['__address__']regex: '(.*):(.*)'action: replacetarget_label: 'ip'replacement: '\${1}'
remote_write:? ? # 存儲到遠程VM存儲(這里只是示例,所以Prometheus和VM在一臺機子上)- url: http://127.0.0.1:8428/api/v1/writequeue_config:? ? # 如果Prometheus抓取指標很大,可以加調整queue,但是會提高內存占用max_samples_per_send: 10000capacity: 20000max_shards: 30??
6.重啟prometheus服務
kill -HUP `pidof prometheus`
7.修改Grafana數據源
將http://172.16.12.144:9090端口修改為8428
正常顯示
?VM直接代替prometheus
1.將prometheus的配置文件復制到VM文件夾下
cp /usr/prometheus/prometheus.yml /usr/victoria-metrics/
2.編輯配置文件
vim /usr/victoria-metrics/prometheus.xml
可以直接使用prometheus的文件,有的版本可能需要注釋掉部分內容
# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
scrape_configs:- job_name: 'linux'static_configs:- targets: ['172.16.12.145:9100']- targets: ['172.16.12.146:9100']relabel_configs:- source_labels: ['__address__']regex: '(.*):(.*)'action: replacetarget_label: 'ip'replacement: '\${1}'
#以下內容有的版本需要注釋
#remote_write:
# - url: http://172.16.12.144:8428/api/v1/write
# queue_config:
# max_samples_per_send: 10000
# capacity: 20000
# max_shards: 30
?3.關閉prometheus
kill `pidof victoria-metrics-prod`
4.啟動VM服務
nohup ./victoria-metrics-prod -retentionPeriod=30d -storageDataPath=data -promscrape.config=prometheus.yml
此時查看VM日志文件nohup?
已經運行并顯示有兩個監控節點
進入Gragana界面正常運行,此時VM已經徹底代替prometheus?
VM存儲目錄
圖形界面
VM單節點版自帶一個web的圖形界面,叫vmui,目前還是Beta版本,功能比較簡單,只能針
對當前節點執行樣本數據查詢
vmui已經集成在VM單節點版的二進制文件里,直接訪問即可
http://172.16.12.144:8428
?