海运的博客

XenServer获取所有VM虚拟机IP及对应MAC地址

发布时间:November 20, 2012 // 分类:虚拟化,Shell // 1 Comment

XenServer5.6下编写,用于获取所有VM虚拟机IP和对应MAC地址,Shell脚本如下:

#!/bin/bash
#https://www.haiyun.me
if [[ ! -e mac-ip.txt ]];
then
        touch mac-ip.txt
else
        > mac-ip.txt
fi
for vps in `xe vm-list |awk '/name/ {print $4}'`
do
        case $vps in
                *"Control"* ) continue ;;
        esac
        writeline=`xe vif-list vm-name-label=$vps params=MAC|awk '/MAC/ {print $5}'`
        writeline+=" "
        writeline+=`xe vm-list name-label=$vps params=networks|awk '/network/ {print $5}'`
        echo $writeline >> mac-ip.txt
done

XenServer获取VM虚拟机名称与MAC地址参考:https://www.haiyun.me/archives/xenserver-vmname-mac.html

此内容被密码保护

发布时间:November 19, 2012 // 分类:虚拟化 // No Comments

请输入密码访问

XenServer获取所有VM虚拟机名称及对应MAC地址

发布时间:November 19, 2012 // 分类:虚拟化,Shell // No Comments

XenServer5.6测试通过,用于查找所有VM及其对应MAC地址写入output.csv文件,直接下载shell脚本

#!/bin/bash
#https://www.haiyun.me
if [ $(whoami) != 'root' ];
then
    echo "Must be root to run $0"
    exit 1;
fi

if [[ ! -e output.csv ]];
then
    touch output.csv
else
    > output.csv
fi

for vmuuid in `xe vm-list | awk -F ':'  '/^uuid/ {print $2}'` ;
do
    namelabel=`xe vm-param-get uuid=$vmuuid param-name=name-label`
    case $namelabel in
        *"Control domain"* ) continue ;;
    esac
    i=`xe vif-list vm-name-label="$namelabel" | grep device | wc -l`
    writeline="\"$namelabel\""
    writeline+=","
    for ((j=0;j<$i;j++))
    do
        mac=`xe vif-list vm-name-label="$namelabel" params=MAC device=$j | awk -F': ' '/^MAC/ {print $2}'`
        if [ -z "$mac" ]
        then
            i=`expr $i + 1`
            continue
        else
            writeline+=$mac
        fi
        if [ $j -lt `expr $i - 1` ]
        then
            writeline+=","
        fi
    done
    echo "$writeline" >> output.csv
done
echo "VMs and their respective MAC addresses have been written to output.csv in the current directory."
exit 0

使用sFlowTrend监控XenServer服务器

发布时间:October 22, 2012 // 分类:虚拟化 // No Comments

服务器端安装Host sFlow Agent代理客户端,用作发送sFlow数据到sFlowTrend分析端,支持多种Windows/Linux/Uinx系统。
Host sFlow下载地址:http://host-sflow.sourceforge.net/
sFlowTrend下载地址:http://www.inmon.com/products/sFlowTrend.php
XenServer6可直接安装Host sFlow,XenServer5要先配置为Open vSwitch模式支持sFlow

wget http://downloads.sourceforge.net/project/host-sflow/REL-1_22/hsflowd_XenServer_56FP2-1.22.2-1.i386.rpm
rpm -ivh hsflowd_XenServer_56FP2-1.22.2-1.i386.rpm 

配置Host sFlow:

cat /etc/hsflowd.conf 
#https://www.haiyun.me
sflow {
  DNSSD = off
  polling = 20
  sampling = 512
collector {
  ip = 192.168.1.155
  udpport = 6343
   }
}

启动Host sFlow Agent:

/etc/init.d/hsflowd start

然后在sFlowTrend配置代理端,不久即可看到监控的数据:
sFlowTrend监控服务器.png
sFlowTrend图表监控服务器.png
分析XenServer虚拟交换机sFlow数据:

ovs-vsctl -- --id=@sflow create sflow agent=xenbr0 targe=\"192.168.1.155:6343\" header=128 sampling=512 polling=30 \
-- set bridge eth0 sflow=@sflow

sflowtrend分析sflows网络流量.png

XenServer5.6网络配置为虚拟交换机Open vSwitch模式并开启NetFlow输出

发布时间:October 22, 2012 // 分类:虚拟化 // No Comments

新安装的XenServer6默认为Open vSwitch,XenServer5.6默认为网桥模式,查看当前网络模式:

cat /etc/xensource/network.conf
openvswitch

更改网络为虚拟交换机Open vSwitch模式:

#https://www.haiyun.me
xe-switch-network-backend openvswitch

切换回网桥bridge模式:

xe-switch-network-backend bridge

配置虚拟交换机输出NetFlow数据到分析端,可参考:Linux下Nfsen和Nfdump配置Netflow分析端

ovs-vsctl -- --id=@netflow create netflow targe=\"192.168.1.5:9995\" active_timeout=30 \
-- set bridge xenbr0 netflow=@netflow

输出sFlow数据:

ovs-vsctl -- --id=@sflow create sflow agent=eth1 targe=\"192.168.1.5:9995\" header=128 sampling=512 polling=30 \
-- set bridge xenbr0 sflow=@sflow

查看是否有NetFlow数据输出:

tcpdump -nn port 9995
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
18:12:16.535132 IP 192.168.1.15.55104 > 192.168.1.3.9995: UDP, length 600
18:12:17.544569 IP 192.168.1.15.55104 > 192.168.1.3.9995: UDP, length 216

更改Netflow或sFlow参数:

ovs-vsctl set NetFlow xenbr0  targe=\"192.168.1.3:9995\"

查看NetflowsFlow列表:

ovs-vsctl list netflow/sflow

删除Netflow/sFlow:

ovs-vsctl remove bridge xenbr0 netflow/sflow <uuid>

据说Open vSwitch模式在XenServer下并不稳定,只为输出NetFlow可使用Fprobe

分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...