Serials console is very helpful to troubleshooting Linux problem, you can see additional system message via serial console if your Linux server hung. It is essential component on physical server for troubleshooting. It’s challenge to manage serial consoles if your datacenter is very big. You may deploy console server for central management of serial consoles, you don’t have to connect your computer with serial console one by one, you just need connect console server IP follow with port name by telnet protocol.
Time comes to today, virtualization world. How you connect serial console of Linux virtual machine? Can we do exactly same like physical server? Answer is YES! There is couple of way to connect serial console of VM, each way has different benefit. I’m going to introduce the best one!
VMware has a KB article 1022303 introduces how to implement virtual console server, but it’s not very clearly, I went to wrong way by follow up the KB.
Deploy Avocent ACS v6000 virtual advanced console server
1. Download the software image from Emerson website.
2. Install the software on console server VM by follow up ACS v6000 Installer/User Guide.
Configure Linux VM serial console
1. Add a serial port to target Linux VM you want to use serial console.
2. Configure the serial port, Select Use Network option.
3. Select Client (VM initiates connection) option.
4. Input ACSID in Port URI field.
5. Select Use Virtual Serial Console Concentrator option.
6. Input telnet://console server ip:8801 in vSPC URI field.
7. Select Yield CPU on poll option.
8. Make sure Connected and Connect at power on options are selected.
Note: It indicates wrong setting on serial port if Connected option goes back to deselect status automatically after you save the setting.
Enable kernel message on Linux VM
1. Login to your target Linux VM by SSH.
2. Copy following strings to SSH, it will enable kernel message on serial console.
cat <<EOFEOF > /etc/init/serial-ttyS0.conf
# This service maintains a getty on /dev/ttyS0.
start on stopped rc RUNLEVEL=[2345]
stop on starting runlevel [016]
respawn
exec /sbin/agetty /dev/ttyS0 115200 vt100-nav
EOFEOF
3. Run following command.
initctl start serial-ttyS0
Enable serial console on Linux VM
1. Edit grub.conf by following command.
vi /boot/grub/grub.conf
2. Add following lines after hiddenmenu option.
serial –unit=1 –speed=19200
terminal –timeout=8 console serial
3. Add following line in each kernel line.
console=tty0 console=ttyS0,115200
4. Reboot VM.
Configure ASC v6000 console server
1. Login management website of ASC v6000 console server.
2. Go to Ports – Serial Ports.
3. Enable ttyS1 device.
4. Go to Access option, you will see the serial console is automatically mapped to serial console of target Linux VM.
Validation
1. Login serial console of target Linux VM via console server by telnet, SSH or serial viewer.
2. Login SSH of target Linux VM directly.
3. On SSH session, run following command to trigger kernel message.
echo h > /proc/sysrq-trigger
4. You will see message on serial console screen.