Lagoon Logging#
Lagoon integrates with OpenSearch to store application, container and router logs. Lagoon Logging collects the application, router and container logs from Lagoon projects, and sends them to the logs concentrator. It needs to be installed onto each lagoon-remote
instance.
In addition, it should be installed in the lagoon-core
cluster to collect logs from the lagoon-core
service. This is configured in the LagoonLogs
section.
Logging Overview: Lucid Chart
See also: Logging.
Read more about Lagoon logging here: https://github.com/uselagoon/lagoon-charts/tree/main/charts/lagoon-logging
-
Create
lagoon-logging-values.yaml
:lagoon-logging-values.yamltls: caCert: | << content of ca.pem from Logs-Concentrator>> clientCert: | << content of client.pem from Logs-Concentrator>> clientKey: | << content of client-key.pem from Logs-Concentrator>> forward: username: <<Username for Lagoon Remote 1>> password: <<Password for Lagoon Remote 1>> host: <<ExternalIP of Logs-Concentrator Service LoadBalancer>> hostName: <<Hostname in Server Cert of Logs-Concentrator>> hostPort: '24224' selfHostname: <<Hostname in Client Cert of Logs-Concentrator>> sharedKey: <<Generated ForwardSharedKey of Logs-Concentrator>> tlsVerifyHostname: false clusterName: <<Short Cluster Identifier>> logsDispatcher: serviceMonitor: enabled: false logging-operator: monitoring: serviceMonitor: enabled: false lagoonLogs: enabled: true rabbitMQHost: lagoon-core-broker.lagoon-core.svc.cluster.local rabbitMQUser: lagoon rabbitMQPassword: <<RabbitMQ Lagoon Password>> excludeNamespaces: {}
-
Install
lagoon-logging
:
Logging NGINX Ingress Controller#
If you'd like logs from ingress-nginx
inside lagoon-logging
:
- The ingress controller must be installed in the namespace
ingress-nginx
-
Add the content of this file to
ingress-nginx
:ingress-nginx log-format-upstreamcontroller: config: log-format-upstream: >- { "time": "$time_iso8601", "remote_addr": "$remote_addr", "x-forwarded-for": "$http_x_forwarded_for", "true-client-ip": "$http_true_client_ip", "req_id": "$req_id", "remote_user": "$remote_user", "bytes_sent": $bytes_sent, "request_time": $request_time, "status": "$status", "host": "$host", "request_proto": "$server_protocol", "request_uri": "$uri", "request_query": "$args", "request_length": $request_length, "request_time": $request_time, "request_method": "$request_method", "http_referer": "$http_referer", "http_user_agent": "$http_user_agent", "namespace": "$namespace", "ingress_name": "$ingress_name", "service_name": "$service_name", "service_port": "$service_port" }
-
Your logs should start flowing!