By default GRUB for Ubuntu 16.04 doesn't provide connectivity via the console. As such this needs to be added and you will then be able to connect to the VM using:
virsh console VM-NAME
The first step is to mount the guest VM to a directory on the host such that GRUB on the guest can be edited. Run the following command on the host to mount the VM to a directory for editing:
sudo guestmount -d VM-NAME -i /mnt
Save the file and edit grub with the following:
sudo nano /mnt/etc/default/grub
Change the following line from:
GRUB_CMDLINE_LINUX=''
to
GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,19200n8'
The next step is to edit grub.cfg and add the ability to connect to the VM using the console:
sudo nano /mnt/boot/grub/grub.cfg
Scroll down to the section with the entry menuentry 'Ubuntu' –class ubuntu –class gnu-linux and add the following after the letters ro on the line starting with linux:
console=ttyS0,19200 earlyprint=serial,ttyS0,19200
The line will look something like the following:
linux /boot/vmlinuz-4.4.0-92-generic root=UUID=cabab962-f23c-4a36-a5bd-0e43df6cff40 ro console=ttyS0,19200 earlyprint=serial,ttyS0,19200 quiet splash $vt_handoff
Save the file, and unmount the VM's filesystem using the following:
sudo guestunmount /mnt
Finally, restart the VM and connect to it's console as follows:
virsh start VM-NAME && virsh console VM-NAME