[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-grid5k] 39/141: first monitoring setup
From: |
gnunet |
Subject: |
[taler-grid5k] 39/141: first monitoring setup |
Date: |
Thu, 18 Nov 2021 14:49:40 +0100 |
This is an automated email from the git hooks/post-receive script.
marco-boss pushed a commit to branch master
in repository grid5k.
commit 74c413e677b7259f4605461817cbec6b2246cbaf
Author: Boss Marco <bossm8@bfh.ch>
AuthorDate: Tue Oct 12 00:12:14 2021 +0200
first monitoring setup
---
configs/etc/monitor/loki.yaml | 69 ++++++++++++++++++++++
configs/etc/monitor/prometheus.yaml | 0
configs/etc/monitor/promtail.yaml | 18 ++++++
configs/usr/lib/systemd/system/loki.service | 9 +++
configs/usr/lib/systemd/system/promtail.service | 9 +++
.../usr/lib/systemd/system}/taler-fakebank.service | 0
experiment/cleardns.sh | 2 +-
experiment/env | 7 +++
experiment/run.sh | 19 ++++++
experiment/scripts/database.sh | 2 +-
experiment/scripts/exchange.sh | 4 +-
experiment/scripts/monitor.sh | 3 +
experiment/scripts/proxy.sh | 2 +-
13 files changed, 140 insertions(+), 4 deletions(-)
diff --git a/configs/etc/monitor/loki.yaml b/configs/etc/monitor/loki.yaml
new file mode 100644
index 0000000..3ba496a
--- /dev/null
+++ b/configs/etc/monitor/loki.yaml
@@ -0,0 +1,69 @@
+auth_enabled: false
+
+server:
+ http_listen_port: 8080
+ grpc_listen_port: 0
+
+ingester:
+ wal:
+ enabled: true
+ dir: /tmp/wal
+ lifecycler:
+ address: 127.0.0.1
+ ring:
+ kvstore:
+ store: inmemory
+ replication_factor: 1
+ final_sleep: 0s
+ chunk_idle_period: 1h # Any chunk not receiving new logs in this time
will be flushed
+ max_chunk_age: 1h # All chunks will be flushed when they hit this
age, default is 1h
+ chunk_target_size: 1048576 # Loki will attempt to build chunks up to 1.5MB,
flushing first if chunk_idle_period or max_chunk_age is reached first
+ chunk_retain_period: 30s # Must be greater than index read cache TTL if
using an index cache (Default index read cache TTL is 5m)
+ max_transfer_retries: 0 # Chunk transfers disabled
+
+schema_config:
+ configs:
+ - from: 2020-10-24
+ store: boltdb-shipper
+ object_store: filesystem
+ schema: v11
+ index:
+ prefix: index_
+ period: 24h
+
+storage_config:
+ boltdb_shipper:
+ active_index_directory: /tmp/loki/boltdb-shipper-active
+ cache_location: /tmp/loki/boltdb-shipper-cache
+ cache_ttl: 24h # Can be increased for faster performance over
longer query periods, uses more disk space
+ shared_store: filesystem
+ filesystem:
+ directory: /tmp/loki/chunks
+
+compactor:
+ working_directory: /tmp/loki/boltdb-shipper-compactor
+ shared_store: filesystem
+
+limits_config:
+ reject_old_samples: true
+ reject_old_samples_max_age: 168h
+ unordered_writes: true
+
+chunk_store_config:
+ max_look_back_period: 0s
+
+table_manager:
+ retention_deletes_enabled: false
+ retention_period: 0s
+
+ #ruler:
+ # storage:
+ # type: local
+ # local:
+ # directory: /tmp/loki/rules
+ # rule_path: /tmp/loki/rules-temp
+ # alertmanager_url: http://localhost:9093
+ # ring:
+ # kvstore:
+ # store: inmemory
+ # enable_api: true
diff --git a/configs/etc/monitor/prometheus.yaml
b/configs/etc/monitor/prometheus.yaml
new file mode 100644
index 0000000..e69de29
diff --git a/configs/etc/monitor/promtail.yaml
b/configs/etc/monitor/promtail.yaml
new file mode 100644
index 0000000..a63a6c2
--- /dev/null
+++ b/configs/etc/monitor/promtail.yaml
@@ -0,0 +1,18 @@
+server:
+ http_listen_port: 9080
+ grpc_listen_port: 0
+
+positions:
+ filename: /tmp/positions.yaml
+
+clients:
+ - url: http://monitor.perf.taler:8080/loki/api/v1/push
+
+scrape_configs:
+- job_name: system
+ static_configs:
+ - targets:
+ - localhost
+ labels:
+ job: varlogs
+ __path__: /var/log/*log
diff --git a/configs/usr/lib/systemd/system/loki.service
b/configs/usr/lib/systemd/system/loki.service
new file mode 100644
index 0000000..8e5acdb
--- /dev/null
+++ b/configs/usr/lib/systemd/system/loki.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Grafana Loki instance
+
+[Service]
+Type=simple
+ExecStart=/usr/local/bin/loki --config.file=/etc/monitor/loki.yaml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/configs/usr/lib/systemd/system/promtail.service
b/configs/usr/lib/systemd/system/promtail.service
new file mode 100644
index 0000000..a0f971d
--- /dev/null
+++ b/configs/usr/lib/systemd/system/promtail.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Grafana Promtail instance
+
+[Service]
+Type=simple
+ExecStart=/usr/local/bin/promtail --config.file=/etc/monitor/promtail.yaml
+
+[Install]
+WantedBy=multi-user.target
diff --git a/image/grid5000/steps/data/taler-fakebank.service
b/configs/usr/lib/systemd/system/taler-fakebank.service
similarity index 100%
rename from image/grid5000/steps/data/taler-fakebank.service
rename to configs/usr/lib/systemd/system/taler-fakebank.service
diff --git a/experiment/cleardns.sh b/experiment/cleardns.sh
index 0e899ad..f71c17b 100644
--- a/experiment/cleardns.sh
+++ b/experiment/cleardns.sh
@@ -6,7 +6,7 @@ source .env
# Delete all old dns entries of the previous experitment
while IFS='=' read -r name value; do
- if [[ $name == *"_DOMAIN" && $value == *".${DNS_ZONE}" ]]; then
+ if [[ $name == *"_DOMAIN" || $name == *"_CNAME" ]] && [[ $value ==
*".${DNS_ZONE}" ]]; then
nsupdate -k /root/ddns.key -v << EOF
server ${DNS_HOST}
zone ${DNS_ZONE}
diff --git a/experiment/env b/experiment/env
index 6c894e4..fe2465a 100755
--- a/experiment/env
+++ b/experiment/env
@@ -3,6 +3,7 @@ EXCHANGE_HOSTS=
PROXY_HOSTS=
BANK_HOSTS=
WALLET_HOSTS=
+MONITOR_HOSTS=
DNS_HOST=taler.net
DNS_ZONE=perf.taler
@@ -12,6 +13,12 @@ EXCHANGE_DOMAIN=exch.perf.taler
DATABASE_DOMAIN=db.perf.taler
BANK_DOMAIN=bank.perf.taler
+PROMETHEUS_CNAME=prometheus.perf.taler
+LOKI_CNAME=loki.perf.taler
+
+PROMETHEUS_PORT=http
+LOKI_PORT=http8080
+
DB_NAME=taler-exchange
DB_USER=taler
DB_PASSWORD=
diff --git a/experiment/run.sh b/experiment/run.sh
index a80f184..1ba6a5c 100644
--- a/experiment/run.sh
+++ b/experiment/run.sh
@@ -16,6 +16,18 @@ send
EOF
}
+# Set a cname record to the external grid5000 proxy
+# argument 1: cname to be added
+# argument 2: grid5000 port, one of http, http8080
+function set_cname() {
+ nsupdate -k /root/ddns.key -v << EOF
+server ${DNS_HOST}
+zone ${DNS_ZONE}
+update add $1 IN CNAME $(hostname | cut -d "." -f 1,2 -).$2.proxy.grid5000.fr
+send
+EOF
+}
+
case "${HOSTNAME}" in
${BANK_HOSTS})
echo "BANK"
@@ -41,6 +53,13 @@ case "${HOSTNAME}" in
set_ddn ${EXCHANGE_DOMAIN}
exec ~/scripts/exchange.sh
;;
+ ${MONITOR_HOSTS})
+ echo "MONITOR"
+ set_ddn ${MONITOR_DOMAIN}
+ set_cname ${PROMETHEUS_CNAME} ${PROMETHEUS_PORT}
+ set_cname ${LOKI_CNAME} ${LOKI_PORT}
+ exec ~/scripts/monitor.sh
+ ;;
esac
exit 0
diff --git a/experiment/scripts/database.sh b/experiment/scripts/database.sh
index 490a686..bf351de 100755
--- a/experiment/scripts/database.sh
+++ b/experiment/scripts/database.sh
@@ -10,7 +10,7 @@ sed -i "s\<DB_URL_HERE>\postgresql:///${DB_NAME}\g" \
echo "listen_addresses='*'" >> /etc/postgresql/13/main/postgresql.conf
echo "host all all 172.16.0.0/12 md5" >> /etc/postgresql/13/main/pg_hba.conf
-systemctl start postgresql
+systemctl restart postgresql prometheus-postgres-exporter
su postgres << EOF
createuser taler-exchange-httpd
diff --git a/experiment/scripts/exchange.sh b/experiment/scripts/exchange.sh
index a832429..aa15bfc 100755
--- a/experiment/scripts/exchange.sh
+++ b/experiment/scripts/exchange.sh
@@ -1,6 +1,8 @@
#!/bin/bash
set -eux
+systemctl restart promtail
+
sed -i
"s\<DB_URL_HERE>\postgresql://${DB_USER}:${DB_PASSWORD}@${DATABASE_DOMAIN}/${DB_NAME}\g"
\
/etc/taler/secrets/exchange-db.secret.conf
@@ -30,7 +32,7 @@ done
sleep 1
-systemctl start taler-exchange.target
+systemctl restart taler-exchange.target
until wget http://${EXCHANGE_DOMAIN}/management/keys \
--spider \
diff --git a/experiment/scripts/monitor.sh b/experiment/scripts/monitor.sh
new file mode 100755
index 0000000..33ce041
--- /dev/null
+++ b/experiment/scripts/monitor.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+systemctl enable prometheus loki
diff --git a/experiment/scripts/proxy.sh b/experiment/scripts/proxy.sh
index 3b65787..05b75b4 100755
--- a/experiment/scripts/proxy.sh
+++ b/experiment/scripts/proxy.sh
@@ -14,4 +14,4 @@ do
sleep 1
done
-systemctl restart nginx
+systemctl restart nginx prometheus-nginx-exporter
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-grid5k] 26/141: undo removing grid5000 nameservers, (continued)
- [taler-grid5k] 26/141: undo removing grid5000 nameservers, gnunet, 2021/11/18
- [taler-grid5k] 60/141: fix rsyslog config and logger messages for wallet, gnunet, 2021/11/18
- [taler-grid5k] 69/141: script aborts with ((i++)) ?? set to 'let "i+=1"', gnunet, 2021/11/18
- [taler-grid5k] 13/141: add bind, gnunet, 2021/11/18
- [taler-grid5k] 35/141: add monitorig components, gnunet, 2021/11/18
- [taler-grid5k] 61/141: fix wallet script, gnunet, 2021/11/18
- [taler-grid5k] 59/141: fix sed, gnunet, 2021/11/18
- [taler-grid5k] 14/141: add dyndns to setup script, gnunet, 2021/11/18
- [taler-grid5k] 27/141: update dns config and scripts, gnunet, 2021/11/18
- [taler-grid5k] 24/141: add resolv.conf, gnunet, 2021/11/18
- [taler-grid5k] 39/141: first monitoring setup,
gnunet <=
- [taler-grid5k] 73/141: switch branch in wallet build, gnunet, 2021/11/18
- [taler-grid5k] 17/141: add nohup, add dnsutils to build image, gnunet, 2021/11/18
- [taler-grid5k] 20/141: fix exchange script, gnunet, 2021/11/18
- [taler-grid5k] 28/141: updated dns, gnunet, 2021/11/18
- [taler-grid5k] 36/141: fix typo, gnunet, 2021/11/18
- [taler-grid5k] 18/141: update enviroment at start of script, gnunet, 2021/11/18
- [taler-grid5k] 22/141: add proxy, gnunet, 2021/11/18
- [taler-grid5k] 37/141: update image, gnunet, 2021/11/18
- [taler-grid5k] 51/141: add tests with parallel, gnunet, 2021/11/18
- [taler-grid5k] 55/141: add possibilty for dynamic amount of wallets, gnunet, 2021/11/18