From c77a5a9ba994d7e6c308536b99facba7ca520bee Mon Sep 17 00:00:00 2001 From: Antoine Cotten Date: Mon, 12 Feb 2024 14:06:33 +0100 Subject: [PATCH] chore(ext): remove Logspout extension This software is no longer maintained. Nowadays, Filebeat largely addresses the problems that Logspout was designed to solve. --- .github/workflows/ci.yml | 32 --------- .../workflows/scripts/run-tests-logspout.sh | 70 ------------------- extensions/logspout/.dockerignore | 6 -- extensions/logspout/Dockerfile | 5 -- extensions/logspout/README.md | 28 -------- extensions/logspout/build.sh | 13 ---- extensions/logspout/logspout-compose.yml | 19 ----- extensions/logspout/modules.go | 10 --- 8 files changed, 183 deletions(-) delete mode 100755 .github/workflows/scripts/run-tests-logspout.sh delete mode 100644 extensions/logspout/.dockerignore delete mode 100644 extensions/logspout/Dockerfile delete mode 100644 extensions/logspout/README.md delete mode 100755 extensions/logspout/build.sh delete mode 100644 extensions/logspout/logspout-compose.yml delete mode 100644 extensions/logspout/modules.go diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff8c3ce..cc56160 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,6 @@ jobs: run: >- docker compose -f docker-compose.yml - -f extensions/logspout/logspout-compose.yml -f extensions/fleet/fleet-compose.yml -f extensions/fleet/agent-apmserver-compose.yml -f extensions/metricbeat/metricbeat-compose.yml @@ -82,34 +81,6 @@ jobs: # # ############################## - # - # Logspout - # - - - name: Execute Logspout test suite - run: | - - # Set mandatory Logstash settings - - sed -i '$ a input { udp { port => 50000 codec => json } }' logstash/pipeline/logstash.conf - - # Restart Logstash for changes to take effect - - docker compose restart logstash - - # Run Logspout and execute tests. - - docker compose -f docker-compose.yml -f extensions/logspout/logspout-compose.yml up --remove-orphans -d logspout - .github/workflows/scripts/run-tests-logspout.sh - - # Revert changes to Logstash configuration - - sed -i '/input { udp { port => 50000 codec => json } }/d' logstash/pipeline/logstash.conf - docker compose restart logstash - - # next steps don't need Logstash - docker compose stop logstash - # # Fleet # @@ -181,7 +152,6 @@ jobs: docker compose \ -f docker-compose.yml \ - -f extensions/logspout/logspout-compose.yml \ -f extensions/fleet/fleet-compose.yml \ -f extensions/fleet/agent-apmserver-compose.yml \ -f extensions/metricbeat/metricbeat-compose.yml \ @@ -192,7 +162,6 @@ jobs: docker compose \ -f docker-compose.yml \ - -f extensions/logspout/logspout-compose.yml \ -f extensions/fleet/fleet-compose.yml \ -f extensions/fleet/agent-apmserver-compose.yml \ -f extensions/metricbeat/metricbeat-compose.yml \ @@ -221,7 +190,6 @@ jobs: run: >- docker compose -f docker-compose.yml - -f extensions/logspout/logspout-compose.yml -f extensions/fleet/fleet-compose.yml -f extensions/fleet/agent-apmserver-compose.yml -f extensions/metricbeat/metricbeat-compose.yml diff --git a/.github/workflows/scripts/run-tests-logspout.sh b/.github/workflows/scripts/run-tests-logspout.sh deleted file mode 100755 index 72c15c8..0000000 --- a/.github/workflows/scripts/run-tests-logspout.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env bash - -set -eu -set -o pipefail - - -source "${BASH_SOURCE[0]%/*}"/lib/testing.sh - - -cid_es="$(container_id elasticsearch)" -cid_ls="$(container_id logstash)" -cid_lsp="$(container_id logspout)" - -ip_es="$(service_ip elasticsearch)" -ip_ls="$(service_ip logstash)" -ip_lsp="$(service_ip logspout)" - -grouplog 'Wait for readiness of Elasticsearch' -poll_ready "$cid_es" "http://${ip_es}:9200/" -u 'elastic:testpasswd' -endgroup - -grouplog 'Wait for readiness of Logstash' -poll_ready "$cid_ls" "http://${ip_ls}:9600/_node/pipelines/main?pretty" -endgroup - -grouplog 'Wait for readiness of Logspout' -poll_ready "$cid_lsp" "http://${ip_lsp}/health" -endgroup - -# When Logspout starts, it prints the following log line: -# 2021/01/07 16:14:52 # logspout v3.2.13-custom by gliderlabs -# -# which we expect to find by querying: -# docker.image:"docker-elk-logspout" AND message:"logspout gliderlabs"~3 -# -log 'Searching a log entry forwarded by Logspout' - -declare response -declare -i count - -declare -i was_retried=0 - -# retry for max 60s (30*2s) -for _ in $(seq 1 30); do - response="$(curl "http://${ip_es}:9200/logs-generic-default/_search?q=docker.image:%22docker-elk-logspout%22%20AND%20message:%22logspout%20gliderlabs%22~3&pretty" -s -u elastic:testpasswd)" - - set +u # prevent "unbound variable" if assigned value is not an integer - count="$(jq -rn --argjson data "${response}" '$data.hits.total.value')" - set -u - - if (( count > 0 )); then - break - fi - - was_retried=1 - echo -n 'x' >&2 - sleep 2 -done -if ((was_retried)); then - # flush stderr, important in non-interactive environments (CI) - echo >&2 -fi - -echo "$response" -# Logspout may restart if Logstash isn't ready yet, so we tolerate multiple -# results -if (( count == 0 )); then - echo 'Expected at least 1 document' - exit 1 -fi diff --git a/extensions/logspout/.dockerignore b/extensions/logspout/.dockerignore deleted file mode 100644 index 37eef9d..0000000 --- a/extensions/logspout/.dockerignore +++ /dev/null @@ -1,6 +0,0 @@ -# Ignore Docker build files -Dockerfile -.dockerignore - -# Ignore OS artifacts -**/.DS_Store diff --git a/extensions/logspout/Dockerfile b/extensions/logspout/Dockerfile deleted file mode 100644 index 9591df5..0000000 --- a/extensions/logspout/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -# uses ONBUILD instructions described here: -# https://github.com/gliderlabs/logspout/tree/master/custom - -FROM gliderlabs/logspout:master -ENV SYSLOG_FORMAT rfc3164 diff --git a/extensions/logspout/README.md b/extensions/logspout/README.md deleted file mode 100644 index 2e34648..0000000 --- a/extensions/logspout/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Logspout extension - -Logspout collects all Docker logs using the Docker logs API, and forwards them to Logstash without any additional -configuration. - -## Usage - -If you want to include the Logspout extension, run Docker Compose from the root of the repository with an additional -command line argument referencing the `logspout-compose.yml` file: - -```bash -$ docker-compose -f docker-compose.yml -f extensions/logspout/logspout-compose.yml up -``` - -In your Logstash pipeline configuration, enable the `udp` input and set the input codec to `json`: - -```logstash -input { - udp { - port => 50000 - codec => json - } -} -``` - -## Documentation - - diff --git a/extensions/logspout/build.sh b/extensions/logspout/build.sh deleted file mode 100755 index c3ff938..0000000 --- a/extensions/logspout/build.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# source: https://github.com/gliderlabs/logspout/blob/621524e/custom/build.sh - -set -e -apk add --update go build-base git mercurial ca-certificates -cd /src -go build -ldflags "-X main.Version=$1" -o /bin/logspout -apk del go git mercurial build-base -rm -rf /root/go /var/cache/apk/* - -# backwards compatibility -ln -fs /tmp/docker.sock /var/run/docker.sock diff --git a/extensions/logspout/logspout-compose.yml b/extensions/logspout/logspout-compose.yml deleted file mode 100644 index 8af149d..0000000 --- a/extensions/logspout/logspout-compose.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: '3.7' - -services: - logspout: - build: - context: extensions/logspout - volumes: - - type: bind - source: /var/run/docker.sock - target: /var/run/docker.sock - read_only: true - environment: - ROUTE_URIS: logstash://logstash:50000 - LOGSTASH_TAGS: docker-elk - networks: - - elk - depends_on: - - logstash - restart: on-failure diff --git a/extensions/logspout/modules.go b/extensions/logspout/modules.go deleted file mode 100644 index f1a2258..0000000 --- a/extensions/logspout/modules.go +++ /dev/null @@ -1,10 +0,0 @@ -package main - -// installs the Logstash adapter for Logspout, and required dependencies -// https://github.com/looplab/logspout-logstash -import ( - _ "github.com/gliderlabs/logspout/healthcheck" - _ "github.com/gliderlabs/logspout/transports/tcp" - _ "github.com/gliderlabs/logspout/transports/udp" - _ "github.com/looplab/logspout-logstash" -)