Linux – Bag of Tricks
Summary
This is to setup a logging server to capture logs from any servers on your network.
Prerequisites
Install of a RedHat or Rocky Linux minimal install
Configuration
You will need to edit the file "/etc/rsyslog.conf"
Editing the file
vi /etc/rsyslog.conf You will need to change to the following to allow port 514 to be open
# Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html module(load="imudp") # needs to be done just once input(type="imudp" port="514") # Provides TCP syslog reception # for parameters see http://www.rsyslog.com/doc/imtcp.html module(load="imtcp") # needs to be done just once input(type="imtcp" port="514") Then simply restart the rsyslog deamon
systemctl restart rsyslog Multi Host Logging to one server
vi /etc/rsyslog Add the following
Before this entry "#### RULES ####"
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" . ?RemoteLogs This will enable for all host/servers to log to their own folders
The entry should look like this
# Provides TCP syslog reception # for parameters see http://www.rsyslog.com/doc/imtcp.html module(load="imtcp") # needs to be done just once input(type="imtcp" port="514") #custom $template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?RemoteLogs & ~ #### RULES #### The directive $template tells , rsyslog daemon to gather and write all of the received remote messages to seperate logs under /var/log, based on the hostname (client machine name) and remote client facility (program/application) that generated the messages as defined by the settings present in the template RemoteLogs. The second line “*.* ?RemoteLogs” means record messages from all facilities at all severity levels using the RemoteLogs template configuration. The third lines makes the append happen.
Setup Log Rotate
Create a log file configuration file
vi /etc/logrotate.d/sfl then add the following, and change the ending folder name(s)
/var/log/sfl* /var/log/SFL* /var/log/vcenter* /var/log/MFB* /var/log/mfb* { rotate 2 maxsize 200k daily } Run to make sure the config is good
logrotate -d /etc/logrotate.d/sfl Setup Host Servers
This is what to setup on the servers you wish to log to one server
You must login to the server and then edit the following file
vi /etc/rsyslog.conf Once opened you have to add at the end of the file the following to log everything
*.* @192.168.253.86:514 # use @ for UDP Protocal *.* @@192.168.253.86:514 # use @@ for TCP Protocal You can also setup specific logging by doing the following
auth.* @192.168.253.86:514 # only for authentication based records Results
This is what your folder will look like with the host name of the server or device
drwx------ 2 root root 42 Aug 29 22:30 RT-AC5300-RANGE-25D1EC7-C drwx------ 2 root root 82 Aug 29 22:32 SFL-LIN-000 drwx------ 2 root root 87 Aug 29 22:32 sfl-web-004 This is a look within a folder of a server
[/var/log]# cd SFL-LIN-000/ root@SFL-LIN-000.ONLING.COM : Linux : Thu Aug 29 22:35:01 : [/var/log/SFL-LIN-000]# ls -lrt total 16 -rw------- 1 root root 850 Aug 29 22:30 rsyslogd.log -rw------- 1 root root 56 Aug 29 22:32 sssd_kcm.log -rw------- 1 root root 948 Aug 29 22:32 systemd.log -rw------- 1 root root 251 Aug 29 22:32 CROND.log