From 210e3868f28c71255f4ff5cfa1aff9b3361421fd Mon Sep 17 00:00:00 2001 From: schnarkus <markus.simianer@yahoo.de> Date: Thu, 29 Aug 2024 16:04:37 +0200 Subject: [PATCH] add prometheus dev --- local-environment/prometheus.yml | 13 ++++++++ local-environment/setup-local.sh | 56 ++++++++++++++++++++++++-------- 2 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 local-environment/prometheus.yml diff --git a/local-environment/prometheus.yml b/local-environment/prometheus.yml new file mode 100644 index 0000000..5afeba5 --- /dev/null +++ b/local-environment/prometheus.yml @@ -0,0 +1,13 @@ +global: + scrape_interval: 15s + +scrape_configs: + - job_name: "prometheus" + scrape_interval: 5s + static_configs: + - targets: ["localhost:9090"] + + - job_name: "webservice" + scrape_interval: 15s + static_configs: + - targets: ["10.89.0.2:8080"] diff --git a/local-environment/setup-local.sh b/local-environment/setup-local.sh index 6e987f1..8be2e01 100755 --- a/local-environment/setup-local.sh +++ b/local-environment/setup-local.sh @@ -1,22 +1,42 @@ #!/bin/bash +# webservice container IMAGE_NAME="registry.bht-berlin.de:443/masi9606/webservice:dev" CONTAINER_NAME="webservice_container" CONTAINER_HTTP_PORT="8080" CONTAINER_HTTPS_PORT="8443" NGINX_CONF="/etc/nginx/sites-available/default" CERT_DIR="/etc/nginx/certs" -DOMAIN_NAME="webservice.local" +WEB_SERVICE_DOMAIN="webservice.local" + +# prometheus container +PROMETHEUS_IMAGE="prom/prometheus:latest" +PROMETHEUS_CONTAINER_NAME="prometheus_monitor" +PROMETHEUS_PORT="9090" +PROMETHEUS_DOMAIN="monitoring.local" +PROMETHEUS_CONFIG_FILE="prometheus.yml" + +# local network +NETWORK_NAME="dev_network" # Stop old containers podman stop $CONTAINER_NAME podman rm -f $CONTAINER_NAME +podman stop $PROMETHEUS_CONTAINER_NAME +podman rm -f $PROMETHEUS_CONTAINER_NAME -# Pull image +# Pull images podman pull $IMAGE_NAME +podman pull $PROMETHEUS_IMAGE -# Run container on both ports -podman run -d -p $CONTAINER_HTTP_PORT:$CONTAINER_HTTP_PORT -p $CONTAINER_HTTPS_PORT:$CONTAINER_HTTPS_PORT --name $CONTAINER_NAME $IMAGE_NAME +# Run webservice container +podman run -d \ + --name "$CONTAINER_NAME" \ + --network "$NETWORK_NAME" \ + --ip "10.89.0.2" \ + -p "$CONTAINER_HTTP_PORT:$CONTAINER_HTTP_PORT" \ + -p "$CONTAINER_HTTPS_PORT:$CONTAINER_HTTPS_PORT" \ + "$IMAGE_NAME" # Install packages podman exec -it $CONTAINER_NAME apt-get update @@ -26,7 +46,7 @@ podman exec -it $CONTAINER_NAME apt-get install -y openssl nginx systemctl curl podman exec -it $CONTAINER_NAME bash -c "mkdir -p $CERT_DIR && \ openssl req -x509 -nodes -days 365 -newkey rsa:4096 \ -keyout $CERT_DIR/nginx.key -out $CERT_DIR/nginx.crt \ - -subj '/CN=$DOMAIN_NAME'" + -subj '/CN=$WEB_SERVICE_DOMAIN'" podman cp default.conf $CONTAINER_NAME:$NGINX_CONF @@ -37,19 +57,29 @@ podman exec -it $CONTAINER_NAME systemctl restart nginx podman exec -it $CONTAINER_NAME sleep 5 # Add entry to /etc/hosts -podman exec -it $CONTAINER_NAME bash -c "echo '127.0.0.1 webservice.local' >> /etc/hosts" - -echo "Setup complete..." +podman exec -it $CONTAINER_NAME bash -c "echo '127.0.0.1 $WEB_SERVICE_DOMAIN' >> /etc/hosts" echo "Testing from inside..." -podman exec -it $CONTAINER_NAME curl -k https://$DOMAIN_NAME:$CONTAINER_HTTPS_PORT/ +podman exec -it $CONTAINER_NAME curl -k https://$WEB_SERVICE_DOMAIN:$CONTAINER_HTTPS_PORT/ echo "Testing from outside..." -sudo bash -c "echo '127.0.0.1 webservice.local' >> /etc/hosts" -curl -k https://$DOMAIN_NAME:$CONTAINER_HTTPS_PORT/ +sudo bash -c "echo '127.0.0.1 $WEB_SERVICE_DOMAIN' >> /etc/hosts" +curl -k https://$WEB_SERVICE_DOMAIN:$CONTAINER_HTTPS_PORT/ echo "Testing Redis..." -curl -k -X PUT --header 'Content-Type: text/plain; charset=utf-8' --data 'foo' https://$DOMAIN_NAME:$CONTAINER_HTTPS_PORT/state/bar +curl -k -X PUT --header 'Content-Type: text/plain; charset=utf-8' --data 'foo' https://$WEB_SERVICE_DOMAIN:$CONTAINER_HTTPS_PORT/state/bar # Check the value in the database -podman exec -it $CONTAINER_NAME redis-cli KEYS '*' \ No newline at end of file +podman exec -it $CONTAINER_NAME redis-cli KEYS '*' + +# Run Prometheus container +podman run -d \ + --name $PROMETHEUS_CONTAINER_NAME \ + --network $NETWORK_NAME --ip "10.89.0.3" \ + -p $PROMETHEUS_PORT:$PROMETHEUS_PORT \ + -v $PWD/$PROMETHEUS_CONFIG_FILE:/etc/prometheus/prometheus.yml:Z \ + $PROMETHEUS_IMAGE --config.file=/etc/prometheus/prometheus.yml + +# Test Prometheus +sudo bash -c "echo '127.0.0.1 $PROMETHEUS_DOMAIN' >> /etc/hosts" +curl http://$PROMETHEUS_DOMAIN:$PROMETHEUS_PORT/ \ No newline at end of file -- GitLab