[libvirt-users] console type tcp with logging

Hi! I want to have ability to connect to guest console via libvirt api (and expose this data to xtermjs via websocket) with getty tty. And also i want to have log of tty1 (do log grub, kernel booting and errors). What i need to do in libvirt xml for such case? -- Vasiliy Tolstov, e-mail: v.tolstov@selfip.ru

On Thu, Nov 29, 2018 at 06:19:43PM +0300, Vasiliy Tolstov wrote:
Hi! I want to have ability to connect to guest console via libvirt api (and expose this data to xtermjs via websocket) with getty tty. And also i want to have log of tty1 (do log grub, kernel booting and errors). What i need to do in libvirt xml for such case?
XML is described here https://libvirt.org/formatdomain.html#elementsConsole In particular regardless of what backend type you use for the seral port, you can add logging using <log file="/var/log/libvirt/qemu/guestname-serial0.log" append="off"/> Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

чт, 29 нояб. 2018 г. в 18:23, Daniel P. Berrangé <berrange@redhat.com>:
On Thu, Nov 29, 2018 at 06:19:43PM +0300, Vasiliy Tolstov wrote:
Hi! I want to have ability to connect to guest console via libvirt api (and expose this data to xtermjs via websocket) with getty tty. And also i want to have log of tty1 (do log grub, kernel booting and errors). What i need to do in libvirt xml for such case?
XML is described here
https://libvirt.org/formatdomain.html#elementsConsole
In particular regardless of what backend type you use for the seral port, you can add logging using
<log file="/var/log/libvirt/qemu/guestname-serial0.log" append="off"/>
Thanks! Does it possible to read this log via libvirt api? -- Vasiliy Tolstov, e-mail: v.tolstov@selfip.ru

On Thu, Nov 29, 2018 at 08:57:54PM +0300, Vasiliy Tolstov wrote:
чт, 29 нояб. 2018 г. в 18:23, Daniel P. Berrangé <berrange@redhat.com>:
On Thu, Nov 29, 2018 at 06:19:43PM +0300, Vasiliy Tolstov wrote:
Hi! I want to have ability to connect to guest console via libvirt api (and expose this data to xtermjs via websocket) with getty tty. And also i want to have log of tty1 (do log grub, kernel booting and errors). What i need to do in libvirt xml for such case?
XML is described here
https://libvirt.org/formatdomain.html#elementsConsole
In particular regardless of what backend type you use for the seral port, you can add logging using
<log file="/var/log/libvirt/qemu/guestname-serial0.log" append="off"/>
Thanks! Does it possible to read this log via libvirt api?
No, not at this time. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

пт, 30 нояб. 2018 г. в 12:43, Daniel P. Berrangé <berrange@redhat.com>:
On Thu, Nov 29, 2018 at 08:57:54PM +0300, Vasiliy Tolstov wrote:
чт, 29 нояб. 2018 г. в 18:23, Daniel P. Berrangé <berrange@redhat.com>:
On Thu, Nov 29, 2018 at 06:19:43PM +0300, Vasiliy Tolstov wrote:
Hi! I want to have ability to connect to guest console via libvirt api (and expose this data to xtermjs via websocket) with getty tty. And also i want to have log of tty1 (do log grub, kernel booting and errors). What i need to do in libvirt xml for such case?
XML is described here
https://libvirt.org/formatdomain.html#elementsConsole
In particular regardless of what backend type you use for the seral port, you can add logging using
<log file="/var/log/libvirt/qemu/guestname-serial0.log" append="off"/>
Thanks! Does it possible to read this log via libvirt api?
No, not at this time.
Thanks! Do you have some plans to add this ability or patches welcome? =) -- Vasiliy Tolstov, e-mail: v.tolstov@selfip.ru

On Sun, Dec 02, 2018 at 12:34:54AM +0300, Vasiliy Tolstov wrote:
пт, 30 нояб. 2018 г. в 12:43, Daniel P. Berrangé <berrange@redhat.com>:
On Thu, Nov 29, 2018 at 08:57:54PM +0300, Vasiliy Tolstov wrote:
чт, 29 нояб. 2018 г. в 18:23, Daniel P. Berrangé <berrange@redhat.com>:
On Thu, Nov 29, 2018 at 06:19:43PM +0300, Vasiliy Tolstov wrote:
Hi! I want to have ability to connect to guest console via libvirt api (and expose this data to xtermjs via websocket) with getty tty. And also i want to have log of tty1 (do log grub, kernel booting and errors). What i need to do in libvirt xml for such case?
XML is described here
https://libvirt.org/formatdomain.html#elementsConsole
In particular regardless of what backend type you use for the seral port, you can add logging using
<log file="/var/log/libvirt/qemu/guestname-serial0.log" append="off"/>
Thanks! Does it possible to read this log via libvirt api?
No, not at this time.
Thanks! Do you have some plans to add this ability or patches welcome? =)
We don't have any plans to add it, but if someone's interested we'd accept patches. It would need to integrate with our virStream APIs to allow download, in similar way to how virStorageVolDownload() works Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

пн, 3 дек. 2018 г. в 12:27, Daniel P. Berrangé <berrange@redhat.com>:
We don't have any plans to add it, but if someone's interested we'd accept patches. It would need to integrate with our virStream APIs to allow download, in similar way to how virStorageVolDownload() works
What args this function need to receive? VolDownload this args: virStorageVolDownload(virStorageVolPtr vol, virStreamPtr stream, unsigned long long offset, unsigned long long length, unsigned int flags) I think that we can use all of this, but instead of vol, what we need to recv? Vasiliy Tolstov, e-mail: v.tolstov@selfip.ru

On Mon, Dec 03, 2018 at 01:38:45PM +0300, Vasiliy Tolstov wrote:
пн, 3 дек. 2018 г. в 12:27, Daniel P. Berrangé <berrange@redhat.com>:
We don't have any plans to add it, but if someone's interested we'd accept patches. It would need to integrate with our virStream APIs to allow download, in similar way to how virStorageVolDownload() works
What args this function need to receive? VolDownload this args: virStorageVolDownload(virStorageVolPtr vol, virStreamPtr stream, unsigned long long offset, unsigned long long length, unsigned int flags)
I think that we can use all of this, but instead of vol, what we need to recv?
We need the domain object, and the device alias name, eg virDomainOpenDeviceLogFile(virDomainPtr dom, const char *name, unsigned long long offset, unsigned long long length, unsigned int flags); Where name maps to <alias name=.../>. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On 12/3/18 12:06 PM, Daniel P. Berrangé wrote:
On Mon, Dec 03, 2018 at 01:38:45PM +0300, Vasiliy Tolstov wrote:
пн, 3 дек. 2018 г. в 12:27, Daniel P. Berrangé <berrange@redhat.com>:
We don't have any plans to add it, but if someone's interested we'd accept patches. It would need to integrate with our virStream APIs to allow download, in similar way to how virStorageVolDownload() works
What args this function need to receive? VolDownload this args: virStorageVolDownload(virStorageVolPtr vol, virStreamPtr stream, unsigned long long offset, unsigned long long length, unsigned int flags)
I think that we can use all of this, but instead of vol, what we need to recv?
We need the domain object, and the device alias name, eg
virDomainOpenDeviceLogFile(virDomainPtr dom,
virStreamPtr stream,
const char *name, unsigned long long offset, unsigned long long length, unsigned int flags);
We can have it used the same way as virStorageVolDownload: stream = virStreamNew(); virDomainOpenDeviceLogFile(dom, stream, alias, 0, 0, 0); virStreamRecvAll(stream, ...); Michal
participants (3)
-
Daniel P. Berrangé
-
Michal Privoznik
-
Vasiliy Tolstov