collectd influxdb grafana安装略。主要是监控受libvirt控制下的基于qemu的kvm虚拟机。
collectd安装
https://blog.csdn.net/dandanfengyun/article/details/111587726
influxdb安装
https://blog.csdn.net/dandanfengyun/article/details/111631024
grafana安装
https://blog.csdn.net/dandanfengyun/article/details/112214536
KVM虚拟机安装
https://blog.csdn.net/dandanfengyun/article/details/111830651
通过libvirt查看当前虚拟机信息
virsh list #显示本地活动虚拟机
virsh list –all #显示本地所有的虚拟机(活动的+不活动的)
virsh define ubuntu.xml #通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
virsh start ubuntu #启动名字为ubuntu的非活动虚拟机
virsh create ubuntu.xml #创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
virsh suspend ubuntu #暂停虚拟机
virsh resume ubuntu #启动暂停的虚拟机
virsh shutdown ubuntu #正常关闭虚拟机
virsh destroy ubuntu #强制关闭虚拟机
virsh dominfo ubuntu #显示虚拟机的基本信息
virsh domname 2 #显示id号为2的虚拟机名
virsh domid ubuntu #显示虚拟机id号
virsh domuuid ubuntu #显示虚拟机的uuid
virsh domstate ubuntu #显示虚拟机的当前状态
virsh dumpxml ubuntu #显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等)
virsh setmem ubuntu 512000 #给不活动虚拟机设置内存大小
virsh setvcpus ubuntu 4 #给不活动虚拟机设置cpu个数
virsh edit ubuntu #编辑配置文件(一般是在刚定义完虚拟机之后)
默认连接本机的虚拟机服务器
virsh
等于
virsh -c qemu:///system
可以连接到指定的虚拟机服务器,需要服务器libvirt设置允许远程连接
virsh -c qemu+tcp://IP/system
collectd 的collectd-virt插件就是通过libvirtd的API来收集虚拟机的信息然后保存的。
一.collectd设置
yum -y install collectd-rrdtool collectd-virt
vim /etc/collectd.conf
LoadPlugin logfile
<Plugin logfile>
LogLevel info
File "/var/log/collectd.log"
Timestamp true
PrintSeverity false
</Plugin>
LoadPlugin network
LoadPlugin rrdtool
LoadPlugin virt
<Plugin network>
Server "192.168.199.80" "25826"
</Plugin>
<Plugin virt>
Connection "qemu:///system"
HostnameFormat name
</Plugin>
除了设置network将数据发送到influxdb接收的端口外,还设置了rrdtool插件,将数据保存成rrd文件(使用collection3前端简单展示)
systemctl restart collectd
collection3简单前端通过rrd展示虚拟机数据。
yum -y install collectd-web
vim /usr/share/collectd/collection3/etc/collection.conf
DataDir "/var/lib/collectd/rrd"
vim /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
Alias /collection3/ /usr/share/collectd/collection3/
ScriptAlias /collection3/bin/ /usr/share/collectd/collection3/
<Directory /usr/share/doc/co