概念
介绍
VictoriaMetrics,是一个快速高效、经济并且可扩展的监控解决方案和时序数据库
本文均用VM简称VictoriaMetric
作用
用于作为prometheus的长期储存方案,代替prometheus存储监控采集的数据
优点
- 远程存储:可作为单一或多个Prometheus的远程存储
- 安装简单:单节点架构一条命令就可以部署完毕
- Grafana兼容:VM可替换Grafana的Prometheus数据源(Grafana:一款用于prometheus的图形界面)
- 低内存:更低的内存占用
- 高压缩比:提供存储数据高压缩
- 高性能:查询性能比Prometheus更快
缺点
- 图形界面简陋,功能少
- 告警功能需要单独配置vmalert,而且vmalert只有api管理和查看,暂时没用图形界面
- 没有类似Prometheus的WAL日志,突然故障可能会丢失部分数据
分类
分为单机版和集群版
- 单节点版:直接运行二进制文件即可启动,简单容易维护,但不支持告警
- 集群版:支持数据水平拆分,把功能拆分为vmstorage、 vminsert、vmselect,如果要替换Prometheus,还需要vmagent、vmalert
官网
术语
在时间序列(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是否兼容relabeling
relabel_configs:
- source_labels: ['__address__']
regex: '(.*):(.*)'
action: replace
target_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.浏览器访问
账号密码默认: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: replace
target_label: 'ip'
replacement: '\${1}'
remote_write: # 存储到远程VM存储(这里只是示例,所以Prometheus和VM在一台机子上)
- url: http://127.0.0.1:8428/api/v1/write
queue_config: # 如果Prometheus抓取指标很大,可以加调整queue,但是会提高内存占用
max_samples_per_send: 10000
capacity: 20000
max_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: replace
target_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单节点版的二进制文件里,直接访问即可