UOS Libvirt Exporter完整指南:从零开始监控KVM/QEMU虚拟机
【免费下载链接】uos-libvirtd-exporterA Prometheus exporter for libvirtd项目地址: https://gitcode.com/openeuler/uos-libvirtd-exporter
前往项目官网免费下载:https://ar.openeuler.org/ar/
UOS Libvirt Exporter是一款专业的Prometheus监控导出器,用于收集和暴露基于libvirt的虚拟机(KVM/QEMU)运行状态和性能指标。该工具专为UOS操作系统和openEuler社区设计,支持监控本地和远程libvirt实例,帮助管理员全面掌握虚拟机的运行状况。
📋 为什么选择UOS Libvirt Exporter?
UOS Libvirt Exporter提供了多项关键特性,使其成为KVM/QEMU虚拟机监控的理想选择:
- 全面监控:涵盖VM状态、CPU、内存、磁盘I/O和网络I/O等关键指标
- Prometheus原生:遵循Prometheus最佳实践,采用基于标签的指标体系
- 易于部署:提供systemd服务、Docker容器等多种部署方式
- 灵活配置:支持通过配置文件、环境变量和命令行参数进行灵活配置
🚀 快速安装指南
1. 二进制安装
最简单的安装方式是使用预编译的二进制文件:
wget https://gitee.com/openeuler/uos-libvirtd-exporter/releases/latest/download/uos-libvirtd-exporter-linux-amd64.tar.gz tar -xzf uos-libvirtd-exporter-linux-amd64.tar.gz sudo mv uos-libvirtd-exporter /usr/local/bin/ sudo chmod +x /usr/local/bin/uos-libvirtd-exporter2. 源码编译安装
如果需要从源码编译,可以按照以下步骤进行:
git clone https://gitcode.com/openeuler/uos-libvirtd-exporter cd uos-libvirtd-exporter make build sudo make install3. Docker部署
对于容器化部署,可使用Docker:
docker run -d \ --name uos-libvirtd-exporter \ --privileged \ -v /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock \ -p 9177:9177 \ openeuler/uos-libvirtd-exporter:latest4. Systemd服务部署
为了实现开机自启动和更好的服务管理,可以使用systemd:
sudo cp uos-libvirtd-exporter.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable uos-libvirtd-exporter sudo systemctl start uos-libvirtd-exporter⚙️ 基本配置与运行
基本运行命令
默认配置下运行(连接本地libvirt):
uos-libvirtd-exporter指定libvirt连接URI:
uos-libvirtd-exporter -libvirt.uri=qemu:///system修改监听地址和端口:
uos-libvirtd-exporter -web.listen-address=:9177指定指标路径:
uos-libvirtd-exporter -web.telemetry-path=/metrics配置文件
UOS Libvirt Exporter支持使用YAML配置文件进行更复杂的配置。默认配置文件搜索路径包括:
/etc/uos-libvirtd-exporter/config.yaml(系统配置目录)$HOME/.uos-libvirtd-exporter/config.yaml(用户配置目录)- 当前工作目录下的
config.yaml
可以通过以下命令指定自定义配置文件:
uos-libvirtd-exporter -config.file /path/to/config.yaml配置文件结构示例:
libvirt: uri: "qemu:///system" timeout: 10 web: listen_address: ":9177" telemetry_path: "/metrics" log: level: "info" format: "json" collector: domain_cpu: true domain_memory: true domain_disk: true domain_network: true📊 指标与监控
核心指标类型
UOS Libvirt Exporter提供多种类型的指标,涵盖虚拟机监控的各个方面:
- CPU指标:vCPU使用率、调度延迟等
- 内存指标:内存使用量、气球技术状态等
- 磁盘指标:磁盘I/O、容量使用情况等
- 网络指标:网络吞吐量、丢包率等
- 状态指标:虚拟机运行状态、开机时间等
- 导出器自身指标:采集耗时、错误率等
访问指标
启动 exporter 后,可以通过以下URL访问指标:
http://localhost:9177/metrics可以使用curl命令验证指标是否正常暴露:
curl http://localhost:9177/metrics📈 Prometheus与Grafana集成
Prometheus配置
在Prometheus配置文件中添加以下内容以抓取UOS Libvirt Exporter指标:
scrape_configs: - job_name: 'libvirt' static_configs: - targets: ['localhost:9177']快速部署完整监控栈
项目提供了快速部署包含uos-libvirtd-exporter、Prometheus和Grafana的完整监控解决方案:
git clone https://gitcode.com/openeuler/uos-libvirtd-exporter cd uos-libvirtd-exporter/quickstart docker-compose up -d此部署包含预配置的Grafana仪表板,可直接查看虚拟机监控数据。
🔍 高级配置选项
UOS Libvirt Exporter支持多种高级配置选项,以满足不同环境的需求:
环境变量配置
可以通过环境变量覆盖配置:
export LIBVIRT_URI=qemu+ssh://user@host/system export WEB_LISTEN_ADDRESS=:9999 export WEB_TELEMETRY_PATH=/custom-metrics uos-libvirtd-exporter命令行参数优先级
配置优先级从高到低为:
- 命令行参数
- 环境变量
- 配置文件
- 默认值
配置验证
可以使用以下命令验证配置是否正确:
uos-libvirtd-exporter config validate🛠️ 故障排除
常见问题解决
无法连接到libvirt:
- 确保libvirtd服务正在运行:
sudo systemctl status libvirtd - 检查权限设置,确保exporter有权限访问libvirt套接字
- 确保libvirtd服务正在运行:
指标不完整:
- 检查配置文件中的收集器是否已启用
- 查看exporter日志获取详细信息:
journalctl -u uos-libvirtd-exporter
Prometheus无法抓取指标:
- 检查网络连接和防火墙设置
- 验证exporter是否正常运行:
curl http://localhost:9177/metrics
📚 相关文档
- 扩展指标说明:docs/ExtendedMetrics.md
- 配置管理最佳实践:docs/viper-configuration.md
- 架构设计文档:docs/HLD.md
【免费下载链接】uos-libvirtd-exporterA Prometheus exporter for libvirtd项目地址: https://gitcode.com/openeuler/uos-libvirtd-exporter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考