Sending Proxmox VE 8 Syslogs to a Log Aggregator

A cartoony image of a freight ship carring lots of chopped trees/logs. Log shipping... get it?

A Log Aggregator or Log Management system allows you to delve into system and software logs for many machines, or create alerts for particular issues for all hosts in one place, rather than individually on each system.

This makes identifying issues/faults easier and faster, and allows you to create alerts and pre-empt future problems.

Aside from the sysadmin's 'software broken, must fix' point of view, this has security benefits as you can use this data to establish system baselines and identify anomalies more easily as a result.

The last benefit, specifically in the context of Proxmox and virtualisation: If you're writing logs pretty constantly, that's disk I/O that could be used better by your VMs or containers. Or perhaps you want to network boot your VM compute nodes, write logs to one location, and use network storage for VM/containers.

This post will cover configuring Proxmox VE 8 (and actually, VE 7 or pretty much any Debian-based system) to send syslogs to a remote syslog server.

Prerequisites

Before proceeding, ensure you have:

  • A running Proxmox VE 8 server (or other applicable Debian system).
  • Access to the Proxmox VE web interface or SSH.
  • A remote syslog server (e.g., Syslog-NG, graylog) that is configured to receive logs over the network.

Configuration Steps

1. Accessing Proxmox VE

Log in to your Proxmox VE server via SSH or through the web console. If you're using SSH, the command might look like this:

ssh root@your_proxmox_server_ip

2. Configuring Rsyslog on Proxmox VE

Proxmox VE uses rsyslog for managing system logs. You will need to configure rsyslog to forward logs to your remote syslog server.

Edit the Rsyslog Configuration

Open the rsyslog configuration file in your preferred text editor, such as nano or vim:

nano /etc/rsyslog.conf
💡
If for some reason this file doesn't exist, and your Debian system doesn't have rsyslog already installed, run: sudo apt-get install rsyslog

Add the Remote Syslog Server

At the end of the file, add the following line to forward all logs to your remote syslog server:

*.* @your_syslog_server_ip:514

The *.* specifies that logs of all 'facilities' and levels should be forwarded. The @ symbol followed by the IP address (or hostname) and port (514 is the standard syslog port) tells rsyslog where to send the logs.

If your remote server is using TCP instead of the traditional UDP, use a double @@:

*.* @@your_syslog_server_ip:514

Save and Exit

After adding the remote syslog server configuration, save the changes and exit the text editor.

3. Restarting Rsyslog

For the changes to take effect, restart the rsyslog service on the Proxmox VE server:

systemctl restart rsyslog

4. Verifying the Configuration

To ensure that the logs are being sent to the remote syslog server, check the logs on the remote server. The specific steps for this will depend on the syslog server you're using.

Conclusion

Setting up Proxmox VE to send syslogs to a remote syslog host is a straightforward process that enhances your log management capabilities. By centralising your logs, you can more easily monitor all activities within your virtualised environment, leading to improved performance and security.

Remember to regularly check your syslog server to ensure that it's correctly receiving and storing logs from your Proxmox VE server(s)! It's pretty useless if you're shipping logs elsewhere just to realise that your syslog server ran out of your space months ago...



Great! Next, complete checkout for full access to techbits.io
Welcome back! You've successfully signed in
You've successfully subscribed to techbits.io
Success! Your account is fully activated, you now have access to all content
Success! Your billing info has been updated
Your billing was not updated