feat(logs): make it so rule logs-setup isn't necessary

This commit is contained in:
Maieul BOYER 2025-11-14 17:58:45 +01:00
parent 3ef811b334
commit 8dd0a74046
No known key found for this signature in database
9 changed files with 49 additions and 11 deletions

View file

@ -6,10 +6,12 @@
# By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/06/11 18:10:26 by maiboyer #+# #+# #
# Updated: 2025/11/14 16:13:22 by rparodi ### ########.fr #
# Updated: 2025/11/14 17:41:06 by maiboyer ### ########.fr #
# #
# **************************************************************************** #
.PHONY: logs
all: build
docker compose up -d

View file

@ -6,7 +6,7 @@
# By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/11/12 11:05:05 by rparodi #+# #+# #
# Updated: 2025/11/14 15:14:34 by rparodi ### ########.fr #
# Updated: 2025/11/14 17:40:57 by maiboyer ### ########.fr #
# #
# **************************************************************************** #
@ -32,7 +32,6 @@ ECHO = /usr/bin/env echo
all:
@$(MAKE) --no-print-directory header
@$(MAKE) --no-print-directory -f ./Docker.mk
@$(MAKE) --no-print-directory -f ./Docker.mk logs-setup
@$(MAKE) --no-print-directory footer
build:
@ -158,4 +157,4 @@ fnginx: nginx-dev/nginx-selfsigned.crt nginx-dev/nginx-selfsigned.key
wait
# phony
.PHONY: all clean fclean re header footer npm@install npm@clean npm@fclean npm@build sql tmux
.PHONY: all clean fclean re header footer npm@install npm@clean npm@fclean npm@build sql tmux logs

View file

@ -249,9 +249,11 @@ services:
- ES_JAVA_OPTS=-Xms512m -Xmx512m
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
volumes:
- ./logs/elasticsearch/data:/usr/share/elasticsearch/data
- elastic-data:/usr/share/elasticsearch/data
- ./logs/elasticsearch:/setup
ports:
- "9200:9200"
command: ["/setup/bootstrap.sh"]
restart: unless-stopped
logstash:
@ -281,6 +283,9 @@ services:
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
ports:
- "5601:5601"
volumes:
- ./logs/kibana:/setup
command: ["/setup/bootstrap.sh"]
restart: unless-stopped
volumes:
@ -288,3 +293,4 @@ volumes:
sqlite-volume:
static-volume:
grafana-data:
elastic-data:

19
logs/elasticsearch/bootstrap.sh Executable file
View file

@ -0,0 +1,19 @@
#!/bin/sh
setup_ilm() {
set -xe
until curl -s -f http://localhost:9200 >/dev/null; do
sleep 2;
done;
curl -v -X PUT "localhost:9200/_ilm/policy/docker-logs-policy" \
-H "Content-Type: application/json" \
-d '@/setup/docker-logs-policy.json'
curl -v -X PUT "localhost:9200/_template/docker-logs-template" \
-H "Content-Type: application/json" \
-d '@/setup/docker-logs-template.json'
exit 0
}
setup_ilm &
exec /usr/local/bin/docker-entrypoint.sh eswrapper >/dev/null

View file

@ -0,0 +1 @@
{"index_patterns":["docker-*"],"settings":{"index.lifecycle.name":"docker-logs-policy"}}}

View file

@ -1,6 +0,0 @@
{
"index_patterns": ["docker-*"],
"settings": {
"index.lifecycle.name": "docker-logs-policy"
}
}

16
logs/kibana/bootstrap.sh Executable file
View file

@ -0,0 +1,16 @@
#!/bin/sh
kibana_setup() {
set -xe
until curl -s -f "localhost:5601/api/status"; do
sleep 2
done
curl -v -X POST "localhost:5601/api/saved_objects/index-pattern/docker-logs" \
-H "kbn-xsrf: true" \
-H "Content-Type: application/json" \
-d '@/setup/docker-logs.json'
exit 0
}
kibana_setup &
exec /usr/local/bin/kibana-docker >/dev/null

View file

@ -0,0 +1 @@
{"attributes":{"title":"docker-*","timeFieldName":"@timestamp"}}