From be34c53ed50392fa3342e17cfb33504e166805ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pascal=20Pfl=C3=BCger?= <pascal.pflueger@t-systems.com>
Date: Mon, 24 Jun 2024 10:39:46 +0200
Subject: [PATCH 1/7] add CODEOWNERS

---
 .gitlab/CODEOWNERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS
index 8cc70c3..4b9b26a 100644
--- a/.gitlab/CODEOWNERS
+++ b/.gitlab/CODEOWNERS
@@ -1 +1 @@
-* @simpl/simpl-open/development/monitoring @n00bagqb
+* @simpl/simpl-open/development/monitoring @n00bagqb
\ No newline at end of file
-- 
GitLab


From 05f3dd6d54828b3db761dee27784b10c303daa02 Mon Sep 17 00:00:00 2001
From: "Natalia Szakiel (ext)" <natalia.szakiel.external@eviden.com>
Date: Tue, 19 Nov 2024 15:17:52 +0100
Subject: [PATCH 2/7] logstash and filebeat adjustments

---
 charts/values/dev/observability/values.yaml | 170 ++++++++++----------
 1 file changed, 81 insertions(+), 89 deletions(-)

diff --git a/charts/values/dev/observability/values.yaml b/charts/values/dev/observability/values.yaml
index 1114e68..962a0bb 100644
--- a/charts/values/dev/observability/values.yaml
+++ b/charts/values/dev/observability/values.yaml
@@ -110,17 +110,48 @@ logstash:
         }
       filter: |-
         filter {
-          if [kubernetes][container][name] == "ejbca-community-helm" {
-            grok {
-              match => { 
-                "message" => [
-                  '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:loglevel}%{SPACE}\[%{JAVACLASS:logger}\]%{SPACE}\(%{DATA:thread}\)%{SPACE}%{GREEDYDATA:message}', 
-                  '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:loglevel}%{SPACE}\[%{PATH:path}\]%{SPACE}\(%{DATA:thread}\)%{SPACE}%{GREEDYDATA:message}'
-                  ] 
-              }
-              overwrite => [ "message" ]
+          ## removing ELK logs
+          if [kubernetes][container][name] == "filebeat" or [kubernetes][container][name] == "metricbeat" or [kubernetes][container][name] == "logstash" or [kubernetes][container][name] == "heartbeat"  or [kubernetes][container][name] == "kibana" or [kubernetes][container][name] == "elasticsearch" {
+            drop { }
+          }    
+          
+          if [kubernetes][container][name] == "sd-creation-wizard-api" or [kubernetes][container][name] == "signer" 	or [kubernetes][container][name] == "sd-creation-wizard-api-validation" or [kubernetes][container][name] == "simpl-cloud-gateway"  {
+            json {
+                    source => "message"
+                    skip_on_invalid_json => true
+                }
+          }
+              
+          if [kubernetes][container][name] == "users-roles" {
+
+            json {
+                    source => "message"
+                    skip_on_invalid_json => true
+                }
+
+
+            ruby {
+                code => '
+                    if event.get("[message]").is_a?(Hash)
+                        event.set("is_json_message", true)
+                    else
+                        event.set("is_json_message", false)
+                    end
+                '
             }
+              
+            if [is_json_message] {
+              if [message][httpStatus] { mutate { add_field => { "httpStatus" => "%{[message][httpStatus]}" } } }
+              if [message][msg] { mutate { add_field => { "msg" => "%{[message][msg]}" } } }
+              if [message][httpRequestSize] { mutate { add_field => { "httpRequestSize" => "%{[message][httpRequestSize]}" } } }
+              if [message][user] { mutate { add_field => { "user" => "%{[message][user]}" } } }
+              if [message][httpExecutionTime] { mutate { add_field => { "httpExecutionTime" => "%{[message][httpExecutionTime]}" } } }
+              
+              mutate { remove_field => [ "[message]" ] }
+              
+            } 
           }
+
           if [kubernetes][container][name] == "keycloak" {
             grok {
               match => { 
@@ -131,21 +162,7 @@ logstash:
               overwrite => [ "message" ]
             }
           }
-          if [kubernetes][container][name] == "onboarding" {
-            grok {
-              pattern_definitions => { "JAVA" => "[0-9A-Za-z\[\]\.\$]*" }
-              match => { 
-                "message" => [
-                  '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:loglevel}%{SPACE}\[%{JAVACLASS:logger}\]%{SPACE}\(%{DATA:thread}\)%{SPACE}%{GREEDYDATA:message}', 
-                  '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{WORD:loglevel}%{SPACE}\[%{PATH:path}\]%{SPACE}\(%{DATA:thread}\)%{SPACE}%{GREEDYDATA:message}',
-                  '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{LOGLEVEL:loglevel}%{SPACE}%{NUMBER:pid}%{SPACE}---%{SPACE}\[%{DATA:thread}\]%{SPACE}%{JAVACLASS:logger}%{SPACE}:%{SPACE}\[%{DATA:request_id}\]%{SPACE}HTTP%{SPACE}%{WORD:http_method}%{SPACE}"%{DATA:uri}"',
-                  '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{LOGLEVEL:loglevel}%{SPACE}%{NUMBER:pid}%{SPACE}---%{SPACE}\[%{DATA:thread}\]%{SPACE}%{JAVA:logger}%{SPACE}:%{SPACE}%{GREEDYDATA:message}',
-                  '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{LOGLEVEL:loglevel}%{SPACE}%{NUMBER:pid}%{SPACE}---%{SPACE}\[%{DATA:thread}\]%{SPACE}%{DATA:logger}%{SPACE}:%{SPACE}\[%{DATA:request_id}\]%{SPACE}%{GREEDYDATA:message}'
-                ] 
-              }
-              overwrite => [ "message" ]
-            }
-          }
+
           if [kubernetes][container][name] == "postgresql" {
             grok {
               match => { 
@@ -156,67 +173,17 @@ logstash:
               overwrite => [ "message" ]
             }
           }
-          if [kubernetes][container][name] == "vault" or [kubernetes][container][name] == "vault-agent-init" or [kubernetes][container][name] == "sidecar-injector" {
-            grok {
-              match => { 
-                "message" => [
-                    '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}\[%{LOGLEVEL:loglevel}\]%{SPACE}%{DATA:handler}:%{SPACE}%{GREEDYDATA:message}' 
-                   
-
-                ]
-              }
-              overwrite => [ "message" ]
-            }
-          }
-          if [kubernetes][container][name] == "simpl-cloud-gateway" or [kubernetes][container][name] == "users-roles" {
-            grok {
-              match => { 
-                "message" => [
-                    '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{LOGLEVEL:loglevel}%{SPACE}%{NUMBER:pid}%{SPACE}---%{SPACE}\[%{DATA:thread}\]%{SPACE}%{JAVACLASS:logger}%{SPACE}:%{SPACE}%{GREEDYDATA:message}' 
-                ]
-              }
-              overwrite => [ "message" ]
-            }
-          }
-          if [kubernetes][container][name] == "neo4j" {
-            grok {
-              match => { 
-                "message" => [
-                    '%{TIMESTAMP_ISO8601:timestamp}%{SPACE}%{LOGLEVEL:loglevel}%{SPACE}%{GREEDYDATA:message}' 
-                ]
-              }
-              overwrite => [ "message" ]
-            }
-          }
-          if [kubernetes][container][name] == "redis" {  
-            grok {
-              match => { 
-                "message" => [
-                     '%{NUMBER:process_id}:%{WORD:process_type}%{SPACE}%{MONTHDAY:day}%{SPACE}%{MONTH:month}%{SPACE}%{YEAR:year}%{SPACE}%{TIME:time}\.%{INT:milliseconds}%{SPACE}\*%{SPACE}%{GREEDYDATA:message}'
-                  ]
-                }
-              overwrite => [ "message" ]
-              add_field => {
-                "timestamp" => "%{day} %{month} %{year} %{time}.%{milliseconds}"
-              }
-            }
-            
             
-          }
-
-           if [fields][logtype] == "logs-sample-business" {
-            grok {
-              match => { "message" => '%{TIMESTAMP_ISO8601:timestamp}\|%{WORD:origin}\|%{WORD:destination}\|%{WORD:business_operation}\|%{DATA:message_type}\|%{WORD:correlation_id}' }
-            }
-          }  
-          
-            date {
-              match => [ "timestamp", "yyyy-MM-dd HH:mm:ss.SSS", "ISO8601", "yyyy-MM-dd HH:mm:ss", "dd MMM yyyy HH:mm:ss.SSS" ]
-            } 
+          date {
+            match => [ "timestamp", "yyyy-MM-dd HH:mm:ss.SSS", "ISO8601", "yyyy-MM-dd HH:mm:ss", "dd MMM yyyy HH:mm:ss.SSS"]
+          } 
+          date {
+            match => [ "ts", "yyyy-MM-dd HH:mm:ss.SSS", "ISO8601", "yyyy-MM-dd HH:mm:ss", "dd MMM yyyy HH:mm:ss.SSS"]
+          } 
         }
       output: |-
         output {
-          if [fields][logtype] == "logs-sample-business" {
+          if [kubernetes][container][name] == "simpl-cloud-gateway" {
             elasticsearch {
             hosts => [ "${ELASTIC_ELASTICSEARCH_ES_HOSTS}" ]
             user => "${LOGSTASH_USER}"
@@ -388,34 +355,59 @@ filebeat4agents:
     filebeat.autodiscover:
       providers:
         - type: kubernetes
+          # Filter logs only from the monitored namespace
+          namespace: "${MONITORED_NAMESPACE}"
           templates:
+            # Condition for redis container in the monitored namespace
             - condition:
-                or: 
-                  - equals:
-                      kubernetes.namespace: "${MONITORED_NAMESPACE}"
+                equals:
+                  kubernetes.container.name: "redis"
               config:
                 - type: container
                   paths:
                     - /var/log/containers/*-${data.kubernetes.container.id}.log
                   multiline:
-                    type: pattern
-                    pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
+                    pattern: '^\d+:\w+\s+\d{2}\s+\w{3}\s+\d{4}'
                     negate: true
                     match: after
+            # Condition for json structured logs
             - condition:
-                equals:
-                  kubernetes.container.name: "redis"  
+                or:
+                  - equals:
+                      kubernetes.container.name: "users-roles"
+                  - equals:
+                      kubernetes.container.name: "signer"
+                  - equals:
+                      kubernetes.container.name: "sd-creation-wizard-api"
+                  - equals:
+                      kubernetes.container.name: "sd-creation-wizard-api-validation"
+                  - equals:
+                      kubernetes.container.name: "simpl-cloud-gateway"
+              config:
+                - type: container
+                  paths:
+                    - /var/log/containers/*-${data.kubernetes.container.id}.log
+            # Condition for plain text logs
+            - condition:
+                or:
+                  - equals:
+                      kubernetes.container.name: "keycloak"
+                  - equals:
+                      kubernetes.container.name: "postgresql"
               config:
                 - type: container
                   paths:
                     - /var/log/containers/*-${data.kubernetes.container.id}.log
                   multiline:
-                    pattern: '^\d+:\w+\s+\d{2}\s+\w{3}\s+\d{4}'  
+                    type: pattern
+                    pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
                     negate: true
                     match: after
     processors:
+      # Add cloud and host metadata
       - add_cloud_metadata: {}
       - add_host_metadata: {}
+
   output: |
     output.logstash:
       hosts: ["${LOGSTASH_HOSTS}"]
-- 
GitLab


From 820320e839db494f0fb0f8883f49c3e24577b4bd Mon Sep 17 00:00:00 2001
From: "Natalia Szakiel (ext)" <natalia.szakiel.external@eviden.com>
Date: Tue, 19 Nov 2024 15:39:06 +0100
Subject: [PATCH 3/7] version fix

---
 charts/Chart.yaml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/charts/Chart.yaml b/charts/Chart.yaml
index f21aa4e..c36e45d 100644
--- a/charts/Chart.yaml
+++ b/charts/Chart.yaml
@@ -1,6 +1,6 @@
 name: eck-monitoring
-version: ${PROJECT_RELEASE_VERSION}
-appVersion: "${PROJECT_RELEASE_VERSION}"
-#version: 0.1.0
+#version: ${PROJECT_RELEASE_VERSION}
+#appVersion: "${PROJECT_RELEASE_VERSION}"
+version: 0.1.3
 
 
-- 
GitLab


From f2cb50a5abc0fc59cdc72bd53943b52314a78e19 Mon Sep 17 00:00:00 2001
From: "Natalia Szakiel (ext)" <natalia.szakiel.external@eviden.com>
Date: Wed, 20 Nov 2024 15:47:50 +0100
Subject: [PATCH 4/7] cpu request decreased

---
 charts/values/dev/observability/values.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/charts/values/dev/observability/values.yaml b/charts/values/dev/observability/values.yaml
index 962a0bb..ddf7828 100644
--- a/charts/values/dev/observability/values.yaml
+++ b/charts/values/dev/observability/values.yaml
@@ -28,6 +28,7 @@ elasticsearch:
   resources:
     requests:
       memory: 4Gi
+      cpu: 300m
     limits:
       memory: 4Gi
       cpu: "1"
-- 
GitLab


From 43f31b9d92bdc6fe5f757b69091efbfebf1113df Mon Sep 17 00:00:00 2001
From: "Natalia Szakiel (ext)" <natalia.szakiel.external@eviden.com>
Date: Wed, 20 Nov 2024 16:27:44 +0100
Subject: [PATCH 5/7] kibana cert change

---
 charts/templates/kibana.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/charts/templates/kibana.yaml b/charts/templates/kibana.yaml
index 1de015d..77a6bf0 100644
--- a/charts/templates/kibana.yaml
+++ b/charts/templates/kibana.yaml
@@ -74,7 +74,7 @@ spec:
   http:
     tls:
       certificate:
-        secretName: {{ .Release.Name }}-kibana-cert-secret
+        secretName: {{ .Release.Name }}-kibana-ssl
 ---
 apiVersion: networking.k8s.io/v1
 kind: Ingress
-- 
GitLab


From 49543543ef63e185f104fe495f2ac7fdbb63845b Mon Sep 17 00:00:00 2001
From: "Natalia Szakiel (ext)" <natalia.szakiel.external@eviden.com>
Date: Thu, 21 Nov 2024 11:10:49 +0100
Subject: [PATCH 6/7] ready tu develop push

---
 charts/Chart.yaml     | 6 +++---
 pipeline.variables.sh | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/charts/Chart.yaml b/charts/Chart.yaml
index c36e45d..dc19d20 100644
--- a/charts/Chart.yaml
+++ b/charts/Chart.yaml
@@ -1,6 +1,6 @@
 name: eck-monitoring
-#version: ${PROJECT_RELEASE_VERSION}
-#appVersion: "${PROJECT_RELEASE_VERSION}"
-version: 0.1.3
+version: ${PROJECT_RELEASE_VERSION}
+appVersion: "${PROJECT_RELEASE_VERSION}"
+#version: 0.1.3
 
 
diff --git a/pipeline.variables.sh b/pipeline.variables.sh
index 3564d00..ecdeeed 100644
--- a/pipeline.variables.sh
+++ b/pipeline.variables.sh
@@ -1 +1 @@
-PROJECT_VERSION_NUMBER="0.1.2"
\ No newline at end of file
+PROJECT_VERSION_NUMBER="3"
\ No newline at end of file
-- 
GitLab


From 43098b5c941a0d200b16846b7ecb2206186750bd Mon Sep 17 00:00:00 2001
From: Albert Brzozowski <albert.brzozowski.external@atos.net>
Date: Thu, 21 Nov 2024 11:16:33 +0100
Subject: [PATCH 7/7] Fixes

---
 charts/values/dev/observability/values.yaml | 2 +-
 pipeline.variables.sh                       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/charts/values/dev/observability/values.yaml b/charts/values/dev/observability/values.yaml
index ddf7828..df345e9 100644
--- a/charts/values/dev/observability/values.yaml
+++ b/charts/values/dev/observability/values.yaml
@@ -37,7 +37,7 @@ kibana:
   count: 1
   image: docker.elastic.co/kibana/kibana
   #Branch name to donwload dashboards
-  dashboardsBranch: "develop"
+  dashboardsBranch: "main"
   # Kibana's image tag, by default it equals to elasticVersion
   imageTag: ""
   # name of helm release where elasticsearch is installed. If you install kibana together with elasticsearch, leave it empty.
diff --git a/pipeline.variables.sh b/pipeline.variables.sh
index ecdeeed..322e00a 100644
--- a/pipeline.variables.sh
+++ b/pipeline.variables.sh
@@ -1 +1 @@
-PROJECT_VERSION_NUMBER="3"
\ No newline at end of file
+PROJECT_VERSION_NUMBER="0.1.3"
\ No newline at end of file
-- 
GitLab