Hello,

I am trying to build a custom rsyslog server docker image as follows =

1) Dockerfile

# Use an official Ubuntu as a parent image
FROM ubuntu:latest

# Update the package repository and install rsyslog
RUN apt-get update && \
apt-get install -y rsyslog

# Copy your custom rsyslog configuration file into the container
# Make sure to replace 'your_rsyslog.conf' with your actual configuration file
COPY rsyslog.conf /etc/rsyslog.d/

# Expose the port Rsyslog will listen on (e.g., 514 for syslog)
EXPOSE 514

# Start Rsyslog in the foreground
CMD ["rsyslogd", "-n"]


2) rsyslog.conf

# Load necessary modules
module(load="imuxsock") # Provides support for local system logging
module(load="imklog") # Provides kernel logging support
module(load="imtcp") # Provides TCP syslog reception


# Enable TCP syslog reception
input(type="imtcp" port="514")

# Set global directives
global(workDirectory="/var/spool/rsyslog") # Set the working directory
for state files

# Define a template for log formatting (optional)
template(name="RemoteLogFormat" type="string" string="%timegenerated%
%HOSTNAME% %syslogtag%%msg%\n")

# Define actions: where to save logs
# Store logs from remote hosts in separate files based on hostname
action(type="omfile"
file="/var/log/remote/%HOSTNAME%.log"
template="RemoteLogFormat")

# Include all config files in /etc/rsyslog.d/
include(file="/etc/rsyslog.d/*.conf")

3) rsyslog-server-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
name: rsyslog
namespace: poc
spec:
replicas: 1
selector:
matchLabels:
app: rsyslog
template:
metadata:
labels:
app: rsyslog
spec:
containers:
- name: rsyslog
image: myrepo/image1
volumeMounts:
- name: config-volume
mountPath: /etc/rsyslog.conf
subPath: rsyslog.conf
- name: log-volume
mountPath: /var/log
volumes:
- name: config-volume
configMap:
name: rsyslog-config
- name: log-volume
emptyDir: {}

4) configmap

apiVersion: v1
kind: ConfigMap
metadata:
name: rsyslog-config
namespace: gcs-logging-poc
data:
rsyslog.conf: |
# Rsyslog configuration
module(load="imuxsock") # For listening to the system log socket
module(load="imklog") # For kernel logging
module(load="imtcp") # For TCP reception
module(load="imudp") # For UDP reception
module(load="imfile" PollingInterval="10") # Module to read log files

*.* action(type="omfile" file="/var/log/containers/*.log")

input(type="imtcp" port="514")

input(type="imfile"
File="/var/log/containers/*.log"
Tag="dynamic-log"
StateFile="dynamic-state"
Severity="info"
Facility="local0")

input(type="imfile"
File="/var/log/containers/*.log" # Watch all container logs
)

5) service.yaml

apiVersion: v1
kind: Service
metadata:
name: rsyslog
namespace: poc
spec:
selector:
app: rsyslog
ports:
- protocol: TCP
port: 514
targetPort: 514


Errors after deploying in k8s =

 rsyslogd 8.2312.0: running as pid 1, enabling container-specific
defaults, press ctl-c to terminate rsyslog
                                  │
│ rsyslogd: error during parsing file /etc/rsyslog.conf, on or before
line 17: parameter 'statefile' deprecated but accepted, consider
removing or replacing it [v8.2312.0  │
│ rsyslogd: error during parsing file /etc/rsyslog.conf, on or before
line 23: parameter 'tag' required but not specified - fix config
[v8.2312.0 try https://www.rsyslog.c │
│ rsyslogd: imudp: module loaded, but no listeners defined - no input
will be gathered [v8.2312.0 try https://www.rsyslog.com/e/2212 ]
                               │
│ rsyslogd: imfile: no working or state file directory set, imfile
will create state files in the current working directory (probably the
root dir). Use global(workDirecto │
│ rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not
permitted.
                              │
│ rsyslogd: activation of module imklog failed [v8.2312.0 try
https://www.rsyslog.com/e/2145 ]

Any thoughts on how to fix this issue? Thanks.

Regards,
Amey.
_______________________________________________
rsyslog mailing list
https://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to