Skip to content

Conversation

@analytically
Copy link
Contributor

Document configuration and usage of the syslog drainer for forwarding build logs to external syslog servers via TCP, UDP, or TLS transport.

Fixes #488

Document configuration and usage of the syslog drainer for forwarding
build logs to external syslog servers via TCP, UDP, or TLS transport.

Fixes concourse#488

Signed-off-by: Mathias Bogaert <[email protected]>
Copy link
Member

@taylorsilva taylorsilva left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay I think I've validated that most of the info here is correct. I mostly cross-referenced by looking at the syslog code.

For transparency, can you list the LLM(s) used to assist you with writing this PR? TY!

--syslog-ca-cert /etc/concourse/ca-cert2.pem
}}}

Environment variable: \code{CONCOURSE_SYSLOG_CA_CERT} (can be specified multiple times)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Env vars can't be specified multiple times. When using the env vars users need to pass in a comma separated list of file paths.

CONCOURSE_SYSLOG_CA_CERT=/etc/concourse/ca-cert1.pem,/etc/concourse/ca-cert2.pem

Example of this: https://concourse-ci.org/concourse-worker.html#pointing-to-external-dns-servers

Comment on lines +312 to +313
# Verify the component is configured (look for ComponentSyslogDrainer)
curl http://web-node:8080/api/v1/info
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +259 to +281
\section{
\title{BOSH Deployment}

For BOSH deployments, configure in your deployment manifest:

\codeblock{yaml}{{{
instance_groups:
- name: web
jobs:
- name: web
properties:
syslog:
address: syslog.example.com:514
transport: tcp
hostname: concourse-prod
drain_interval: 30s
ca_certs:
- |
-----BEGIN CERTIFICATE-----
MIIDQTCCAimgAwIBAgITBmyfz...
-----END CERTIFICATE-----
}}}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docs as they currently are, avoid packaging specific instructions for both the Bosh release and Helm chart. Also kinda weird that you added steps for Bosh but not Helm. I'd remove this section.

Suggested change
\section{
\title{BOSH Deployment}
For BOSH deployments, configure in your deployment manifest:
\codeblock{yaml}{{{
instance_groups:
- name: web
jobs:
- name: web
properties:
syslog:
address: syslog.example.com:514
transport: tcp
hostname: concourse-prod
drain_interval: 30s
ca_certs:
- |
-----BEGIN CERTIFICATE-----
MIIDQTCCAimgAwIBAgITBmyfz...
-----END CERTIFICATE-----
}}}
}

Monitor the syslog drainer through:

\list{
\bold{Web logs} - Look for \code{syslog.drainer} log entries for errors
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the code, I don't think the built-up logger would emit as syslog.drainer. The base name syslog is right (see), but I think the drainer part would actually be drain-build based on this line further down in the same file.

Suggested change
\bold{Web logs} - Look for \code{syslog.drainer} log entries for errors
\bold{Web logs} - Look for \code{syslog.drain} log entries for errors

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe the LLM was looking here? https://github.com/concourse/concourse/blob/750ce8b641a756fb26caa1571d91f8e0955f2ab8/atc/atccmd/command.go#L804-L807

Even then, it looks like the component name ends up as drainer-drainer (1, 2)

So in the logs the full string for this component might be drainer.drain.syslog.drain-build 😕

Anyways, definitely doesn't look like syslog.drainer would ever be found in the logs, unless I'm reading the code wrong, which is very possible! The way the logger builds up is stretched over many files 😅

@taylorsilva taylorsilva moved this from Todo to Waiting on Contributor in Pull Requests Nov 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Waiting on Contributor

Development

Successfully merging this pull request may close these issues.

Document syslog format

2 participants