ps -o ni $(pidof processname)
Например:
ps -o ni $(pidof mysqld)
# ps -o ni $(pidof mysqld)
NI
15
Пробовали ли вы использовать tcpdump для прослушивания интерфейса виртуальной машины?
Я не уверен, что вы используете в качестве гипервизора, но вы сможете запустить ip addr
, и если вы видите порты vswitch; в этом выводе вы можете захватить эти порты в tcpdump.
Вы также можете запустить tcpdump -D
, и это скажет вам, что известно libpcap на хост-компьютере для захвата.
Например, если вы используете KVM в качестве гипервизора, вы можете получить MAC-адрес и имя порта, с которым связана виртуальная машина.
# Assuming your xml files for the vms are in the default location also.
cat /etc/libvirt/qemu/{{ name_of_vm }}.xml | grep -A 2 interface
Из этого вывода вы можете сопоставить вывод из ip addr
, используя две последние цифры MAC-адреса в качестве фильтра.
ip a | grep -B 1 -i {{ last_two }}
Возвращаемый интерфейс затем может использоваться tcpdump.
tcpdump -ni {{ vnet_name }} -s0 -vw /var/tmp/{{ vnet_port_out }}.pcap
Это позволит захватить все на этом порту без фильтрации.
У меня успешно зеркалируется трафик, см. :в моем случае зеркало трафика vm1 в br -int to vm0, vm0 имеют два порта, один менеджер, другой получает трафик
Порт приема vm0 —7df1c457-7732-44b2-bf15-63b0b661f1b7
порт vm1 —7eb61cc2-d059-4002-acef-b38e242ce4a5
вытащить интерфейс «tapxxxx» из моста linux «qbrxxxxx»
brctl delif qbr7df1c457-77 tap7df1c457-77
добавить интерфейс "tapxxxx" в br -int
ovs-vsctl add-port br-int tap7df1c457-77
зеркало br -инт трафик на порт tap7df1c457 -77
ovs-vsctl -- --id=@tap1 get port qvo7eb61cc2-d0 -- --id=@tap2 get port tap7df1c457-77 -- --id=@m create mirror name=m0 select_dst_port=@tap1 select_src_port=@tap1 output_port=@tap2 -- set bridge br-int mirrors=@m
qvo7eb61cc2-d0
— это порт vm1.