一、获取 Prometheus 实例访问配置
1. 前往 Prometheus 监控控制台,选择对应的实例 ID/名称,在基本信息 > 服务地址页面,获取 Remote Write 地址和 Token。
2. 在 账号信息 页面获取 APPID。
二、确认所在网络环境和云上实例联通
根据获取的 RemoteWrite 地址,执行如下命令,如果网络联通返回信息会包含 401 Unauthorized。
curl -v -X POST ${RemoteWriteURL}
三、安装并启动 vmagent
vmagent 占用较少的资源且兼容 Prometheus 采集配置和 Remote Write 协议而得到广泛使用。这篇只介绍 vmagent 常用启动选项,通过 Systemd 或 Docker 来管理 vmagent,更多详细信息可以参考 产品文档。
四、常用启动选项
·-promscrape.noStaleMarkers:如果采集目标消失,默认会生成所有关联指标的 stale marker 并写到远程存储。设置该选项禁止该行为,能减少内存的占用。
·-loggerTimezone:日志中时间的时区,例如 Asia/Shanghai, Europe/Berlin 或者 Local(默认是 "UTC")。
·-remoteWrite.tmpDataPath:采集后待写出数据临时存储的文件路径。
·-remoteWrite.url:数据写向远程存储的 URL。
·-remoteWrite.basicAuth.username:远程存储 -remoteWrite.url 对应的 basic auth 用户名。
·-remoteWrite.basicAuth.password:远程存储 -remoteWrite.url 对应的 basic auth 密码。
·-promscrape.config:采集配置的路径,可以是文件路径或者 HTTP URL,更多详情 参考文档。
·-promscrape.configCheckInterval:检查 -promscrape.config 配置变化的时间间隔,关于配置更新可以 参考文档。
五、通过 Docker 管理
1. 在 vmagent 发布页面 选择镜像版本,推荐使用 latest。
2. 替换脚本中的 Prometheus 实例信息,启动 vmagent。
mkdir /etc/prometheustouch /etc/prometheus/scrape-config.yamldocker run -d –name vmagent –restart always –net host -v /etc/prometheus:/etc/prometheus victoriametrics/vmagent:latest \\-promscrape.noStaleMarkers \\-loggerTimezone=Local \\-remoteWrite.url="${RemoteWriteURL}" \\-remoteWrite.basicAuth.username="${APPID}" \\-remoteWrite.basicAuth.password="${Token}" \\-remoteWrite.tmpDataPath=/var/lib/vmagent \\-promscrape.config=/etc/prometheus/scrape-config.yaml \\-promscrape.configCheckInterval=5s
3. 查看 vmagent 日志。
docker psdocker logs vmagent
如果正常启动,执行如下命令会返回 OK。
curl localhost:8429/health
六、通过 Systemd 管理
1. 在 vmagent 发布页面,根据操作系统和 CPU 架构,下载对应 vmutils-* 压缩包并解压。
2. 将解压出的 vmagent 二进制文件移动到 /usr/bin/ 目录。
3. 替换脚本中的 Prometheus 实例访问信息,启动 vmagent。
mkdir /etc/prometheustouch /etc/prometheus/scrape-config.yamlcat >/usr/lib/systemd/system/vmagent.service <<EOF[Unit]Description=VictoriaMetrics AgentAfter=network.target[Service]LimitNOFILE=10240ExecStart=/usr/bin/vmagent \\-promscrape.noStaleMarkers \\-loggerTimezone=Local \\-remoteWrite.url="${RemoteWriteURL}" \\-remoteWrite.basicAuth.username="${APPID}" \\-remoteWrite.basicAuth.password="${Token}" \\-remoteWrite.tmpDataPath=/var/lib/vmagent \\-promscrape.config=/etc/prometheus/scrape-config.yaml \\-promscrape.configCheckInterval=5s Restart=alwaysRestartSec=10s[Install]WantedBy=multi-user.targetEOFsystemctl daemon-reloadsystemctl enable vmagentsystemctl start vmagentsleep 3systemctl status vmagent
4. 查看日志。
journalctl -u vmagent
如果正常启动,执行如下命令会返回 OK。
curl localhost:8429/health
七、修改配置文件
编辑采集配置文件 /etc/prometheus/scrape-config.yaml 添加/更新/删除采集任务,关于 Prometheus 采集任务配置可以参考 产品文档。
global: scrape_interval: 30sscrape_configs: – job_name: agent-monitor static_configs: – targets: – localhost:8429
修改配置后,要通过选项 -promscrape.configCheckInterval 设置时间才会生效。
八、查看监控目标信息
执行如下命令,查看采集目标,可以查看配置是否生效并符合预期。
curl localhost:8429/api/v1/targets