Диагностика доступа к консоли ВМ на примере протокола SPICE
При работе ВМ на хосте в каталоге /run/libvirt/qemu
создаются файлы конфигураций:
ls -l /run/libvirt/qemu/
-rw-------. 1 root root 4 авг 4 16:50 deb_storage_sz.pid
-rw-------. 1 root root 18049 авг 20 10:02 deb_storage_sz.xml
-rw-------. 1 root root 5 авг 18 15:21 host2_infoland_SZ.pid
-rw-------. 1 root root 24091 авг 20 14:40 host2_infoland_SZ.xml
-rw-------. 1 root root 5 апр 4 01:13 HostedEngine.pid
-rw-------. 1 root root 20263 апр 4 01:13 HostedEngine.xml
...
Файл pid
содержит в себе информацию о номере процесса:
cat /run/libvirt/qemu/HostedEngine.pid
17851
Узнать открытые сокеты/порты процесса можно командой:
ss -tulpan | grep 17851
tcp LISTEN 0 128 172.26.27.100:5900 *:* users:(("qemu-kvm",pid=17851,fd=22))
tcp LISTEN 0 128 172.26.27.100:5901 *:* users:(("qemu-kvm",pid=17851,fd=23))
tcp LISTEN 0 1 172.26.27.100:5902 *:* users:(("qemu-kvm",pid=17851,fd=52))
Узнать информацию об используемых портах можно из XML файла
:
grep tlsPort /run/libvirt/qemu/HostedEngine.xml
<graphics type='spice' port='5900' tlsPort='5901' autoport='yes' listen='172.26.27.100' passwd='*****' passwdValidTo='1970-01-01T00:00:01'>
Как видно, для доступа к ВМ по протоколу SPICE
используется 5901
порт.
По номеру процесса можно провести диагностику запуска ВМ:
#strings /proc/17851/cmdline
...
-spice \
port=5900,tls-port=5901,addr=172.26.27.100,x509-dir=/etc/pki/vdsm/libvirt-spice,tls-channel=main,tls-channel=display,tls-channel=inputs,tls-channel=cursor,tls-channel=playback,tls-channel=record,tls-channel=smartcard,tls-channel=usbredir,seamless-migration=on
...
Для автоматизации можно использовать скрипт для диагностики:
for i in $(ls /run/libvirt/qemu/*.pid); do ls $i \
| xargs -I % sh -c 'FILE=$(basename %) && PID=$(cat %) \
&& PORT=$(strings /proc/$PID/cmdline | grep tls-port) && echo "$FILE: $PORT"'; done
Вывод содержит следующую информацию:
deb_storage_sz.pid: port=5903,tls-port=5904,addr=172.26.27.100,x509-dir=/etc/pki/vdsm/libvirt-spice,tls-channel=main,tls-channel=display,tls-channel=inputs,tls-channel=cursor,tls-channel=playback,tls-channel=record,tls-channel=smartcard,tls-channel=usbredir,seamless-migration=on`
host2_infoland_SZ.pid: port=5913,tls-port=5915,addr=172.26.27.100,x509-dir=/etc/pki/vdsm/libvirt-spice,tls-channel=main,tls-channel=display,tls-channel=inputs,tls-channel=cursor,tls-channel=playback,tls-channel=record,tls-channel=smartcard,tls-channel=usbredir,seamless-migration=on
HostedEngine.pid: port=5900,tls-port=5901,addr=172.26.27.100,x509-dir=/etc/pki/vdsm/libvirt-spice,tls-channel=main,tls-channel=display,tls-channel=inputs,tls-channel=cursor,tls-channel=playback,tls-channel=record,tls-channel=smartcard,tls-channel=usbredir,seamless-migration=on