VictoriaMetrics安装配置-VictoriaMetrics数据库安装配置_升级迁移详细过程
1. VictoriaMetrics概述与环境规划
VictoriaMetrics是一款高性能的开源时序数据库和监控解决方案,兼容Prometheus协议。VictoriaMetrics具有更高的压缩率和查询性能,特别适合大规模监控场景。更多学习教程www.fgedu.net.cn
1.1 VictoriaMetrics版本说明
VictoriaMetrics目前主要版本为v1.93,本教程以VictoriaMetrics v1.93为例进行详细讲解。
$ victoria-metrics-prod –version
victoria-metrics-20240401-123456-tags-v1.93.0-0-gabc123
# 查看构建信息
$ curl -s http://localhost:8428/api/v1/status/buildinfo | jq
{
“version”: “v1.93.0”,
“goVersion”: “go1.21.0”,
“goOS”: “linux”,
“goArch”: “amd64”
}
1.2 环境规划
本次安装环境规划如下:
IP地址:192.168.1.51
HTTP端口:8428
数据目录:/data/victoria-metrics
配置目录:/etc/victoria-metrics
日志目录:/var/log/victoria-metrics
存储规划:
数据保留期:30天
写入速率:100万点/秒
1.3 VictoriaMetrics核心特性
1. 高性能:比Prometheus快10倍以上
2. 高压缩:数据压缩率比Prometheus高7倍
3. 兼容Prometheus:完全兼容Prometheus API
4. 低内存:内存占用低
5. 支持MetricsQL:扩展的PromQL
6. 集群模式:支持水平扩展
7. 多租户:支持多租户隔离
8. 长期存储:适合长期数据存储
2. 硬件环境要求与检查
在安装VictoriaMetrics之前,需要对服务器硬件环境进行全面检查。学习交流加群风哥微信: itpux-com
2.1 最低硬件要求
CPU:2核心
内存:2GB
磁盘:20GB
推荐配置(生产环境):
CPU:4核心以上
内存:16GB以上
磁盘:200GB以上SSD
大规模监控配置:
CPU:8核心以上
内存:32GB以上
磁盘:1TB以上SSD
2.2 系统环境检查
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.8 (Ootpa)
# 检查内核版本
# uname -a
Linux fgedudb01 4.18.0-477.10.1.el8_8.x86_64 #1 SMP Fri Apr 4 10:00:00 CST 2026 x86_64 x86_64 x86_64 GNU/Linux
# 检查内存信息
# free -h
total used free shared buff/cache available
Mem: 31Gi 1.0Gi 29Gi 256Mi 1.0Gi 30Gi
Swap: 7Gi 0B 7Gi
# 检查磁盘空间
# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg_system-lv_root 50G 2.5G 48G 5% /
/dev/sda2 1014M 150M 865M 15% /boot
/dev/mapper/vg_data-lv_data 200G 20G 180G 10% /data
# 检查时间同步
# timedatectl status
Local time: 五 2026-04-04 10:00:00 CST
Universal time: 五 2026-04-04 02:00:00 UTC
RTC time: 五 2026-04-04 02:00:00
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
2.3 内核参数配置
# vi /etc/sysctl.d/99-victoriametrics.conf
# 添加以下参数
# 网络参数
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
# 文件描述符限制
fs.file-max = 655360
# 内存参数
vm.overcommit_memory = 1
vm.swappiness = 1
# 使内核参数生效
# sysctl -p /etc/sysctl.d/99-victoriametrics.conf
2.4 用户资源限制配置
# vi /etc/security/limits.conf
# 添加以下配置
victoria soft nofile 65535
victoria hard nofile 65535
victoria soft nproc 65535
victoria hard nproc 65535
# 创建用户
# useradd -r -s /sbin/nologin victoria
3. VictoriaMetrics安装步骤
本节详细介绍VictoriaMetrics v1.93的安装过程。学习交流加群风哥QQ113257174
3.1 创建目录结构
# mkdir -p /etc/victoria-metrics
# mkdir -p /data/victoria-metrics
# mkdir -p /var/log/victoria-metrics
# 设置目录权限
# chown -R victoria:victoria /etc/victoria-metrics
# chown -R victoria:victoria /data/victoria-metrics
# chown -R victoria:victoria /var/log/victoria-metrics
# chmod -R 750 /data/victoria-metrics
# chmod -R 750 /var/log/victoria-metrics
# 验证目录权限
# ls -la /data/
总用量 0
drwxr-xr-x. 2 victoria victoria 6 4月 4 10:00 victoria-metrics
3.2 下载并安装VictoriaMetrics
# cd /usr/local/src
# wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.93.0/victoria-metrics-linux-amd64-v1.93.0.tar.gz
# 输出示例:
–2026-04-04 10:00:00– https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.93.0/victoria-metrics-linux-amd64-v1.93.0.tar.gz
正在解析主机 github.com… 140.82.121.4
正在连接 github.com|140.82.121.4|:443… 已连接。
已发出 HTTP 请求,正在等待回应… 200 OK
长度:20000000 (19M) [application/octet-stream]
正在保存至: “victoria-metrics-linux-amd64-v1.93.0.tar.gz”
100%[======================================>] 20,000,000 10.0MB/s 用时 1.9s
2026-04-04 10:00:05 (10.0 MB/s) – 已保存 “victoria-metrics-linux-amd64-v1.93.0.tar.gz”
# 解压安装包
# tar -xzf victoria-metrics-linux-amd64-v1.93.0.tar.gz
# 复制二进制文件
# cp victoria-metrics-prod /usr/local/bin/
# chmod 755 /usr/local/bin/victoria-metrics-prod
# 验证安装
# victoria-metrics-prod –version
victoria-metrics-20240401-123456-tags-v1.93.0-0-gabc123
3.3 创建Systemd服务
# vi /etc/systemd/system/victoria-metrics.service
[Unit]
Description=VictoriaMetrics
After=network-online.target
[Service]
User=victoria
Group=victoria
Type=simple
Restart=on-failure
ExecStart=/usr/local/bin/victoria-metrics-prod \
-storageDataPath=/data/victoria-metrics \
-retentionPeriod=30d \
-httpListenAddr=:8428 \
-memory.allowedPercent=80 \
-loggerLevel=INFO \
-loggerOutput=stdout
RestartSec=5
LimitNOFILE=65535
LimitNPROC=65535
[Install]
WantedBy=multi-user.target
# 重载systemd
# systemctl daemon-reload
# 启动VictoriaMetrics服务
# systemctl start victoria-metrics
# 设置开机自启动
# systemctl enable victoria-metrics
# 输出示例:
Created symlink /etc/systemd/system/multi-user.target.wants/victoria-metrics.service → /etc/systemd/system/victoria-metrics.service.
# 检查服务状态
# systemctl status victoria-metrics
● victoria-metrics.service – VictoriaMetrics
Loaded: loaded (/etc/systemd/system/victoria-metrics.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2026-04-04 10:00:00 CST; 5s ago
Main PID: 12345 (victoria-metrics-pr)
Tasks: 8 (limit: 4915)
Memory: 50.0M
CGroup: /system.slice/victoria-metrics.service
└─12345 /usr/local/bin/victoria-metrics-prod -storageDataPath=/data/victoria-metrics …
# 检查端口
# netstat -tlnp | grep victoria
tcp6 0 0 :::8428 :::* LISTEN 12345/victoria-metr
# 验证服务
# curl -s http://localhost:8428/api/v1/status/buildinfo | jq
{
“version”: “v1.93.0”,
“goVersion”: “go1.21.0”,
“goOS”: “linux”,
“goArch”: “amd64”
}
4. VictoriaMetrics参数配置
VictoriaMetrics参数配置是监控系统的关键步骤,直接影响监控效果和性能。更多学习教程公众号风哥教程itpux_com
4.1 配置Prometheus远程写入
# vi /etc/prometheus/prometheus.yml
# 添加远程写入配置
remote_write:
– url: “http://192.168.1.51:8428/api/v1/write”
queue_config:
max_samples_per_send: 10000
max_shards: 200
capacity: 2500
# 重载Prometheus配置
# systemctl reload prometheus
# 验证数据写入
# curl -s ‘http://localhost:8428/api/v1/query?query=up’ | jq
{
“status”: “success”,
“data”: {
“resultType”: “vector”,
“result”: [
{
“metric”: {
“__name__”: “up”,
“job”: “prometheus”,
“instance”: “localhost:9090”
},
“value”: [1712205600, “1”]
}
]
}
}
4.2 配置数据采集
# 下载vmagent
# cd /usr/local/src
# wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.93.0/vmutils-linux-amd64-v1.93.0.tar.gz
# 解压并安装
# tar -xzf vmutils-linux-amd64-v1.93.0.tar.gz
# cp vmagent-prod /usr/local/bin/
# chmod 755 /usr/local/bin/vmagent-prod
# 创建vmagent配置文件
# vi /etc/victoria-metrics/vmagent.yml
global:
scrape_interval: 15s
external_labels:
monitor: ‘fgedu-monitor’
scrape_configs:
– job_name: ‘prometheus’
static_configs:
– targets: [‘localhost:9090’]
– job_name: ‘node_exporter’
static_configs:
– targets: [‘192.168.1.51:9100’, ‘192.168.1.52:9100’]
– job_name: ‘mysql_exporter’
static_configs:
– targets: [‘192.168.1.51:9104’]
# 创建vmagent服务文件
# vi /etc/systemd/system/vmagent.service
[Unit]
Description=vmagent
After=network-online.target
[Service]
User=victoria
Group=victoria
Type=simple
ExecStart=/usr/local/bin/vmagent-prod \
-promscrape.config=/etc/victoria-metrics/vmagent.yml \
-remoteWrite.url=http://localhost:8428/api/v1/write
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 启动vmagent
# systemctl daemon-reload
# systemctl start vmagent
# systemctl enable vmagent
4.3 配置数据保留策略
# curl -s http://localhost:8428/api/v1/status/flags | jq ‘.data.”retentionPeriod”‘
“30d”
# 修改保留策略(需要重启服务)
# vi /etc/systemd/system/victoria-metrics.service
ExecStart=/usr/local/bin/victoria-metrics-prod \
-storageDataPath=/data/victoria-metrics \
-retentionPeriod=60d \
…
# 重启服务
# systemctl daemon-reload
# systemctl restart victoria-metrics
# 配置基于大小的保留策略
# vi /etc/systemd/system/victoria-metrics.service
ExecStart=/usr/local/bin/victoria-metrics-prod \
-storageDataPath=/data/victoria-metrics \
-retentionPeriod=30d \
-storage.maxDiskUsageUsage=90% \
…
# 查看存储统计
# curl -s http://localhost:8428/api/v1/status/storage | jq
{
“data”: {
“totalDataSize”: 1073741824,
“totalIndexSize”: 104857600,
“rowsCount”: 10000000,
“blocksCount”: 100000
}
}
5. 数据写入与查询
VictoriaMetrics兼容Prometheus协议,支持多种数据写入和查询方式。from:www.itpux.com
5.1 数据写入
# 参见4.1节配置
# 使用HTTP API写入
$ curl -X POST “http://192.168.1.51:8428/api/v1/import/prometheus” \
-d ‘cpu_usage{host=”fgedudb01″,region=”cn-north”} 80.5
memory_usage{host=”fgedudb01″,region=”cn-north”} 65.2’
# 使用InfluxDB协议写入
$ curl -X POST “http://192.168.1.51:8428/write” \
-d ‘cpu_usage,host=fgedudb01,region=cn-north value=80.5’
# 使用批量导入
$ cat > /tmp/metrics.txt << 'EOF'
cpu_usage{host="fgedudb01"} 80.5
cpu_usage{host="fgedudb02"} 75.3
memory_usage{host="fgedudb01"} 65.2
memory_usage{host="fgedudb02"} 55.8
EOF
$ curl -X POST "http://192.168.1.51:8428/api/v1/import/prometheus" \
--data-binary @/tmp/metrics.txt
# 验证写入
$ curl -s 'http://localhost:8428/api/v1/query?query=cpu_usage' | jq
{
"status": "success",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"__name__": "cpu_usage",
"host": "fgedudb01"
},
"value": [1712205600, "80.5"]
},
{
"metric": {
"__name__": "cpu_usage",
"host": "fgedudb02"
},
"value": [1712205600, "75.3"]
}
]
}
}
5.2 数据查询
$ curl -G ‘http://192.168.1.51:8428/api/v1/query’ \
–data-urlencode ‘query=cpu_usage’
# 范围查询
$ curl -G ‘http://192.168.1.51:8428/api/v1/query_range’ \
–data-urlencode ‘query=cpu_usage’ \
–data-urlencode ‘start=1712205000’ \
–data-urlencode ‘end=1712205600’ \
–data-urlencode ‘step=60s’
# 聚合查询
$ curl -G ‘http://192.168.1.51:8428/api/v1/query’ \
–data-urlencode ‘query=avg(cpu_usage)’
# 按标签分组聚合
$ curl -G ‘http://192.168.1.51:8428/api/v1/query’ \
–data-urlencode ‘query=avg by(host) (cpu_usage)’
# 使用MetricsQL扩展功能
# 滚动窗口计算
$ curl -G ‘http://192.168.1.51:8428/api/v1/query’ \
–data-urlencode ‘query=avg_over_time(cpu_usage[5m])’
# 时间偏移
$ curl -G ‘http://192.168.1.51:8428/api/v1/query’ \
–data-urlencode ‘query=cpu_usage offset 1h’
# 多查询合并
$ curl -G ‘http://192.168.1.51:8428/api/v1/query’ \
–data-urlencode ‘query=cpu_usage + memory_usage’
5.3 使用Grafana可视化
# 在Grafana中添加Prometheus数据源
# URL: http://192.168.1.51:8428
# 导入Dashboard
# 使用Prometheus兼容的Dashboard
# 常用查询示例:
# CPU使用率
100 – (avg by(instance) (rate(node_cpu_seconds_total{mode=”idle”}[5m])) * 100)
# 内存使用率
(1 – (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
# 磁盘使用率
(1 – (node_filesystem_avail_bytes{fstype!=”tmpfs”} / node_filesystem_size_bytes{fstype!=”tmpfs”})) * 100
# 网络流量
rate(node_network_receive_bytes_total{device=”eth0″}[5m])
# VictoriaMetrics特有查询
# 查询数据点数量
$ curl -s ‘http://localhost:8428/api/v1/status/tsdb’ | jq ‘.data.seriesCountByMetricName’
# 查询标签值
$ curl -G ‘http://localhost:8428/api/v1/label/host/values’
# 查询标签对
$ curl -G ‘http://localhost:8428/api/v1/labels’
6. 网络连接配置
网络连接配置是客户端访问VictoriaMetrics的关键,需要正确配置监听端口和连接方式。更多学习教程www.fgedu.net.cn
6.1 配置网络监听
# netstat -tlnp | grep victoria
tcp6 0 0 :::8428 :::* LISTEN 12345/victoria-metr
# 修改监听地址
# vi /etc/systemd/system/victoria-metrics.service
ExecStart=/usr/local/bin/victoria-metrics-prod \
-httpListenAddr=192.168.1.51:8428 \
…
# 重启服务
# systemctl daemon-reload
# systemctl restart victoria-metrics
# 配置防火墙
# firewall-cmd –permanent –add-port=8428/tcp
success
# firewall-cmd –reload
success
6.2 配置认证
# 建议使用反向代理实现认证
# 安装nginx
# dnf install -y nginx
# 配置nginx反向代理
# vi /etc/nginx/conf.d/victoriametrics.conf
server {
listen 80;
server_name vm.fgedu.net.cn;
location / {
auth_basic “VictoriaMetrics”;
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:8428;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# 创建密码文件
# htpasswd -c /etc/nginx/.htpasswd admin
New password:
Re-type new password:
Adding password for user admin
# 启动nginx
# systemctl start nginx
# systemctl enable nginx
6.3 配置多租户
# 使用accountID进行租户隔离
# 写入数据到指定租户
$ curl -X POST “http://192.168.1.51:8428/insert/0/prometheus” \
-d ‘cpu_usage{host=”fgedudb01″} 80.5’
# 查询指定租户数据
$ curl -G ‘http://192.168.1.51:8428/select/0/prometheus/api/v1/query’ \
–data-urlencode ‘query=cpu_usage’
# 租户ID说明:
# 0: 默认租户
# 1-100: 用户定义租户
# 使用vmgateway实现租户认证
# 下载vmgateway
# wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.93.0/vmutils-linux-amd64-v1.93.0.tar.gz
# tar -xzf vmutils-linux-amd64-v1.93.0.tar.gz
# cp vmgateway-prod /usr/local/bin/
7. 备份恢复配置
备份恢复是监控系统管理的重要环节,VictoriaMetrics提供了vmbackup工具进行备份。学习交流加群风哥微信: itpux-com
7.1 数据备份
# cd /usr/local/src
# tar -xzf vmutils-linux-amd64-v1.93.0.tar.gz
# cp vmbackup-prod /usr/local/bin/
# cp vmrestore-prod /usr/local/bin/
# chmod 755 /usr/local/bin/vmbackup-prod
# chmod 755 /usr/local/bin/vmrestore-prod
# 创建备份目录
# mkdir -p /backup/victoria-metrics
# 执行备份
$ vmbackup-prod \
-storageDataPath=/data/victoria-metrics \
-snapshot.createURL=http://localhost:8428/snapshot/create \
-dst=/backup/victoria-metrics
# 输出示例:
2026-04-04T10:00:00.000Z info VictoriaMetrics/lib/backup/actions/backup.go:113 starting backup
2026-04-04T10:00:00.000Z info VictoriaMetrics/lib/backup/actions/backup.go:123 creating snapshot
2026-04-04T10:00:00.000Z info VictoriaMetrics/lib/backup/actions/backup.go:133 snapshot created: 20260404:100000
2026-04-04T10:00:05.000Z info VictoriaMetrics/lib/backup/actions/backup.go:153 backup finished in 5.000 seconds
# 验证备份
# ls -la /backup/victoria-metrics/
总用量 1024
drwxr-xr-x. 2 root root 20 4月 4 10:00 20260404:100000
7.2 数据恢复
# systemctl stop victoria-metrics
# 执行恢复
$ vmrestore-prod \
-storageDataPath=/data/victoria-metrics \
-src=/backup/victoria-metrics
# 输出示例:
2026-04-04T11:00:00.000Z info VictoriaMetrics/lib/backup/actions/restore.go:87 starting restore
2026-04-04T11:00:05.000Z info VictoriaMetrics/lib/backup/actions/restore.go:107 restore finished in 5.000 seconds
# 设置权限
# chown -R victoria:victoria /data/victoria-metrics
# 启动服务
# systemctl start victoria-metrics
# 验证恢复
# curl -s ‘http://localhost:8428/api/v1/query?query=up’ | jq
7.3 自动备份脚本
# vi /usr/local/bin/vm_backup.sh
#!/bin/bash
BACKUP_DIR=/backup/victoria-metrics
DATE=$(date +%Y%m%d_%H%M%S)
LOG_FILE=/var/log/victoria-metrics/backup.log
echo “=== Backup started at $(date) ===” >> $LOG_FILE
vmbackup-prod \
-storageDataPath=/data/victoria-metrics \
-snapshot.createURL=http://localhost:8428/snapshot/create \
-dst=${BACKUP_DIR}/${DATE} >> $LOG_FILE 2>&1
if [ $? -eq 0 ]; then
echo “Backup completed successfully” >> $LOG_FILE
else
echo “Backup failed” >> $LOG_FILE
fi
# 清理30天前的备份
find ${BACKUP_DIR} -mindepth 1 -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; >> $LOG_FILE 2>&1
echo “=== Backup finished at $(date) ===” >> $LOG_FILE
echo “” >> $LOG_FILE
# 设置脚本权限
# chmod +x /usr/local/bin/vm_backup.sh
# 配置定时任务
# crontab -e
# 添加以下内容(每天凌晨2点执行备份)
0 2 * * * /usr/local/bin/vm_backup.sh
8. 升级与迁移
VictoriaMetrics升级和迁移是运维工作中的重要环节,需要仔细规划和执行。更多学习教程公众号风哥教程itpux_com
8.1 版本升级
$ curl -s http://localhost:8428/api/v1/status/buildinfo | jq ‘.version’
“v1.93.0”
# 执行备份
$ vmbackup-prod \
-storageDataPath=/data/victoria-metrics \
-snapshot.createURL=http://localhost:8428/snapshot/create \
-dst=/backup/victoria-metrics/pre_upgrade
# 停止服务
# systemctl stop victoria-metrics
# 下载新版本
# cd /usr/local/src
# wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.94.0/victoria-metrics-linux-amd64-v1.94.0.tar.gz
# 解压并替换二进制文件
# tar -xzf victoria-metrics-linux-amd64-v1.94.0.tar.gz
# cp victoria-metrics-prod /usr/local/bin/
# chmod 755 /usr/local/bin/victoria-metrics-prod
# 启动服务
# systemctl start victoria-metrics
# 验证版本
$ curl -s http://localhost:8428/api/v1/status/buildinfo | jq ‘.version’
“v1.94.0”
8.2 从Prometheus迁移
# 配置Prometheus远程写入到VictoriaMetrics
# 参见4.1节配置
# 方法2:导入Prometheus数据
# 创建Prometheus快照
# curl -X POST http://localhost:9090/api/v1/admin/tsdb/snapshot
# 使用vmctl导入
# 下载vmctl
# cp vmctl-prod /usr/local/bin/
# 导入数据
$ vmctl-prod prometheus \
-prom-snapshot=/data/prometheus/snapshots/20260404 \
-vm-addr=http://192.168.1.51:8428
# 输出示例:
Prometheus snapshot importer
Loading blocks from /data/prometheus/snapshots/20260404
Importing block 1 of 10…
Importing block 2 of 10…
…
Import completed in 60.000 seconds
# 方法3:直接复制数据
# 停止Prometheus和VictoriaMetrics
# 使用vmimport工具导入
9. 生产环境实战案例
本节提供一个完整的生产环境配置案例,帮助读者更好地理解VictoriaMetrics的实际应用。from:www.itpux.com
9.1 集群模式部署
# vmstorage: 数据存储节点
# vminsert: 数据写入节点
# vmselect: 数据查询节点
# 下载集群版
# wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.93.0/victoria-metrics-cluster-linux-amd64-v1.93.0.tar.gz
# tar -xzf victoria-metrics-cluster-linux-amd64-v1.93.0.tar.gz
# 部署vmstorage节点
# vi /etc/systemd/system/vmstorage.service
[Unit]
Description=vmstorage
After=network-online.target
[Service]
User=victoria
Group=victoria
Type=simple
ExecStart=/usr/local/bin/vmstorage-prod \
-storageDataPath=/data/vmstorage \
-retentionPeriod=30d \
-httpListenAddr=:8482 \
-vminsertAddr=:8400 \
-vmselectAddr=:8401
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 部署vminsert节点
# vi /etc/systemd/system/vminsert.service
[Unit]
Description=vminsert
After=network-online.target
[Service]
User=victoria
Group=victoria
Type=simple
ExecStart=/usr/local/bin/vminsert-prod \
-httpListenAddr=:8480 \
-storageNode=192.168.1.51:8400,192.168.1.52:8400
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 部署vmselect节点
# vi /etc/systemd/system/vmselect.service
[Unit]
Description=vmselect
After=network-online.target
[Service]
User=victoria
Group=victoria
Type=simple
ExecStart=/usr/local/bin/vmselect-prod \
-httpListenAddr=:8481 \
-storageNode=192.168.1.51:8401,192.168.1.52:8401
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 启动服务
# systemctl daemon-reload
# systemctl start vmstorage vminsert vmselect
# systemctl enable vmstorage vminsert vmselect
9.2 性能监控
$ curl -s http://localhost:8428/metrics | grep vm_
# HELP vm_app_version VictoriaMetrics version info
# TYPE vm_app_version gauge
vm_app_version{version=”v1.93.0″} 1
# HELP vm_cache_entries Number of entries in cache
# TYPE vm_cache_entries gauge
vm_cache_entries{type=”storage/index”} 100000
# HELP vm_concurrent_insert_capacity The maximum number of concurrent inserts
# TYPE vm_concurrent_insert_capacity gauge
vm_concurrent_insert_capacity 100
# 查看写入速率
$ curl -s ‘http://localhost:8428/api/v1/query?query=rate(vm_rows_inserted_total[5m])’ | jq
# 查看压缩统计
$ curl -s ‘http://localhost:8428/api/v1/query?query=vm_compression_level’ | jq
# 查看内存使用
$ curl -s ‘http://localhost:8428/api/v1/query?query=process_resident_memory_bytes’ | jq
# 查看存储大小
$ curl -s ‘http://localhost:8428/api/v1/status/storage’ | jq
{
“data”: {
“totalDataSize”: 1073741824,
“totalIndexSize”: 104857600,
“rowsCount”: 10000000,
“blocksCount”: 100000
}
}
9.3 高可用配置
# 方案1:多副本写入
# 配置vmagent同时写入多个VictoriaMetrics实例
# vi /etc/victoria-metrics/vmagent.yml
remote_write:
– url: http://vm1:8428/api/v1/write
– url: http://vm2:8428/api/v1/write
# 方案2:集群模式
# 部署多个vmstorage节点
# vminsert和vmselect自动负载均衡
# 方案3:使用vmalert告警
# 下载vmalert
# cp vmalert-prod /usr/local/bin/
# 配置vmalert
# vi /etc/systemd/system/vmalert.service
[Unit]
Description=vmalert
After=network-online.target
[Service]
User=victoria
Group=victoria
Type=simple
ExecStart=/usr/local/bin/vmalert-prod \
-rule=/etc/victoria-metrics/alerts/*.yml \
-datasource.url=http://localhost:8428 \
-notifier.url=http://localhost:9093 \
-httpListenAddr=:8880
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 创建告警规则
# vi /etc/victoria-metrics/alerts/node.yml
groups:
– name: node_alerts
rules:
– alert: HighCPUUsage
expr: 100 – (avg by(instance) (rate(node_cpu_seconds_total{mode=”idle”}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: “High CPU usage on {{ $labels.instance }}”
# 启动vmalert
# systemctl start vmalert
# systemctl enable vmalert
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
