From d413f0b3d71796ccebe1a831be49dd7b9f87c330 Mon Sep 17 00:00:00 2001 From: Jean Viaene Date: Wed, 30 Mar 2022 13:12:51 +0200 Subject: [PATCH 1/4] added installation of node exporter --- deb-package/build-deb.sh | 9 +++++++++ deb-package/pkg/after-install.sh | 1 + deb-package/pkg/before-remove.sh | 1 + deb-package/pkg/etc/dedis/dvoting/network.env | 3 ++- .../pkg/lib/systemd/system/prometheus.service | 16 ++++++++++++++++ go.sum | 4 +--- 6 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 deb-package/pkg/lib/systemd/system/prometheus.service diff --git a/deb-package/build-deb.sh b/deb-package/build-deb.sh index 90f3b9825..27f9856f1 100755 --- a/deb-package/build-deb.sh +++ b/deb-package/build-deb.sh @@ -16,6 +16,15 @@ cp $UKAPP_DIR/build/combine_shares_kvm-x86_64 $INSTALL_DIR DVOTING_CLI_DIR=".." cp $DVOTING_CLI_DIR/memcoin $INSTALL_DIR +# Prometheus Node Exporter +NE_DIR=/opt/prometheus +NE_VERSION="1.3.1" +mkdir -p ${NE_DIR} +source pkg/var/opt/dedis/node_exporter.env +wget https://github.com/prometheus/node_exporter/releases/download/v${NE_VERSION}/node_exporter-${NE_VERSION}.linux-amd64.tar.gz +tar xfz node_exporter-${NE_VERSION}.linux-amd64.tar.gz -C ${NE_DIR} +mv ${NE_DIR}/node_exporter-${NE_VERSION}.linux-amd64 ${NE_DIR}/node_exporter + # add config files cp -a pkg/etc deb cp -a pkg/lib deb diff --git a/deb-package/pkg/after-install.sh b/deb-package/pkg/after-install.sh index 74ed40ee2..24746e93d 100644 --- a/deb-package/pkg/after-install.sh +++ b/deb-package/pkg/after-install.sh @@ -31,3 +31,4 @@ enable_service ${DVOTING_SERVICE} systemctl start ${DVOTING_SERVICE} ln -s /opt/dedis/dvoting/bin/memcoin /usr/bin/memcoin +ln -s /opt/prometheus/node_exporter /usr/bin/node_exporter diff --git a/deb-package/pkg/before-remove.sh b/deb-package/pkg/before-remove.sh index dec70f1c2..de894dde1 100644 --- a/deb-package/pkg/before-remove.sh +++ b/deb-package/pkg/before-remove.sh @@ -5,3 +5,4 @@ systemctl stop dvoting.service systemctl stop dvoting-uk.service rm -f /usr/bin/memcoin +rm -f /usr/bin/node_exporter diff --git a/deb-package/pkg/etc/dedis/dvoting/network.env b/deb-package/pkg/etc/dedis/dvoting/network.env index 1c425aac2..ad52cc312 100644 --- a/deb-package/pkg/etc/dedis/dvoting/network.env +++ b/deb-package/pkg/etc/dedis/dvoting/network.env @@ -4,5 +4,6 @@ export uk_port="1024" export bridge_iface="uk0" export dela_port="9000" -export prometheus_addr="0.0.0.0:9100" export proxy_addr="0.0.0.0:9080" +export prometheus_addr="0.0.0.0:9100" +export node_exporter_addr=":9101" \ No newline at end of file diff --git a/deb-package/pkg/lib/systemd/system/prometheus.service b/deb-package/pkg/lib/systemd/system/prometheus.service new file mode 100644 index 000000000..b9082b028 --- /dev/null +++ b/deb-package/pkg/lib/systemd/system/prometheus.service @@ -0,0 +1,16 @@ +[Unit] +Description=Prometheus Node Service + +[Service] +User=dvoting + +ExecStartPre=source /etc/dedis/dvoting/network.env +ExecStart=/opt/prometheus/node_exporter --web.listen-address="${node_exporter_addr}" + +KillSignal=SIGINT + +Restart=on-failure +RestartSec=1 + +[Install] +WantedBy=multi-user.target diff --git a/go.sum b/go.sum index 9570227e8..59b364341 100644 --- a/go.sum +++ b/go.sum @@ -243,8 +243,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.dedis.ch/dela v0.0.0-20211018150429-1fdbe35cd189/go.mod h1:GVQ2MumgCcAkor2MmfRCoqTBsFjaaqt7HfJpQLhMGok= -go.dedis.ch/dela v0.0.0-20220323154142-09e1dea38ec7 h1:RgZlTINsC6skFRDxiT+1JspgI1NdwDX2DFBmamudSOU= -go.dedis.ch/dela v0.0.0-20220323154142-09e1dea38ec7/go.mod h1:r+9YxnSP/4xr5/RtgFXYlRQwfm5X/ySxTkTj2if0R/k= go.dedis.ch/dela v0.0.0-20220323172319-20a841138815 h1:vnisq8n8OkYhUDyEi2CL1bANRdZ7DCq+7pr5kQ0zNqo= go.dedis.ch/dela v0.0.0-20220323172319-20a841138815/go.mod h1:Rg2wuj6MuMYVXx3P2feTFJjOk8E81s6xxxyJ7o5oJ90= go.dedis.ch/dela-apps v0.0.0-20211019120455-a0db752a0ba0 h1:gPrJd+7QUuADpfToMKr80maGnjGPeB7ft7iNrkAtwGY= @@ -524,10 +522,10 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1 h1:SfXqXS5hkufcdZ/mHtYCh53P2b+92WQq/DZcKLgsFRs= google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= From 9bdd06a667b0f3d54aa7964b6cd19968ad16ead5 Mon Sep 17 00:00:00 2001 From: Jean Viaene Date: Wed, 30 Mar 2022 17:25:33 +0200 Subject: [PATCH 2/4] can deploy node exporter service --- deb-package/build-deb.sh | 8 ++++---- deb-package/pkg/after-install.sh | 5 ++++- deb-package/pkg/before-remove.sh | 2 +- .../system/{prometheus.service => exporter.service} | 3 +-- deb-package/pkg/opt/dedis/dvoting/bin/start-exporter | 5 +++++ 5 files changed, 15 insertions(+), 8 deletions(-) rename deb-package/pkg/lib/systemd/system/{prometheus.service => exporter.service} (53%) create mode 100755 deb-package/pkg/opt/dedis/dvoting/bin/start-exporter diff --git a/deb-package/build-deb.sh b/deb-package/build-deb.sh index 27f9856f1..20675c811 100755 --- a/deb-package/build-deb.sh +++ b/deb-package/build-deb.sh @@ -17,13 +17,13 @@ DVOTING_CLI_DIR=".." cp $DVOTING_CLI_DIR/memcoin $INSTALL_DIR # Prometheus Node Exporter -NE_DIR=/opt/prometheus +NE_DIR="deb/opt/exporter" NE_VERSION="1.3.1" mkdir -p ${NE_DIR} -source pkg/var/opt/dedis/node_exporter.env wget https://github.com/prometheus/node_exporter/releases/download/v${NE_VERSION}/node_exporter-${NE_VERSION}.linux-amd64.tar.gz -tar xfz node_exporter-${NE_VERSION}.linux-amd64.tar.gz -C ${NE_DIR} -mv ${NE_DIR}/node_exporter-${NE_VERSION}.linux-amd64 ${NE_DIR}/node_exporter +tar xfz node_exporter-${NE_VERSION}.linux-amd64.tar.gz +mv node_exporter-${NE_VERSION}.linux-amd64/* ${NE_DIR}/ +rm -rf node_exporter-${NE_VERSION}.linux-amd64* # add config files cp -a pkg/etc deb diff --git a/deb-package/pkg/after-install.sh b/deb-package/pkg/after-install.sh index 24746e93d..be94f6f4e 100644 --- a/deb-package/pkg/after-install.sh +++ b/deb-package/pkg/after-install.sh @@ -6,6 +6,7 @@ chown root:root /opt/dedis # allow ls in sub dirs chmod 755 /opt/dedis +chmod 755 /opt/exporter chown root:root /lib/systemd/system @@ -31,4 +32,6 @@ enable_service ${DVOTING_SERVICE} systemctl start ${DVOTING_SERVICE} ln -s /opt/dedis/dvoting/bin/memcoin /usr/bin/memcoin -ln -s /opt/prometheus/node_exporter /usr/bin/node_exporter + +enable_service exporter.service +systemctl start exporter.service diff --git a/deb-package/pkg/before-remove.sh b/deb-package/pkg/before-remove.sh index de894dde1..64f52a5f7 100644 --- a/deb-package/pkg/before-remove.sh +++ b/deb-package/pkg/before-remove.sh @@ -3,6 +3,6 @@ # stop service systemctl stop dvoting.service systemctl stop dvoting-uk.service +systemctl stop exporter.service rm -f /usr/bin/memcoin -rm -f /usr/bin/node_exporter diff --git a/deb-package/pkg/lib/systemd/system/prometheus.service b/deb-package/pkg/lib/systemd/system/exporter.service similarity index 53% rename from deb-package/pkg/lib/systemd/system/prometheus.service rename to deb-package/pkg/lib/systemd/system/exporter.service index b9082b028..92e6c213e 100644 --- a/deb-package/pkg/lib/systemd/system/prometheus.service +++ b/deb-package/pkg/lib/systemd/system/exporter.service @@ -4,8 +4,7 @@ Description=Prometheus Node Service [Service] User=dvoting -ExecStartPre=source /etc/dedis/dvoting/network.env -ExecStart=/opt/prometheus/node_exporter --web.listen-address="${node_exporter_addr}" +ExecStart=/opt/dedis/dvoting/bin/start-exporter KillSignal=SIGINT diff --git a/deb-package/pkg/opt/dedis/dvoting/bin/start-exporter b/deb-package/pkg/opt/dedis/dvoting/bin/start-exporter new file mode 100755 index 000000000..d25ea0aba --- /dev/null +++ b/deb-package/pkg/opt/dedis/dvoting/bin/start-exporter @@ -0,0 +1,5 @@ +#!/bin/bash + +source /etc/dedis/dvoting/network.env + +/opt/exporter/node_exporter --web.listen-address=${node_exporter_addr} From e6504593f651e20a987ca976bcf07acf4c4041c8 Mon Sep 17 00:00:00 2001 From: Jean Viaene Date: Thu, 31 Mar 2022 10:34:14 +0200 Subject: [PATCH 3/4] added systemd metrics --- deb-package/pkg/opt/dedis/dvoting/bin/start-exporter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deb-package/pkg/opt/dedis/dvoting/bin/start-exporter b/deb-package/pkg/opt/dedis/dvoting/bin/start-exporter index d25ea0aba..2c88ef4c7 100755 --- a/deb-package/pkg/opt/dedis/dvoting/bin/start-exporter +++ b/deb-package/pkg/opt/dedis/dvoting/bin/start-exporter @@ -2,4 +2,4 @@ source /etc/dedis/dvoting/network.env -/opt/exporter/node_exporter --web.listen-address=${node_exporter_addr} +/opt/exporter/node_exporter --web.listen-address=${node_exporter_addr} --collector.systemd From 4006bcc5df76767c6ba60a77d4ac23c913b96aac Mon Sep 17 00:00:00 2001 From: Jean Viaene Date: Thu, 31 Mar 2022 10:46:52 +0200 Subject: [PATCH 4/4] changes after review --- deb-package/pkg/etc/dedis/dvoting/network.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deb-package/pkg/etc/dedis/dvoting/network.env b/deb-package/pkg/etc/dedis/dvoting/network.env index ad52cc312..78df19d08 100644 --- a/deb-package/pkg/etc/dedis/dvoting/network.env +++ b/deb-package/pkg/etc/dedis/dvoting/network.env @@ -6,4 +6,4 @@ export bridge_iface="uk0" export dela_port="9000" export proxy_addr="0.0.0.0:9080" export prometheus_addr="0.0.0.0:9100" -export node_exporter_addr=":9101" \ No newline at end of file +export node_exporter_addr="0.0.0.0:9101" \ No newline at end of file