Skip to content

Commit

Permalink
[8.5](backport #33789) Update test versions of NGINX, Apache and Mong…
Browse files Browse the repository at this point in the history
…oDB (#33844)

* Update test versions of NGINX, Apache and MongoDB (#33789)

The old tests were based on Debian Jessie released in April
2015 (end-of-life on June 30, 2020).

We started having problems with expired GPG keys when installing
dependencies in our Docker files.

Also:
* Add the missing MPM module and the `ServerName` directive for Apache.
* Add retries to Logstash tests because they are flaky
* Do not install mage v1.14.0
* Update elastic-agent-client version to avoid broken agent dependency

(cherry picked from commit 4f639d7)

# Conflicts:
#	NOTICE.txt
#	go.mod
#	go.sum

Co-authored-by: Denis <denis.rechkunov@elastic.co>
  • Loading branch information
mergify[bot] and rdner committed Nov 30, 2022
1 parent f5b186d commit 8c7cc70
Show file tree
Hide file tree
Showing 17 changed files with 38 additions and 29 deletions.
1 change: 0 additions & 1 deletion .github/workflows/check-docs.yml
Expand Up @@ -30,5 +30,4 @@ jobs:
run: sudo apt-get install -y librpm-dev
- name: Run check
run: |
go install github.com/magefile/mage
make check
4 changes: 2 additions & 2 deletions NOTICE.txt
Expand Up @@ -9867,11 +9867,11 @@ Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-a

--------------------------------------------------------------------------------
Dependency : github.com/elastic/elastic-agent-client/v7
Version: v7.0.0-20210727140539-f0905d9377f6
Version: v7.0.1
Licence type (autodetected): Elastic
--------------------------------------------------------------------------------

Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-client/v7@v7.0.0-20210727140539-f0905d9377f6/LICENSE.txt:
Contents of probable licence file $GOMODCACHE/github.com/elastic/elastic-agent-client/v7@v7.0.1/LICENSE.txt:

ELASTIC LICENSE AGREEMENT

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Expand Up @@ -70,7 +70,7 @@ require (
github.com/dustin/go-humanize v1.0.0
github.com/eapache/go-resiliency v1.2.0
github.com/eclipse/paho.mqtt.golang v1.3.5
github.com/elastic/elastic-agent-client/v7 v7.0.0-20210727140539-f0905d9377f6
github.com/elastic/elastic-agent-client/v7 v7.0.1
github.com/elastic/go-concert v0.2.0
github.com/elastic/go-libaudit/v2 v2.3.2
github.com/elastic/go-licenser v0.4.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Expand Up @@ -615,8 +615,8 @@ github.com/elastic/dhcp v0.0.0-20200227161230-57ec251c7eb3 h1:lnDkqiRFKm0rxdljqr
github.com/elastic/dhcp v0.0.0-20200227161230-57ec251c7eb3/go.mod h1:aPqzac6AYkipvp4hufTyMj5PDIphF3+At8zr7r51xjY=
github.com/elastic/elastic-agent-autodiscover v0.3.0 h1:kdpNnIDnVk7gvQxxR6PzZY7aM8LyMTRkwI/p+FNS17s=
github.com/elastic/elastic-agent-autodiscover v0.3.0/go.mod h1:p3MSf9813JEnolCTD0GyVAr3+Eptg2zQ9aZVFjl4tJ4=
github.com/elastic/elastic-agent-client/v7 v7.0.0-20210727140539-f0905d9377f6 h1:nFvXHBjYK3e9+xF0WKDeAKK4aOO51uC28s+L9rBmilo=
github.com/elastic/elastic-agent-client/v7 v7.0.0-20210727140539-f0905d9377f6/go.mod h1:uh/Gj9a0XEbYoM4NYz4LvaBVARz3QXLmlNjsrKY9fTc=
github.com/elastic/elastic-agent-client/v7 v7.0.1 h1:RDiozMRkjVfsn1vZ5tc1YzRC+g4w4QTsXIOPEsVDyIY=
github.com/elastic/elastic-agent-client/v7 v7.0.1/go.mod h1:cHviLpA5fAwMbfBIHBVNl16qp90bO7pKHMAQaG+9raU=
github.com/elastic/elastic-agent-libs v0.2.11 h1:ZeYn35Kxt+IdtMPmE01TaDeaahCg/z7MkGPVWUo6Lp4=
github.com/elastic/elastic-agent-libs v0.2.11/go.mod h1:chO3rtcLyGlKi9S0iGVZhYCzDfdDsAQYBc+ui588AFE=
github.com/elastic/elastic-agent-shipper-client v0.4.0 h1:nsTJF9oo4RHLl+zxFUZqNHaE86C6Ba5aImfegcEf6Sk=
Expand Down
2 changes: 1 addition & 1 deletion metricbeat/docs/modules/apache.asciidoc
Expand Up @@ -19,7 +19,7 @@ HTTPD] servers. The default metricset is `status`.
[float]
=== Compatibility

The Apache metricsets were tested with Apache 2.4.12 and 2.4.20 and are expected to work with
The Apache metricsets were tested with Apache 2.4.12 and 2.4.54 and are expected to work with
all versions >= 2.2.31 and >= 2.4.16.


Expand Down
2 changes: 1 addition & 1 deletion metricbeat/docs/modules/nginx.asciidoc
Expand Up @@ -21,7 +21,7 @@ The default metricset is `stubstatus`.
[float]
=== Compatibility

The Nginx metricsets were tested with Nginx 1.9 and are expected to work with all version
The Nginx metricsets were tested with Nginx 1.23.2 and are expected to work with all version
>= 1.9.

[float]
Expand Down
3 changes: 1 addition & 2 deletions metricbeat/module/apache/_meta/Dockerfile
@@ -1,6 +1,5 @@
ARG APACHE_VERSION=${APACHE_VERSION}
FROM httpd:$APACHE_VERSION
RUN sed -i "/jessie-updates/d" /etc/apt/sources.list
RUN apt-get update && apt-get install -y curl
RUN apt update && yes | apt install curl
HEALTHCHECK --interval=1s --retries=90 CMD curl -f http://localhost
COPY ./httpd.conf /usr/local/apache2/conf/httpd.conf
2 changes: 1 addition & 1 deletion metricbeat/module/apache/_meta/docs.asciidoc
Expand Up @@ -8,7 +8,7 @@ HTTPD] servers. The default metricset is `status`.
[float]
=== Compatibility

The Apache metricsets were tested with Apache 2.4.12 and 2.4.20 and are expected to work with
The Apache metricsets were tested with Apache 2.4.12 and 2.4.54 and are expected to work with
all versions >= 2.2.31 and >= 2.4.16.


Expand Down
3 changes: 2 additions & 1 deletion metricbeat/module/apache/_meta/httpd.conf
Expand Up @@ -63,6 +63,7 @@ Listen 80
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
Expand Down Expand Up @@ -190,7 +191,7 @@ ServerAdmin you@example.com
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
ServerName localhost

#
# Deny access to the entirety of your server's filesystem. You must
Expand Down
6 changes: 4 additions & 2 deletions metricbeat/module/apache/_meta/supported-versions.yml
@@ -1,3 +1,5 @@
# all the versions have to be the valid semantic version syntax x.x.x
# because of the test check for comparing against older field structure
variants:
- APACHE_VERSION: 2.4.12
- APACHE_VERSION: 2.4.20
- APACHE_VERSION: "2.4.54"
- APACHE_VERSION: "2.4.12"
6 changes: 3 additions & 3 deletions metricbeat/module/apache/docker-compose.yml
@@ -1,11 +1,11 @@
version: '2.3'
version: "2.3"

services:
apache:
image: docker.elastic.co/integrations-ci/beats-apache:${APACHE_VERSION:-2.4.20}-1
image: docker.elastic.co/integrations-ci/beats-apache:${APACHE_VERSION:-2.4.54}-1
build:
context: ./_meta
args:
APACHE_VERSION: ${APACHE_VERSION:-2.4.20}
APACHE_VERSION: "${APACHE_VERSION:-2.4.54}"
ports:
- 80
12 changes: 11 additions & 1 deletion metricbeat/module/logstash/logstash_integration_test.go
Expand Up @@ -25,10 +25,12 @@ import (
"io/ioutil"
"net/http"
"testing"
"time"

"github.com/stretchr/testify/require"

"github.com/elastic/beats/v7/libbeat/tests/compose"
"github.com/elastic/beats/v7/metricbeat/mb"
mbtest "github.com/elastic/beats/v7/metricbeat/mb/testing"
"github.com/elastic/beats/v7/metricbeat/module/logstash"
_ "github.com/elastic/beats/v7/metricbeat/module/logstash/node"
Expand All @@ -47,7 +49,15 @@ func TestFetch(t *testing.T) {
t.Run(metricSet, func(t *testing.T) {
config := getConfig(metricSet, service.Host())
f := mbtest.NewReportingMetricSetV2Error(t, config)
events, errs := mbtest.ReportingFetchV2Error(f)
var (
events []mb.Event
errs []error
)

require.Eventually(t, func() bool {
events, errs = mbtest.ReportingFetchV2Error(f)
return len(events) > 0 && len(errs) == 0
}, 30*time.Second, time.Second, "events cannot be empty: %v, %v", events, errs)

require.Empty(t, errs)
require.NotEmpty(t, events)
Expand Down
3 changes: 1 addition & 2 deletions metricbeat/module/mongodb/_meta/Dockerfile
@@ -1,5 +1,4 @@
ARG MONGODB_VERSION
FROM mongo:${MONGODB_VERSION}
RUN sed -i "/jessie-updates/d" /etc/apt/sources.list
RUN apt-get update && apt-get install -y netcat
RUN apt update && yes | apt install netcat
HEALTHCHECK --interval=1s --retries=90 CMD nc -z localhost 27017
4 changes: 2 additions & 2 deletions metricbeat/module/mongodb/docker-compose.yml
@@ -1,12 +1,12 @@
version: '2.3'
version: "2.3"

services:
mongodb:
image: docker.elastic.co/integrations-ci/beats-mongodb:${MONGODB_VERSION:-3.4}-1
build:
context: ./_meta
args:
MONGODB_VERSION: ${MONGODB_VERSION:-3.4}
MONGODB_VERSION: "${MONGODB_VERSION:-3.4}"
command: mongod --replSet beats
ports:
- 27017
3 changes: 1 addition & 2 deletions metricbeat/module/nginx/_meta/Dockerfile
@@ -1,6 +1,5 @@
ARG NGINX_VERSION
FROM nginx:${NGINX_VERSION}
RUN sed -i "/jessie-updates/d" /etc/apt/sources.list
RUN apt-get update && apt-get install -y curl
RUN apt update && apt install -y curl
HEALTHCHECK --interval=1s --retries=90 CMD curl -f http://localhost/nginx_status
COPY ./nginx.conf /etc/nginx/
2 changes: 1 addition & 1 deletion metricbeat/module/nginx/_meta/docs.asciidoc
Expand Up @@ -10,7 +10,7 @@ The default metricset is `stubstatus`.
[float]
=== Compatibility

The Nginx metricsets were tested with Nginx 1.9 and are expected to work with all version
The Nginx metricsets were tested with Nginx 1.23.2 and are expected to work with all version
>= 1.9.

[float]
Expand Down
8 changes: 4 additions & 4 deletions metricbeat/module/nginx/docker-compose.yml
@@ -1,11 +1,11 @@
version: '2.3'
version: "2.3"

services:
nginx:
image: docker.elastic.co/integrations-ci/beats-nginx:${NGINX_VERSION:-1.9}-1
build:
image: docker.elastic.co/integrations-ci/beats-nginx:${NGINX_VERSION:-1.23.2}-1
build:
context: ./_meta
args:
NGINX_VERSION: ${NGINX_VERSION:-1.9}
NGINX_VERSION: "${NGINX_VERSION:-1.23.2}"
ports:
- 80

0 comments on commit 8c7cc70

Please sign in to comment.