Some checks failed
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
171 lines
3.7 KiB
Markdown
171 lines
3.7 KiB
Markdown
# Syslog Manual Testing
|
|
|
|
Please note: You will need an enterprise licence in n8n to configure this.
|
|
|
|
## With TCP
|
|
|
|
### Step 1 - Configure and start syslog-ng
|
|
|
|
Create a new directory to contain your syslog config (doesn't have to be the home dir):
|
|
|
|
```sh
|
|
mkdir -p ~/syslog-tcp-test && cd ~/syslog-tcp-test
|
|
```
|
|
|
|
Create a file `syslog-ng.conf` and paste the following content:
|
|
|
|
```
|
|
@version: 4.10
|
|
@include "scl.conf"
|
|
|
|
source s_tcp {
|
|
network(
|
|
transport("tcp")
|
|
port(514)
|
|
flags(no-parse)
|
|
);
|
|
};
|
|
|
|
destination d_console {
|
|
file("/proc/1/fd/1" template("RECEIVED: $MSG\n"));
|
|
};
|
|
|
|
log {
|
|
source(s_tcp);
|
|
destination(d_console);
|
|
flags(flow-control);
|
|
};
|
|
```
|
|
|
|
Start a local instance with docker and validate it is working
|
|
|
|
```shell
|
|
docker run -d \
|
|
--name syslog-ng-tcp \
|
|
-p 514:514 \
|
|
-v $(pwd)/syslog-ng.conf:/etc/syslog-ng/syslog-ng.conf:ro \
|
|
balabit/syslog-ng:latest
|
|
|
|
# In one window
|
|
docker logs -f syslog-ng-tcp
|
|
|
|
# In another window
|
|
echo "test message" | nc -v localhost 514
|
|
|
|
# You should see the message in the window tailing the logs
|
|
```
|
|
|
|
### Step 2 - Configure log streaming in n8n
|
|
Head to n8n log streaming settings and enter the following:
|
|
```
|
|
Host: localhost
|
|
Port: 514
|
|
Protocol: TCP
|
|
Facility: Local0
|
|
App Name: n8n
|
|
```
|
|
Once saved you can send a test message and validate it is received using the `docker logs syslog-ng-tcp` command.
|
|
|
|
## With TLS
|
|
|
|
These instructions will help you setup a syslog server that will accept TLS connections. They will be useful if you need
|
|
to manually validate anything specific around TLS & syslog configuration.
|
|
|
|
### Step 1 - Setup Test Certs
|
|
```shell
|
|
mkdir -p ~/syslog-tls-test && cd ~/syslog-tls-test
|
|
|
|
# CA certificate
|
|
openssl req -x509 -newkey rsa:4096 \
|
|
-keyout ca-key.pem \
|
|
-out ca-cert.pem \
|
|
-days 365 -nodes \
|
|
-subj "/CN=Test CA/O=Test Org"
|
|
|
|
# Server key
|
|
openssl genrsa -out server-key.pem 4096
|
|
|
|
# Server certificate signing request
|
|
openssl req -new \
|
|
-key server-key.pem \
|
|
-out server-csr.pem \
|
|
-subj "/CN=localhost/O=Test Server"
|
|
|
|
# Sign server certificate using CA
|
|
openssl x509 -req \
|
|
-in server-csr.pem \
|
|
-CA ca-cert.pem \
|
|
-CAkey ca-key.pem \
|
|
-CAcreateserial \
|
|
-out server-cert.pem \
|
|
-days 365 \
|
|
-sha256
|
|
```
|
|
|
|
### Step 2 - Configure and start syslog-ng
|
|
Create a file `syslog-ng.conf` and paste the following content:
|
|
|
|
```
|
|
@version: 4.10
|
|
@include "scl.conf"
|
|
|
|
source s_tls {
|
|
network(
|
|
transport("tls")
|
|
port(6514)
|
|
flags(no-parse)
|
|
tls(
|
|
key-file("/certs/server-key.pem")
|
|
cert-file("/certs/server-cert.pem")
|
|
peer-verify(optional-untrusted)
|
|
)
|
|
);
|
|
};
|
|
|
|
destination d_console {
|
|
file("/proc/1/fd/1" template("RECEIVED: $MSG\n"));
|
|
};
|
|
|
|
log {
|
|
source(s_tls);
|
|
destination(d_console);
|
|
flags(flow-control);
|
|
};
|
|
```
|
|
|
|
Start a local instance with docker and validate it is working
|
|
|
|
```shell
|
|
docker run -d \
|
|
--name syslog-ng-tls \
|
|
-p 6514:6514 \
|
|
-v $(pwd)/ca-cert.pem:/certs/ca-cert.pem:ro \
|
|
-v $(pwd)/server-cert.pem:/certs/server-cert.pem:ro \
|
|
-v $(pwd)/server-key.pem:/certs/server-key.pem:ro \
|
|
-v $(pwd)/syslog-ng.conf:/etc/syslog-ng/syslog-ng.conf:ro \
|
|
balabit/syslog-ng:latest
|
|
|
|
# In one window
|
|
docker logs -f syslog-ng-tls
|
|
|
|
# In another window
|
|
echo 'TEST MESSAGE' | \
|
|
openssl s_client -connect localhost:6514 -CAfile ca-cert.pem -ign_eof 2>&1
|
|
|
|
# You should see the message in the window tailing the logs
|
|
```
|
|
|
|
### Step 3 - Configure log streaming in n8n
|
|
Head to n8n log streaming settings and enter the following:
|
|
```
|
|
Host: localhost // This is important as the certificate CN=localhost
|
|
Port: 6514
|
|
Protocol: TLS
|
|
TlsCa: Paste the contents of ca-cert.pem created in step 1
|
|
Facility: Local0
|
|
App Name: n8n
|
|
```
|
|
Once saved you can send a test message and validate it is received using the `docker logs syslog-ng-tls` command.
|
|
|
|
Most problems result in a log in the n8n system - error feedback will hopefully be improved in
|