chore(ext): remove Logspout extension
This software is no longer maintained. Nowadays, Filebeat largely addresses the problems that Logspout was designed to solve.
This commit is contained in:
parent
5dd178ac1a
commit
c77a5a9ba9
|
@ -30,7 +30,6 @@ jobs:
|
||||||
run: >-
|
run: >-
|
||||||
docker compose
|
docker compose
|
||||||
-f docker-compose.yml
|
-f docker-compose.yml
|
||||||
-f extensions/logspout/logspout-compose.yml
|
|
||||||
-f extensions/fleet/fleet-compose.yml
|
-f extensions/fleet/fleet-compose.yml
|
||||||
-f extensions/fleet/agent-apmserver-compose.yml
|
-f extensions/fleet/agent-apmserver-compose.yml
|
||||||
-f extensions/metricbeat/metricbeat-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
|
# Fleet
|
||||||
#
|
#
|
||||||
|
@ -181,7 +152,6 @@ jobs:
|
||||||
|
|
||||||
docker compose \
|
docker compose \
|
||||||
-f docker-compose.yml \
|
-f docker-compose.yml \
|
||||||
-f extensions/logspout/logspout-compose.yml \
|
|
||||||
-f extensions/fleet/fleet-compose.yml \
|
-f extensions/fleet/fleet-compose.yml \
|
||||||
-f extensions/fleet/agent-apmserver-compose.yml \
|
-f extensions/fleet/agent-apmserver-compose.yml \
|
||||||
-f extensions/metricbeat/metricbeat-compose.yml \
|
-f extensions/metricbeat/metricbeat-compose.yml \
|
||||||
|
@ -192,7 +162,6 @@ jobs:
|
||||||
|
|
||||||
docker compose \
|
docker compose \
|
||||||
-f docker-compose.yml \
|
-f docker-compose.yml \
|
||||||
-f extensions/logspout/logspout-compose.yml \
|
|
||||||
-f extensions/fleet/fleet-compose.yml \
|
-f extensions/fleet/fleet-compose.yml \
|
||||||
-f extensions/fleet/agent-apmserver-compose.yml \
|
-f extensions/fleet/agent-apmserver-compose.yml \
|
||||||
-f extensions/metricbeat/metricbeat-compose.yml \
|
-f extensions/metricbeat/metricbeat-compose.yml \
|
||||||
|
@ -221,7 +190,6 @@ jobs:
|
||||||
run: >-
|
run: >-
|
||||||
docker compose
|
docker compose
|
||||||
-f docker-compose.yml
|
-f docker-compose.yml
|
||||||
-f extensions/logspout/logspout-compose.yml
|
|
||||||
-f extensions/fleet/fleet-compose.yml
|
-f extensions/fleet/fleet-compose.yml
|
||||||
-f extensions/fleet/agent-apmserver-compose.yml
|
-f extensions/fleet/agent-apmserver-compose.yml
|
||||||
-f extensions/metricbeat/metricbeat-compose.yml
|
-f extensions/metricbeat/metricbeat-compose.yml
|
||||||
|
|
|
@ -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
|
|
|
@ -1,6 +0,0 @@
|
||||||
# Ignore Docker build files
|
|
||||||
Dockerfile
|
|
||||||
.dockerignore
|
|
||||||
|
|
||||||
# Ignore OS artifacts
|
|
||||||
**/.DS_Store
|
|
|
@ -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
|
|
|
@ -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
|
|
||||||
|
|
||||||
<https://github.com/looplab/logspout-logstash>
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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"
|
|
||||||
)
|
|
Loading…
Reference in New Issue