Skip to content
This repository was archived by the owner on Dec 14, 2022. It is now read-only.

Commit a8be845

Browse files
author
Chris Wiechmann
committed
Now using Metricbeat by default / Metricbeat also collects other metrics
Legacy monitoring can be activated if needed.
1 parent a1e4fe6 commit a8be845

22 files changed

+1847
-8
lines changed

.github/workflows/release-axway-elk-apim.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
steps:
1515
- uses: actions/checkout@v2
1616
- name: Create release archive
17-
run: tar --transform 's,^,${{ env.RELEASE_NAME }}/,' -czvf ${{ env.RELEASE_NAME }}.tar.gz config elasticsearch filebeat kibana logstash docker-compose.yml nodemanager README.md CHANGELOG.md env-sample
17+
run: tar --transform 's,^,${{ env.RELEASE_NAME }}/,' -czvf ${{ env.RELEASE_NAME }}.tar.gz config elasticsearch filebeat kibana logstash docker-compose.yml nodemanager metricbeat README.md CHANGELOG.md env-sample
1818
- name: create-checksum
1919
run: sha256sum "${{ env.RELEASE_NAME }}".tar.gz >${{ env.RELEASE_NAME }}-checksum.txt
2020
- name: upload-archive

docker-compose.yml

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ services:
88
entrypoint: /usr/share/logstash/scripts/custom-entrypoint.sh
99
container_name: logstash
1010
environment:
11-
- node.name=${LOGSTASH_NODE_NAME:Logstash-1}
12-
- xpack.monitoring.enabled=true
11+
- node.name=${LOGSTASH_NODE_NAME:-Logstash-1}
12+
- xpack.monitoring.enabled=${SELF_MONITORING_ENABLED:-false}
1313
- xpack.monitoring.elasticsearch.ssl.certificate_authority=${ELASTICSEARCH_CA}
1414
- xpack.monitoring.elasticsearch.hosts=[${ELASTICSEARCH_HOSTS}]
1515
- xpack.monitoring.elasticsearch.username=${LOGSTASH_SYSTEM_USERNAME}
@@ -56,7 +56,12 @@ services:
5656

5757
# This is the API-Builder project exposing the API-Gateway Manager REST-API
5858
apibuilder4elastic:
59-
image: cwiechmann/apibuilder4elastic:v2.0.0
59+
image: cwiechmann/apibuilder4elastic:latest
60+
restart: always
61+
deploy:
62+
restart_policy:
63+
delay: 20s
64+
window: 120s
6065
container_name: apibuilder4elastic
6166
environment:
6267
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
@@ -87,8 +92,47 @@ services:
8792
max-file: "3"
8893
max-size: "10m"
8994

95+
# Metricbeat monitoring Memcache, API-Builder and Logstash
96+
metricbeat:
97+
image: docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}
98+
entrypoint: /usr/local/scripts/metricbeat-entrypoint.sh
99+
container_name: metricbeat
100+
# Define a fixed hostname to be reported back to Kibana
101+
hostname: Logstash-APIBuilder
102+
command: --strict.perms=false -e -c configs/metricbeat.logstash-apibuilder-memcache.yml
103+
user: root # Required to monitor docker containers
104+
environment:
105+
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
106+
- KIBANA_HOST=${KIBANA_HOST}
107+
- ELASTICSEARCH_CLUSTER_UUID=${ELASTICSEARCH_CLUSTER_UUID}
108+
- ELASTICSEARCH_CA=${ELASTICSEARCH_CA}
109+
- METRICBEAT_USERNAME=${METRICBEAT_USERNAME}
110+
- METRICBEAT_PASSWORD=${METRICBEAT_PASSWORD}
111+
- METRICBEAT_ENABLED=${METRICBEAT_ENABLED}
112+
- METRICBEAT_SETUP_DASHBOARDS=${METRICBEAT_SETUP_DASHBOARDS}
113+
ports:
114+
- 9000:9000
115+
volumes:
116+
- type: volume
117+
source: metricbeatdata
118+
target: /usr/share/metricbeat/data # Required to make sure that Filebeat remembers the last position, even if the container is recreated
119+
- /etc/localtime:/etc/localtime:ro # Required to sync timezone of the server into the Filebeat Docker-Container
120+
- ${PWD}/metricbeat/configs:/usr/share/metricbeat/configs
121+
- ${PWD}/metricbeat/activeDashboards:/usr/share/metricbeat/activeDashboards
122+
- /var/lib/docker/containers:/var/lib/docker/containers:ro
123+
- /var/run/docker.sock:/var/run/docker.sock
124+
- ${PWD}/config/certificates:/usr/share/metricbeat/config/certificates
125+
- ${PWD}/metricbeat/scripts:/usr/local/scripts
126+
networks:
127+
- elastic
128+
logging:
129+
options:
130+
max-file: "3"
131+
max-size: "10m"
132+
90133
volumes:
91134
logs:
135+
metricbeatdata:
92136

93137
networks:
94138
elastic:

elasticsearch/config/elasticsearch.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ xpack.security.enabled: true
2121
#xpack.security.authc.anonymous.roles: kibana_admin, superuser, beats_system, logstash_system
2222
#xpack.security.authc.anonymous.username: anonymous
2323

24-
xpack.monitoring.collection.enabled: true
24+
xpack.monitoring.collection.enabled: ${SELF_MONITORING_ENABLED:false}
2525

2626
# Don't enable this - This is just for testing!
2727
#cluster.routing.allocation.disk.watermark.high: "94%"

elasticsearch/docker-compose.es01.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ services:
1212
- node.name=Elasticsearch 1
1313
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
1414
- ELASTICSEARCH_ANONYMOUS_ENABLED=${ELASTICSEARCH_ANONYMOUS_ENABLED:-true}
15+
- SELF_MONITORING_ENABLED=${SELF_MONITORING_ENABLED}
1516
- xpack.security.enabled=true
1617
- xpack.security.http.ssl.enabled=true
1718
- xpack.security.http.ssl.key=/usr/share/elasticsearch/${ELASTICSEARCH_KEY}
@@ -57,9 +58,45 @@ services:
5758
max-file: "5"
5859
max-size: "10m"
5960

61+
# Metricbeat monitoring Elasticsearch node 1
62+
metricbeatES:
63+
image: docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}
64+
entrypoint: /usr/local/scripts/metricbeat-entrypoint.sh
65+
container_name: metricbeatES1
66+
hostname: Elasticsearch1
67+
command: --strict.perms=false -e -c configs/metricbeat.elasticsearch-kibana.yml
68+
user: root # Required to monitor docker containers
69+
environment:
70+
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
71+
- KIBANA_HOST=${KIBANA_HOST}
72+
- ELASTICSEARCH_CLUSTER_UUID=${ELASTICSEARCH_CLUSTER_UUID}
73+
- ELASTICSEARCH_CA=${ELASTICSEARCH_CA}
74+
- METRICBEAT_USERNAME=${METRICBEAT_USERNAME}
75+
- METRICBEAT_PASSWORD=${METRICBEAT_PASSWORD}
76+
- METRICBEAT_ENABLED=${METRICBEAT_ENABLED}
77+
- METRICBEAT_SETUP_DASHBOARDS=${METRICBEAT_SETUP_DASHBOARDS}
78+
volumes:
79+
- type: volume
80+
source: metricbeatdata
81+
target: /usr/share/metricbeat/data
82+
- /etc/localtime:/etc/localtime:ro # Required to sync timezone of the server into the Filebeat Docker-Container
83+
- ${PWD}/metricbeat/configs:/usr/share/metricbeat/configs
84+
- ${PWD}/metricbeat/activeDashboards:/usr/share/metricbeat/activeDashboards
85+
- /var/lib/docker/containers:/var/lib/docker/containers:ro
86+
- /var/run/docker.sock:/var/run/docker.sock
87+
- ${PWD}/config/certificates:/usr/share/metricbeat/config/certificates
88+
- ${PWD}/metricbeat/scripts:/usr/local/scripts
89+
networks:
90+
- elastic
91+
logging:
92+
options:
93+
max-file: "3"
94+
max-size: "10m"
95+
6096
volumes:
6197
esdata1:
6298
logs:
99+
metricbeatdata:
63100

64101
networks:
65102
elastic:

elasticsearch/docker-compose.es02.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ services:
1212
- node.name=Elasticsearch 2
1313
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
1414
- ELASTICSEARCH_ANONYMOUS_ENABLED=${ELASTICSEARCH_ANONYMOUS_ENABLED:-true}
15+
- SELF_MONITORING_ENABLED=${SELF_MONITORING_ENABLED}
1516
- xpack.security.enabled=true
1617
- xpack.security.http.ssl.enabled=true
1718
- xpack.security.http.ssl.key=/usr/share/elasticsearch/${ELASTICSEARCH_KEY}
@@ -57,9 +58,51 @@ services:
5758
max-file: "5"
5859
max-size: "10m"
5960

61+
# Metricbeat monitoring Elasticsearch node 1
62+
metricbeatES:
63+
image: docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}
64+
entrypoint: /usr/local/scripts/metricbeat-entrypoint.sh
65+
container_name: metricbeatES2
66+
hostname: Elasticsearch2
67+
command: --strict.perms=false -c configs/metricbeat.elasticsearch-container.yml -e -system.hostfs=/hostfs
68+
user: root # Required to monitor docker containers
69+
environment:
70+
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
71+
- KIBANA_HOST=${KIBANA_HOST}
72+
- ELASTICSEARCH_CLUSTER_UUID=${ELASTICSEARCH_CLUSTER_UUID}
73+
- ELASTICSEARCH_CA=${ELASTICSEARCH_CA}
74+
- METRICBEAT_USERNAME=${METRICBEAT_USERNAME}
75+
- METRICBEAT_PASSWORD=${METRICBEAT_PASSWORD}
76+
- METRICBEAT_ENABLED=${METRICBEAT_ENABLED}
77+
- METRICBEAT_SETUP_DASHBOARDS=${METRICBEAT_SETUP_DASHBOARDS}
78+
volumes:
79+
- type: volume
80+
source: metricbeatdata
81+
target: /usr/share/metricbeat/data
82+
- /etc/localtime:/etc/localtime:ro # Required to sync timezone of the server into the Filebeat Docker-Container
83+
- ${PWD}/metricbeat/configs:/usr/share/metricbeat/configs
84+
- ${PWD}/metricbeat/activeDashboards:/usr/share/metricbeat/activeDashboards
85+
- /var/lib/docker/containers:/var/lib/docker/containers:ro
86+
- /var/run/docker.sock:/var/run/docker.sock
87+
- ${PWD}/config/certificates:/usr/share/metricbeat/config/certificates
88+
- ${PWD}/metricbeat/scripts:/usr/local/scripts
89+
# Make it possible to monitor the host machine
90+
# See here: https://www.elastic.co/guide/en/beats/metricbeat/current/running-on-docker.html
91+
- /proc:/hostfs/proc:ro
92+
- /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
93+
- /:/hostfs:ro
94+
networks:
95+
- elastic
96+
97+
logging:
98+
options:
99+
max-file: "3"
100+
max-size: "10m"
101+
60102
volumes:
61103
esdata2:
62104
logs:
105+
metricbeatdata:
63106

64107
networks:
65108
elastic:

elasticsearch/docker-compose.es03.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ services:
1212
- node.name=Elasticsearch 3
1313
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
1414
- ELASTICSEARCH_ANONYMOUS_ENABLED=${ELASTICSEARCH_ANONYMOUS_ENABLED:-true}
15+
- SELF_MONITORING_ENABLED=${SELF_MONITORING_ENABLED}
1516
- xpack.security.enabled=true
1617
- xpack.security.http.ssl.enabled=true
1718
- xpack.security.http.ssl.key=/usr/share/elasticsearch/${ELASTICSEARCH_KEY}
@@ -57,9 +58,45 @@ services:
5758
max-file: "5"
5859
max-size: "10m"
5960

61+
# Metricbeat monitoring Elasticsearch node 1
62+
metricbeatES:
63+
image: docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}
64+
entrypoint: /usr/local/scripts/metricbeat-entrypoint.sh
65+
container_name: metricbeatES3
66+
hostname: Elasticsearch3
67+
command: --strict.perms=false -e -c configs/metricbeat.elasticsearch-container.yml
68+
user: root # Required to monitor docker containers
69+
environment:
70+
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
71+
- KIBANA_HOST=${KIBANA_HOST}
72+
- ELASTICSEARCH_CLUSTER_UUID=${ELASTICSEARCH_CLUSTER_UUID}
73+
- ELASTICSEARCH_CA=${ELASTICSEARCH_CA}
74+
- METRICBEAT_USERNAME=${METRICBEAT_USERNAME}
75+
- METRICBEAT_PASSWORD=${METRICBEAT_PASSWORD}
76+
- METRICBEAT_ENABLED=${METRICBEAT_ENABLED}
77+
- METRICBEAT_SETUP_DASHBOARDS=${METRICBEAT_SETUP_DASHBOARDS}
78+
volumes:
79+
- type: volume
80+
source: metricbeatdata
81+
target: /usr/share/metricbeat/data
82+
- /etc/localtime:/etc/localtime:ro # Required to sync timezone of the server into the Filebeat Docker-Container
83+
- ${PWD}/metricbeat/configs:/usr/share/metricbeat/configs
84+
- ${PWD}/metricbeat/activeDashboards:/usr/share/metricbeat/activeDashboards
85+
- /var/lib/docker/containers:/var/lib/docker/containers:ro
86+
- /var/run/docker.sock:/var/run/docker.sock
87+
- ${PWD}/config/certificates:/usr/share/metricbeat/config/certificates
88+
- ${PWD}/metricbeat/scripts:/usr/local/scripts
89+
networks:
90+
- elastic
91+
logging:
92+
options:
93+
max-file: "3"
94+
max-size: "10m"
95+
6096
volumes:
6197
esdata3:
6298
logs:
99+
metricbeatdata:
63100

64101
networks:
65102
elastic:

elasticsearch/docker-compose.es04.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ services:
1212
- node.name=Elasticsearch 4
1313
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
1414
- ELASTICSEARCH_ANONYMOUS_ENABLED=${ELASTICSEARCH_ANONYMOUS_ENABLED:-true}
15+
- SELF_MONITORING_ENABLED=${SELF_MONITORING_ENABLED}
1516
- xpack.security.enabled=true
1617
- xpack.security.http.ssl.enabled=true
1718
- xpack.security.http.ssl.key=/usr/share/elasticsearch/${ELASTICSEARCH_KEY}
@@ -57,9 +58,45 @@ services:
5758
max-file: "5"
5859
max-size: "10m"
5960

61+
# Metricbeat monitoring Elasticsearch node 1
62+
metricbeatES:
63+
image: docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}
64+
entrypoint: /usr/local/scripts/metricbeat-entrypoint.sh
65+
container_name: metricbeatES4
66+
hostname: Elasticsearch4
67+
command: --strict.perms=false -e -c configs/metricbeat.elasticsearch-container.yml
68+
user: root # Required to monitor docker containers
69+
environment:
70+
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
71+
- KIBANA_HOST=${KIBANA_HOST}
72+
- ELASTICSEARCH_CLUSTER_UUID=${ELASTICSEARCH_CLUSTER_UUID}
73+
- ELASTICSEARCH_CA=${ELASTICSEARCH_CA}
74+
- METRICBEAT_USERNAME=${METRICBEAT_USERNAME}
75+
- METRICBEAT_PASSWORD=${METRICBEAT_PASSWORD}
76+
- METRICBEAT_ENABLED=${METRICBEAT_ENABLED}
77+
- METRICBEAT_SETUP_DASHBOARDS=${METRICBEAT_SETUP_DASHBOARDS}
78+
volumes:
79+
- type: volume
80+
source: metricbeatdata
81+
target: /usr/share/metricbeat/data
82+
- /etc/localtime:/etc/localtime:ro # Required to sync timezone of the server into the Filebeat Docker-Container
83+
- ${PWD}/metricbeat/configs:/usr/share/metricbeat/configs
84+
- ${PWD}/metricbeat/activeDashboards:/usr/share/metricbeat/activeDashboards
85+
- /var/lib/docker/containers:/var/lib/docker/containers:ro
86+
- /var/run/docker.sock:/var/run/docker.sock
87+
- ${PWD}/config/certificates:/usr/share/metricbeat/config/certificates
88+
- ${PWD}/metricbeat/scripts:/usr/local/scripts
89+
networks:
90+
- elastic
91+
logging:
92+
options:
93+
max-file: "3"
94+
max-size: "10m"
95+
6096
volumes:
6197
esdata4:
6298
logs:
99+
metricbeatdata:
63100

64101
networks:
65102
elastic:

elasticsearch/docker-compose.es05.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ services:
1212
- node.name=Elasticsearch 5
1313
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
1414
- ELASTICSEARCH_ANONYMOUS_ENABLED=${ELASTICSEARCH_ANONYMOUS_ENABLED:-true}
15+
- SELF_MONITORING_ENABLED=${SELF_MONITORING_ENABLED}
1516
- xpack.security.enabled=true
1617
- xpack.security.http.ssl.enabled=true
1718
- xpack.security.http.ssl.key=/usr/share/elasticsearch/${ELASTICSEARCH_KEY}
@@ -57,9 +58,45 @@ services:
5758
max-file: "5"
5859
max-size: "10m"
5960

61+
# Metricbeat monitoring Elasticsearch node 1
62+
metricbeatES:
63+
image: docker.elastic.co/beats/metricbeat:${ELASTIC_VERSION}
64+
entrypoint: /usr/local/scripts/metricbeat-entrypoint.sh
65+
container_name: metricbeatES5
66+
hostname: Elasticsearch5
67+
command: --strict.perms=false -e -c configs/metricbeat.elasticsearch-container.yml
68+
user: root # Required to monitor docker containers
69+
environment:
70+
- ELASTICSEARCH_HOSTS=${ELASTICSEARCH_HOSTS}
71+
- KIBANA_HOST=${KIBANA_HOST}
72+
- ELASTICSEARCH_CLUSTER_UUID=${ELASTICSEARCH_CLUSTER_UUID}
73+
- ELASTICSEARCH_CA=${ELASTICSEARCH_CA}
74+
- METRICBEAT_USERNAME=${METRICBEAT_USERNAME}
75+
- METRICBEAT_PASSWORD=${METRICBEAT_PASSWORD}
76+
- METRICBEAT_ENABLED=${METRICBEAT_ENABLED}
77+
- METRICBEAT_SETUP_DASHBOARDS=${METRICBEAT_SETUP_DASHBOARDS}
78+
volumes:
79+
- type: volume
80+
source: metricbeatdata
81+
target: /usr/share/metricbeat/data
82+
- /etc/localtime:/etc/localtime:ro # Required to sync timezone of the server into the Filebeat Docker-Container
83+
- ${PWD}/metricbeat/configs:/usr/share/metricbeat/configs
84+
- ${PWD}/metricbeat/activeDashboards:/usr/share/metricbeat/activeDashboards
85+
- /var/lib/docker/containers:/var/lib/docker/containers:ro
86+
- /var/run/docker.sock:/var/run/docker.sock
87+
- ${PWD}/config/certificates:/usr/share/metricbeat/config/certificates
88+
- ${PWD}/metricbeat/scripts:/usr/local/scripts
89+
networks:
90+
- elastic
91+
logging:
92+
options:
93+
max-file: "3"
94+
max-size: "10m"
95+
6096
volumes:
6197
esdata5:
6298
logs:
99+
metricbeatdata:
63100

64101
networks:
65102
elastic:

0 commit comments

Comments
 (0)