Proxmox 虽然自带系统性能监控,但没法长期保存,故此我采用了 InfluxDB 和 Grafana 的组合来监控 VM 和 LXC。
首先我创建了一台 LXC 来作为基座,使用的是 Alpine Linux,它占用资源非常少,1核+512M 内存足够,实占 3%CPU,60%MEM。
InfluxDB
安装
由于 Alpine Linux 仓库里没有 InfluxDB,而 InfluxDB 官方主推是 3.x 版本,因此需要在 GitHub 自行下载。然后解压并配置可执行文件路径:
1
2
3
| tar -zxvf influxdb2-2.7.12_linux_amd64.tar.gz -C /opt
mv /opt/influxdb2-2.7.12/ /opt/influxdb2
ln -s /opt/influxdb2/usr/bin/influxd /usr/local/bin/influxd
|
创建数据与配置目录
1
2
| mkdir -p /var/lib/influxdb
mkdir -p /etc/influxdb
|
测试启动
1
2
3
| influxd --bolt-path /var/lib/influxdb/influxd.bolt \
--engine-path /var/lib/influxdb/engine \
--http-bind-address :8086
|
浏览器访问 http://<服务器ip:8086>, 首次会要求设置用户名、密码、组织和 bucket,并记下密钥。这些信息后面 Proxmox 要用到。
创建服务
测试正常后,在 /etc/init.d/influxdb 写入:
1
2
3
4
5
6
7
8
9
10
11
12
13
| #!/sbin/openrc-run
name="influxdb"
description="InfluxDB time series database"
command="/usr/local/bin/influxd"
command_args="--bolt-path /var/lib/influxdb/influxd.bolt --engine-path /var/lib/influxdb/engine --http-bind-address :8086"
command_background="yes"
pidfile="/run/${RC_SVCNAME}.pid"
depend() {
need net
}
|
然后赋权并启动服务:
1
2
3
| chmod +x /etc/init.d/influxdb
rc-update add influxdb default
rc-service influxdb start
|
Proxmox
配置信息
在 Proxmox 的 指标服务器 中,添加 InfluxDB,其中:服务器填写 LXC 的地址,端口填 8086,协议是 HTTP,组织、插槽和令牌根据上面信息填写。
Grafana
安装与配置
Alpine Linux 仓库有 Grafana,可以直接安装:
修改配置
修改 /etc/conf.d/grafana 其中一行,使其能通过外部访问:
1
| cfg:server.http_addr=0.0.0.0
|
如果要启用 HTTPS 访问,还要修改 /etc/grafana.ini 中的一些参数(密钥文件生成见附 1):
1
2
3
4
5
6
7
8
| ...
[server]
# Protocol (http, https, h2, socket)
protocol = https
...
# https certs & key file
cert_file = /etc/ssl/grafana.crt
cert_key = /etc/ssl/grafana.key
|
启动服务
1
2
| rc-update add grafana default
rc-service grafana start
|
浏览器访问 http://<服务器ip:3000>, 默认用户名、密码均为 admin,首次会要求更新密码。
添加数据源
在 Connections - Data sources 选择 InfluxDB,自定义一个名字,URL 设置成http://localhost:3000, 选择 Basic auth,用户名留空,密码设置前述的令牌,Database 设置前述的 bucket。点击 Save&Test 显示绿色即为配置正常。
配置面板
在 Dashboard 中,选择导入模板,ID 为 10048,数据源选上述创建的名字即可。
附 1 生成密钥文件
使用自签名证书来启用 HTTPS 访问,具体步骤如下:
1
2
3
4
| openssl req -x509 -newkey rsa:2048 -keyout grafana.key -out grafana.crt -days 365 -nodes -subj "/C=CN/ST=State/L=City/O=Organization/CN=grafana.local"
chown grafana:grafana grafana.crt grafana.key
chmod 644 grafana.crt
chmod 600 grafana.key
|
然后放到相应目录,与 /etc/grafana.ini 配置一致。
附 2 使用域名访问
为了避免使用 IP 地址访问,套上了 CloudFlare,具体步骤如下:
首先,创建一条 DNS 记录,为它绑定一个域名;
然后,在规则选项中,创建一条 Origin Rule:当“主机名 等于 本域名”时,目标端口改写到 3000。
Author
winsphinx
LastMod
2025-11-05
(202c91fa)
[原创] Proxmox
License
