Add unified logs platform with Helm-managed central Elasticsearch.
Deploy cloudhost-logging on cluster registration, ship app and optional service logs to ES with owner isolation, and fix Kibana 8.12 auth via kibana_system. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
{{- if .Values.elasticsearch.enabled }}
|
||||
{{- $name := include "cloudhost-app.name" . -}}
|
||||
{{- $ns := include "cloudhost-app.namespace" . -}}
|
||||
{{- if .Values.redis.enabled }}
|
||||
{{- $redisName := printf "%s-redis" $name -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ $redisName }}-log-shipper-config
|
||||
namespace: {{ $ns }}
|
||||
data:
|
||||
fluent-bit.conf: |
|
||||
[SERVICE]
|
||||
Flush 5
|
||||
Daemon Off
|
||||
Log_Level info
|
||||
Parsers_File /fluent-bit/etc/parsers.conf
|
||||
[INPUT]
|
||||
Name tail
|
||||
Path /var/log/pods/*{{ $redisName }}*/*/*.log
|
||||
Tag redis.{{ $redisName }}
|
||||
Refresh_Interval 5
|
||||
Parser docker
|
||||
[FILTER]
|
||||
Name record_modifier
|
||||
Match *
|
||||
Record app {{ $name }}
|
||||
Record applicationName {{ $name }}
|
||||
Record namespace {{ $ns }}
|
||||
Record ownerId {{ .Values.elasticsearch.ownerId }}
|
||||
Record applicationId {{ .Values.elasticsearch.applicationId }}
|
||||
Record workload redis
|
||||
[OUTPUT]
|
||||
Name es
|
||||
Match *
|
||||
Host ${ES_HOST}
|
||||
Port ${ES_PORT}
|
||||
HTTP_User elastic
|
||||
HTTP_Passwd ${ES_PASSWORD}
|
||||
Index logs-{{ $ns }}-{{ $name }}
|
||||
Logstash_Format On
|
||||
Logstash_Prefix logs-{{ $ns }}
|
||||
Suppress_Type_Name On
|
||||
tls Off
|
||||
parsers.conf: |
|
||||
[PARSER]
|
||||
Name docker
|
||||
Format json
|
||||
Time_Key time
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L
|
||||
{{- end }}
|
||||
{{- if .Values.rabbitmq.enabled }}
|
||||
{{- $rabbitName := printf "%s-rabbitmq" $name -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ $rabbitName }}-log-shipper-config
|
||||
namespace: {{ $ns }}
|
||||
data:
|
||||
fluent-bit.conf: |
|
||||
[SERVICE]
|
||||
Flush 5
|
||||
Daemon Off
|
||||
Log_Level info
|
||||
Parsers_File /fluent-bit/etc/parsers.conf
|
||||
[INPUT]
|
||||
Name tail
|
||||
Path /var/log/pods/*{{ $rabbitName }}*/*/*.log
|
||||
Tag rabbitmq.{{ $rabbitName }}
|
||||
Refresh_Interval 5
|
||||
Parser docker
|
||||
[FILTER]
|
||||
Name record_modifier
|
||||
Match *
|
||||
Record app {{ $name }}
|
||||
Record applicationName {{ $name }}
|
||||
Record namespace {{ $ns }}
|
||||
Record ownerId {{ .Values.elasticsearch.ownerId }}
|
||||
Record applicationId {{ .Values.elasticsearch.applicationId }}
|
||||
Record workload rabbitmq
|
||||
[OUTPUT]
|
||||
Name es
|
||||
Match *
|
||||
Host ${ES_HOST}
|
||||
Port ${ES_PORT}
|
||||
HTTP_User elastic
|
||||
HTTP_Passwd ${ES_PASSWORD}
|
||||
Index logs-{{ $ns }}-{{ $name }}
|
||||
Logstash_Format On
|
||||
Logstash_Prefix logs-{{ $ns }}
|
||||
Suppress_Type_Name On
|
||||
tls Off
|
||||
parsers.conf: |
|
||||
[PARSER]
|
||||
Name docker
|
||||
Format json
|
||||
Time_Key time
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L
|
||||
{{- end }}
|
||||
{{- if .Values.database.enabled }}
|
||||
{{- $dbName := include "cloudhost-app.dbDeploymentName" . -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ $dbName }}-log-shipper-config
|
||||
namespace: {{ $ns }}
|
||||
data:
|
||||
fluent-bit.conf: |
|
||||
[SERVICE]
|
||||
Flush 5
|
||||
Daemon Off
|
||||
Log_Level info
|
||||
Parsers_File /fluent-bit/etc/parsers.conf
|
||||
[INPUT]
|
||||
Name tail
|
||||
Path /var/log/pods/*{{ $dbName }}*/*/*.log
|
||||
Tag database.{{ $dbName }}
|
||||
Refresh_Interval 5
|
||||
Parser docker
|
||||
[FILTER]
|
||||
Name record_modifier
|
||||
Match *
|
||||
Record app {{ $name }}
|
||||
Record applicationName {{ $name }}
|
||||
Record namespace {{ $ns }}
|
||||
Record ownerId {{ .Values.elasticsearch.ownerId }}
|
||||
Record applicationId {{ .Values.elasticsearch.applicationId }}
|
||||
Record workload database
|
||||
[OUTPUT]
|
||||
Name es
|
||||
Match *
|
||||
Host ${ES_HOST}
|
||||
Port ${ES_PORT}
|
||||
HTTP_User elastic
|
||||
HTTP_Passwd ${ES_PASSWORD}
|
||||
Index logs-{{ $ns }}-{{ $name }}
|
||||
Logstash_Format On
|
||||
Logstash_Prefix logs-{{ $ns }}
|
||||
Suppress_Type_Name On
|
||||
tls Off
|
||||
parsers.conf: |
|
||||
[PARSER]
|
||||
Name docker
|
||||
Format json
|
||||
Time_Key time
|
||||
Time_Format %Y-%m-%dT%H:%M:%S.%L
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user