From 320529ba1fd0fcb61fb0664164435b5311128804 Mon Sep 17 00:00:00 2001
From: stedif <stefano.difrischia@inaf.it>
Date: Thu, 10 Nov 2022 16:45:42 +0100
Subject: [PATCH] L2SS-1052: remove elk entries

---
 README.md                                     |  9 ----
 bootstrap/sbin/rebuild_system_from_scratch.sh | 17 ++----
 docker-compose/Makefile                       |  1 -
 docker-compose/elk-configure-host/Dockerfile  |  4 --
 docker-compose/elk.yml                        | 53 -------------------
 docker-compose/elk/Dockerfile                 | 18 -------
 .../elk/kibana/default-objects.ndjson         |  3 --
 .../elk/logstash/conf.d/02-beats-input.conf   |  8 ---
 .../elk/logstash/conf.d/03-syslog-input.conf  |  5 --
 .../elk/logstash/conf.d/04-tcp-input.conf     |  6 ---
 .../elk/logstash/conf.d/10-syslog.conf        | 13 -----
 .../elk/logstash/conf.d/11-nginx.conf         |  7 ---
 .../elk/logstash/conf.d/20-parse-grafana.conf | 16 ------
 .../logstash/conf.d/21-parse-prometheus.conf  | 15 ------
 .../logstash/conf.d/22-parse-tango-rest.conf  | 14 -----
 .../logstash/conf.d/23-parse-maria-db.conf    | 32 -----------
 .../elk/logstash/conf.d/30-output.conf        |  7 ---
 .../code/tango-prometheus-client.py           |  2 +-
 .../devices/docker_device.py                  |  2 -
 19 files changed, 4 insertions(+), 228 deletions(-)
 delete mode 100644 docker-compose/elk-configure-host/Dockerfile
 delete mode 100644 docker-compose/elk.yml
 delete mode 100644 docker-compose/elk/Dockerfile
 delete mode 100755 docker-compose/elk/kibana/default-objects.ndjson
 delete mode 100644 docker-compose/elk/logstash/conf.d/02-beats-input.conf
 delete mode 100644 docker-compose/elk/logstash/conf.d/03-syslog-input.conf
 delete mode 100644 docker-compose/elk/logstash/conf.d/04-tcp-input.conf
 delete mode 100644 docker-compose/elk/logstash/conf.d/10-syslog.conf
 delete mode 100644 docker-compose/elk/logstash/conf.d/11-nginx.conf
 delete mode 100644 docker-compose/elk/logstash/conf.d/20-parse-grafana.conf
 delete mode 100644 docker-compose/elk/logstash/conf.d/21-parse-prometheus.conf
 delete mode 100644 docker-compose/elk/logstash/conf.d/22-parse-tango-rest.conf
 delete mode 100644 docker-compose/elk/logstash/conf.d/23-parse-maria-db.conf
 delete mode 100644 docker-compose/elk/logstash/conf.d/30-output.conf

diff --git a/README.md b/README.md
index da4288bc3..6903db66c 100644
--- a/README.md
+++ b/README.md
@@ -72,17 +72,8 @@ them down (`make stop <container>`).
 
 Most notably, you will have web interfaces available at:
  - http://localhost:8888 (Jupyter Notebook)
- - http://localhost:5601 (ElasticSearch)
  - http://localhost:3000 (Grafana).
 
-To create the appropriate indexes for ElasticSearch the following needs to be
-executed once while ElasticSearch is running:
-
-```sh
-cd docker-compose/elk
-curl -X POST http://localhost:5601/api/saved_objects/_import -H "kbn-xsrf: true" --form file=@kibana/default-objects.ndjson
-```
-
 # Development
 
 For development you will need several dependencies including:
diff --git a/bootstrap/sbin/rebuild_system_from_scratch.sh b/bootstrap/sbin/rebuild_system_from_scratch.sh
index 0af4d0b19..cb19cdcde 100755
--- a/bootstrap/sbin/rebuild_system_from_scratch.sh
+++ b/bootstrap/sbin/rebuild_system_from_scratch.sh
@@ -98,15 +98,9 @@ function configure_tango_db()
     ${HOME_DIR}/sbin/update_ConfigDb.sh ${HOME_DIR}/CDB/LOFAR_ConfigDb.json || true
 }
 
-function configure_elk()
-{
-    (cd ${HOME_DIR}/docker-compose && make start elk-configure-host)
-}
-
 function start_support_images()
 {
-    (cd ${HOME_DIR}/docker-compose && make start elk
-    make start jupyter)
+    (cd ${HOME_DIR}/docker-compose && make start jupyter)
 }
 
 function start_lofar_images()
@@ -157,13 +151,8 @@ echo "-> Configuring the Tango DB for LOFAR2.0..."
 configure_tango_db
 echo -e "\tDone.\n"
 
-# Now configure the ELK container.
-echo "-> Configuring the ELK container for this host..."
-configure_elk
-echo -e "\tDone.\n"
-
-# Here I start ELK & Jupyter.
-echo "-> Start LOFAR2.0 support containers (ELK, Jupyter, etc.)..."
+# Here I start Jupyter.
+echo "-> Start LOFAR2.0 support containers (Jupyter, etc.)..."
 start_support_images
 echo -e "\tDone.\n"
 
diff --git a/docker-compose/Makefile b/docker-compose/Makefile
index 0d570999b..a725ea8d3 100644
--- a/docker-compose/Makefile
+++ b/docker-compose/Makefile
@@ -203,7 +203,6 @@ context: ## Move the necessary files to create minimal docker context
 	@cp ../tangostationcontrol/requirements.txt tmp/
 
 bootstrap: pull build # first start, initialise from scratch
-	$(MAKE) start elk-configure-host # configure host kernel for elk container
 	$(MAKE) start dsconfig # boot up containers to load configurations
 	sleep 5 # wait for dsconfig container to come up
 	../sbin/update_ConfigDb.sh ../CDB/LOFAR_ConfigDb.json # load default configuration
diff --git a/docker-compose/elk-configure-host/Dockerfile b/docker-compose/elk-configure-host/Dockerfile
deleted file mode 100644
index 269032484..000000000
--- a/docker-compose/elk-configure-host/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM ubuntu:20.04
-
-# Expand VM settings as required by ELK
-CMD bash -c "if [ -w /proc/sys/vm/max_map_count ] && [ $(cat /proc/sys/vm/max_map_count) -lt 262144 ]; then echo 262144 > /proc/sys/vm/max_map_count; fi"
diff --git a/docker-compose/elk.yml b/docker-compose/elk.yml
deleted file mode 100644
index d671ba0c7..000000000
--- a/docker-compose/elk.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# Docker compose file that launches an ELK stack.
-# See https://elk-docker.readthedocs.io/
-#
-# Defines:
-#   - elk-configure-host: Configures the hosts's kernel to be able to use the ELK stack
-#   - elk: ELK stack
-#
-
-version: '2.1'
-
-volumes:
-  elk-data: {}
-
-services:
-  elk-configure-host:
-    image: elk-configure-host
-    build:
-        context: elk-configure-host
-    container_name: ${CONTAINER_NAME_PREFIX}elk-configure-host
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "100m"
-        max-file: "10"
-    networks:
-      - control
-    privileged: true
-
-  elk:
-    image: elk
-    build:
-        context: elk
-    container_name: ${CONTAINER_NAME_PREFIX}elk
-    logging:
-      driver: "json-file"
-      options:
-        max-size: "100m"
-        max-file: "10"
-    networks:
-      - control
-    volumes:
-      - elk-data:/var/lib/elasticsearch
-    ports:
-      - "5601:5601" # kibana
-      - "9200:9200" # elasticsearch
-      # - "5044:5044" # logstash beats input
-      # - "1514:1514/tcp" # logstash syslog input
-      # - "1514:1514/udp" # logstash syslog input
-      # - "5959:5959" # logstash tcp json input
-    depends_on:
-      - elk-configure-host
-    restart: unless-stopped
diff --git a/docker-compose/elk/Dockerfile b/docker-compose/elk/Dockerfile
deleted file mode 100644
index fda7ed40e..000000000
--- a/docker-compose/elk/Dockerfile
+++ /dev/null
@@ -1,18 +0,0 @@
-FROM sebp/elk
-
-# Give more time for ElasticSearch to startup on our poor dev laptops
-ENV ES_CONNECT_RETRY=60
-
-# Provide our logstash config
-ADD logstash /etc/logstash/
-
-# Provide our kibana config
-#
-# For now:
-#   1. Start the container,
-#   2. Make sure there are log messages in the database (to populate their patterns),
-#   3. Run in this directory
-#      $ curl -X POST http://localhost:5601/api/saved_objects/_import -H "kbn-xsrf: true" --form file=@kibana/default-objects.ndjson
-#
-# See also https://www.elastic.co/guide/en/kibana/7.x/saved-objects-api-import.html
-# and https://github.com/Bitergia/archimedes
diff --git a/docker-compose/elk/kibana/default-objects.ndjson b/docker-compose/elk/kibana/default-objects.ndjson
deleted file mode 100755
index 3c9f118b2..000000000
--- a/docker-compose/elk/kibana/default-objects.ndjson
+++ /dev/null
@@ -1,3 +0,0 @@
-{"attributes":{"fieldAttrs":"{\"level\":{\"count\":1},\"message\":{\"count\":1},\"program\":{\"count\":2}}","fields":"[]","timeFieldName":"@timestamp","title":"logstash-*"},"id":"5340ad20-923d-11eb-9cc8-2fc0b321a697","migrationVersion":{"index-pattern":"7.11.0"},"references":[],"type":"index-pattern","updated_at":"2021-03-31T18:16:04.716Z","version":"WzE0NiwxXQ=="}
-{"attributes":{"columns":["extra.device","level","message"],"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"sort":[],"title":"Last hour","version":1},"id":"cf4947d0-924f-11eb-9cc8-2fc0b321a697","migrationVersion":{"search":"7.9.3"},"references":[{"id":"5340ad20-923d-11eb-9cc8-2fc0b321a697","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"search","updated_at":"2021-03-31T18:35:04.269Z","version":"WzE2NywxXQ=="}
-{"exportedCount":2,"missingRefCount":0,"missingReferences":[]}
\ No newline at end of file
diff --git a/docker-compose/elk/logstash/conf.d/02-beats-input.conf b/docker-compose/elk/logstash/conf.d/02-beats-input.conf
deleted file mode 100644
index 4ab52b370..000000000
--- a/docker-compose/elk/logstash/conf.d/02-beats-input.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-input {
-  beats {
-    port => 5044
-    ssl => true
-    ssl_certificate => "/etc/pki/tls/certs/logstash-beats.crt"
-    ssl_key => "/etc/pki/tls/private/logstash-beats.key"
-  }
-}
diff --git a/docker-compose/elk/logstash/conf.d/03-syslog-input.conf b/docker-compose/elk/logstash/conf.d/03-syslog-input.conf
deleted file mode 100644
index b859a357d..000000000
--- a/docker-compose/elk/logstash/conf.d/03-syslog-input.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-input {
-  syslog {
-    port => 1514
-  }
-}
diff --git a/docker-compose/elk/logstash/conf.d/04-tcp-input.conf b/docker-compose/elk/logstash/conf.d/04-tcp-input.conf
deleted file mode 100644
index 67def0887..000000000
--- a/docker-compose/elk/logstash/conf.d/04-tcp-input.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-input {
-  tcp {
-    port => 5959
-    codec => json
-  }
-}
diff --git a/docker-compose/elk/logstash/conf.d/10-syslog.conf b/docker-compose/elk/logstash/conf.d/10-syslog.conf
deleted file mode 100644
index acce463cd..000000000
--- a/docker-compose/elk/logstash/conf.d/10-syslog.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-filter {
-  if [type] == "syslog" {
-    grok {
-      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
-      add_field => [ "received_at", "%{@timestamp}" ]
-      add_field => [ "received_from", "%{host}" ]
-    }
-    syslog_pri { }
-    date {
-      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
-    }
-  }
-}
diff --git a/docker-compose/elk/logstash/conf.d/11-nginx.conf b/docker-compose/elk/logstash/conf.d/11-nginx.conf
deleted file mode 100644
index d4a45db2d..000000000
--- a/docker-compose/elk/logstash/conf.d/11-nginx.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-filter {
-  if [type] == "nginx-access" {
-    grok {
-      match => { "message" => "%{NGINXACCESS}" }
-    }
-  }
-}
diff --git a/docker-compose/elk/logstash/conf.d/20-parse-grafana.conf b/docker-compose/elk/logstash/conf.d/20-parse-grafana.conf
deleted file mode 100644
index 37db44fda..000000000
--- a/docker-compose/elk/logstash/conf.d/20-parse-grafana.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-filter {
-  if [program] == "grafana" {
-    kv { }
-    mutate {
-      rename => {
-        "t" => "timestamp"
-        "lvl" => "level"
-        "msg" => "message"
-      }
-      uppercase => [ "level" ]
-    }
-    date {
-      match => [ "timestamp", "ISO8601" ]
-    }
-  }
-}
diff --git a/docker-compose/elk/logstash/conf.d/21-parse-prometheus.conf b/docker-compose/elk/logstash/conf.d/21-parse-prometheus.conf
deleted file mode 100644
index b8323625f..000000000
--- a/docker-compose/elk/logstash/conf.d/21-parse-prometheus.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-filter {
-  if [program] == "prometheus" {
-    kv { }
-    mutate {
-      rename => {
-        "ts" => "timestamp"
-        "msg" => "message"
-      }
-      uppercase => [ "level" ]
-    }
-    date {
-      match => [ "timestamp", "ISO8601" ]
-    }
-  }
-}
diff --git a/docker-compose/elk/logstash/conf.d/22-parse-tango-rest.conf b/docker-compose/elk/logstash/conf.d/22-parse-tango-rest.conf
deleted file mode 100644
index 5df0cd92b..000000000
--- a/docker-compose/elk/logstash/conf.d/22-parse-tango-rest.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-filter {
-  if [program] == "tango-rest" {
-    grok {
-      match => {
-        "message" => "%{TIMESTAMP_ISO8601:timestamp} %{WORD:level} %{GREEDYDATA:message}"
-      }
-      "overwrite" => [ "timestamp", "level", "message" ]
-    }
-    date {
-      match => [ "timestamp", "YYYY-MM-dd HH:mm:ss,SSS" ]
-      timezone => "UTC"
-    }
-  }
-}
diff --git a/docker-compose/elk/logstash/conf.d/23-parse-maria-db.conf b/docker-compose/elk/logstash/conf.d/23-parse-maria-db.conf
deleted file mode 100644
index 0a23fddd0..000000000
--- a/docker-compose/elk/logstash/conf.d/23-parse-maria-db.conf
+++ /dev/null
@@ -1,32 +0,0 @@
-filter {
-  # mark all our mariadb instances
-  grok {
-    match => {
-      "program" => [ "archiver-maria-db", "tangodb" ]
-    }
-    add_tag => [ "mariadb" ]
-  }
-
-  # parse mariadb output
-  if "mariadb" in [tags] {
-    grok {
-      match => {
-        "message" => [
-          "%{TIMESTAMP_ISO8601:timestamp} .%{WORD:level}. %{GREEDYDATA:message}",
-          "%{TIMESTAMP_ISO8601:timestamp} 0 .%{WORD:level}. %{GREEDYDATA:message}"
-        ]
-      }
-      "overwrite" => [ "timestamp", "level", "message" ]
-    }
-    mutate {
-      gsub => [
-        "level", "Note", "Info"
-      ]
-      uppercase => [ "level" ]
-    }
-    date {
-      match => [ "timestamp", "YYYY-MM-dd HH:mm:ssZZ", "YYYY-MM-dd HH:mm:ss", "YYYY-MM-dd  H:mm:ss"  ]
-      timezone => "UTC"
-    }
-  }
-}
diff --git a/docker-compose/elk/logstash/conf.d/30-output.conf b/docker-compose/elk/logstash/conf.d/30-output.conf
deleted file mode 100644
index 1893dd990..000000000
--- a/docker-compose/elk/logstash/conf.d/30-output.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-output {
-  elasticsearch {
-    hosts => ["localhost"]
-    manage_template => false
-    index => "logstash-%{+YYYY.MM.dd}"
-  }
-}
diff --git a/docker-compose/tango-prometheus-exporter/code/tango-prometheus-client.py b/docker-compose/tango-prometheus-exporter/code/tango-prometheus-client.py
index 256f78bf1..ce1570a32 100644
--- a/docker-compose/tango-prometheus-exporter/code/tango-prometheus-client.py
+++ b/docker-compose/tango-prometheus-exporter/code/tango-prometheus-client.py
@@ -13,7 +13,7 @@ logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', level=loggin
 
 # log to memory only, with a limit of 600 seconds. this container is not important enough to keep
 # all logs around for, and as a scraper must be robust against overloading on all sides
-handler = AsynchronousLogstashHandler("elk", 5959, database_path=None, event_ttl=600)
+handler = AsynchronousLogstashHandler("logstash", 5959, database_path=None, event_ttl=600)
 handler.setLevel(logging.INFO)
 logger.addHandler(handler)
 
diff --git a/tangostationcontrol/tangostationcontrol/devices/docker_device.py b/tangostationcontrol/tangostationcontrol/devices/docker_device.py
index 71e13119d..cf747e69e 100644
--- a/tangostationcontrol/tangostationcontrol/devices/docker_device.py
+++ b/tangostationcontrol/tangostationcontrol/devices/docker_device.py
@@ -99,8 +99,6 @@ class Docker(lofar_device):
     databaseds_RW = attribute_wrapper(comms_annotation={"container": "databaseds"}, datatype=bool, access=AttrWriteType.READ_WRITE)
     dsconfig_R = attribute_wrapper(comms_annotation={"container": "dsconfig"}, datatype=bool)
     dsconfig_RW = attribute_wrapper(comms_annotation={"container": "dsconfig"}, datatype=bool, access=AttrWriteType.READ_WRITE)
-    elk_R = attribute_wrapper(comms_annotation={"container": "elk"}, datatype=bool)
-    elk_RW = attribute_wrapper(comms_annotation={"container": "elk"}, datatype=bool, access=AttrWriteType.READ_WRITE)
     grafana_R = attribute_wrapper(comms_annotation={"container": "grafana"}, datatype=bool)
     grafana_RW = attribute_wrapper(comms_annotation={"container": "grafana"}, datatype=bool, access=AttrWriteType.READ_WRITE)
     logstash_R = attribute_wrapper(comms_annotation={"container": "logstash"}, datatype=bool)
-- 
GitLab