19.2.10 指标体系与资产可视化
指标体系与资产可视化#
本节聚焦资产管理的指标体系设计与可视化呈现,形成统一口径、可追踪、可度量的资产运营视图,为资源规划、容量治理与成本优化提供决策依据,并结合 Prometheus + Grafana 给出可执行示例。
一、指标体系设计原则#
- 一致性与可比性:指标定义、采集口径统一,避免同名异义。
- 可追溯与可审计:指标可回溯到资产、采集源、时间窗口。
- 可行动性:指标能驱动运维动作,如扩容、回收、优化。
- 分层分域:基础指标、效率指标、成本指标分层构建。
二、指标体系与可视化原理草图#
三、核心指标分类与示例#
-
资产规模指标
- 资产总量(主机、容器、网络设备、数据库实例)
- 资产新增/退役量、变更频次
- 资产类型占比与地域分布 -
容量与利用率指标
- CPU、内存、磁盘、网络带宽利用率
- 资源池空闲率、碎片率
- 资源超配比、容量预警阈值 -
稳定性与风险指标
- 资产健康度评分
- 关键资产可用率
- 软硬件版本合规率、生命周期风险资产比例 -
成本与效率指标
- 单位业务成本(CPU/核小时、存储/GB月)
- 资源回收率、闲置资产比例
- 自动化交付覆盖率、变更成功率
四、Prometheus + Grafana 实例(安装、采集、可视化)#
以 Linux 资产为例,采集 CPU/内存/磁盘并做可视化。
1)安装 node_exporter(资产节点)
# 下载与解压
wget -O /tmp/node_exporter.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
tar -xzf /tmp/node_exporter.tar.gz -C /opt/
ln -s /opt/node_exporter-1.6.1.linux-amd64 /opt/node_exporter
# 前台验证
/opt/node_exporter/node_exporter --web.listen-address=":9100"
# 访问 http://<node_ip>:9100/metrics 可看到指标输出
# systemd 服务化
cat >/etc/systemd/system/node_exporter.service <<'EOF'
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=root
ExecStart=/opt/node_exporter/node_exporter --web.listen-address=":9100"
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now node_exporter
systemctl status node_exporter --no-pager
命令解释
- node_exporter:采集主机 CPU/内存/磁盘/网络等指标。
- --web.listen-address=":9100":监听 9100 端口供 Prometheus 拉取。
2)安装 Prometheus(指标采集与存储)
# 下载与解压
wget -O /tmp/prometheus.tar.gz https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz
tar -xzf /tmp/prometheus.tar.gz -C /opt/
ln -s /opt/prometheus-2.47.0.linux-amd64 /opt/prometheus
# 配置文件
cat >/opt/prometheus/prometheus.yml <<'EOF'
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['192.168.10.11:9100','192.168.10.12:9100']
labels:
asset_type: "linux_host"
region: "cn-bj1"
EOF
# 启动 Prometheus
/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data &
# 访问 http://<prom_ip>:9090/targets 查看采集状态
关键参数说明
- scrape_interval:采集周期,影响指标粒度与存储。
- labels:用于资产维度分组(地域、类型)。
3)安装 Grafana(可视化)
# 使用官方仓库安装
cat >/etc/yum.repos.d/grafana.repo <<'EOF'
[grafana]
name=Grafana OSS
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
EOF
yum install -y grafana
systemctl enable --now grafana-server
systemctl status grafana-server --no-pager
# 访问 http://<grafana_ip>:3000,默认账号/密码:admin/admin
4)PromQL 示例(指标体系落地)
# CPU 使用率(按主机)
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
# 内存使用率(按主机)
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
# 磁盘使用率(按挂载点)
100 - (node_filesystem_avail_bytes{fstype!~"tmpfs|overlay"}
/ node_filesystem_size_bytes{fstype!~"tmpfs|overlay"}) * 100
# 资产规模(活跃实例数)
count(up{job="node"} == 1)
5)资产可视化示例(Grafana 面板字段)
- 面板标题:CPU 使用率 - 按地域
- 查询:上述 CPU PromQL + region 维度分组
- 期望效果:图表可按 region、asset_type 分组过滤,支持钻取
五、指标治理与生命周期(含 CMDB 关联示例)#
1)指标字典表结构(示例)
CREATE TABLE metric_dictionary (
metric_id VARCHAR(64) PRIMARY KEY,
metric_name VARCHAR(128),
metric_desc TEXT,
calc_logic TEXT,
data_source VARCHAR(64),
refresh_cycle VARCHAR(32),
owner VARCHAR(64),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO metric_dictionary
(metric_id, metric_name, metric_desc, calc_logic, data_source, refresh_cycle, owner)
VALUES
('cpu_util', 'CPU使用率', '主机CPU利用率', '100-idle', 'Prometheus', '15s', 'ops');
2)CMDB 与指标关联查询(示例)
-- 假设 CMDB 资产表 cmdb_asset 与 Prometheus 采集标签一致
SELECT a.asset_id, a.hostname, a.region, m.metric_name
FROM cmdb_asset a
JOIN metric_dictionary m ON m.metric_id='cpu_util'
WHERE a.status='active';
六、常见问题与排错#
- Prometheus 目标状态 DOWN
# 检查端口是否可达
curl -s http://192.168.10.11:9100/metrics | head
# 检查 Prometheus 配置是否生效
curl -s http://127.0.0.1:9090/api/v1/targets | jq '.data.activeTargets[].health'
排查要点
- 防火墙/安全组放行 9100
- prometheus.yml 目标地址正确
- node_exporter 服务运行
- Grafana 无数据
# 检查数据源连通
curl -s http://<prom_ip>:9090/api/v1/query?query=up | jq '.status'
排查要点
- Grafana 数据源 URL 是否正确
- Prometheus 是否有采集数据(up 指标)
- 指标口径不一致
- 统一 PromQL 模板与指标字典
- 在 CMDB 中登记“指标负责人/口径”
七、练习题(含预期目标)#
-
练习 1:新增“资源池空闲率”指标
- 目标:在 Prometheus 中用标签pool汇总资源池 CPU 空闲率
- 提示:基于node_cpu_seconds_total+pool标签 -
练习 2:制作“闲置资产清单”面板
- 目标:Grafana 中列出 7 天 CPU 使用率 < 5% 的主机
- 提示:使用avg_over_time -
练习 3:指标回溯
- 目标:从图表点击某台主机,定位到 CMDB 资产详情页
- 提示:Grafana 变量 + 外链 URL
八、输出成果#
- 资产指标字典与指标计算文档
- 资产运营月报/周报模板
- 资源池容量看板与资产全景视图
- 闲置资产与高成本资产清单输出
本节通过标准化指标与可视化体系,使资产管理具备可量化、可对比、可持续优化的运营能力,为平台化运维提供数据支撑与决策闭环。