Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/nextcloudpi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'bin/ncp/SYSTEM/metrics.sh')
-rw-r--r--bin/ncp/SYSTEM/metrics.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/bin/ncp/SYSTEM/metrics.sh b/bin/ncp/SYSTEM/metrics.sh
new file mode 100644
index 00000000..bd13de28
--- /dev/null
+++ b/bin/ncp/SYSTEM/metrics.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+
+is_active() {
+ systemctl is-active -q prometheus-node-exporter || return 0
+ return 1
+}
+
+tmpl_metrics_enabled() {
+ (
+ . /usr/local/etc/library.sh
+ local param_active="$(find_app_param metrics.sh ACTIVE)"
+ [[ "$param_active" == yes ]] || exit 1
+ )
+}
+
+install() {
+
+ # Subshell to return on failure instead of exiting (due to set -e)
+ (
+
+ set -e
+ cat > /etc/default/prometheus-node-exporter <<'EOF'
+ARGS="--collector.filesystem.ignored-mount-points=\"^/(dev|proc|run|sys|mnt|var/log|var/lib/docker)($|/)\""
+EOF
+ apt_install prometheus-node-exporter
+
+ # TODO: Docker support?
+ systemctl disable prometheus-node-exporter
+ service prometheus-node-exporter stop
+
+ )
+}
+
+configure() {
+
+ if [[ "$ACTIVE" != yes ]]
+ then
+ bash /usr/local/etc/ncp-templates/nextcloud.conf.sh --defaults > /etc/apache2/sites-available/nextcloud.conf
+
+ systemctl disable prometheus-node-exporter
+ service prometheus-node-exporter stop
+ else
+ [[ -n "$USER" ]] || {
+ echo "ERROR: User can not be empty!" >&2
+ return 1
+ }
+
+ [[ -n "$PASSWORD" ]] || {
+ echo "ERROR: Password can not be empty!" >&2
+ return 1
+ }
+
+ [[ ${#PASSWORD} -ge 10 ]] || {
+ echo "ERROR: Password must be at least 10 characters long!" >&2
+ return 1
+ }
+
+ local htpasswd_file="/usr/local/etc/metrics.htpasswd"
+ rm -f "${htpasswd_file}"
+ echo "$PASSWORD" | htpasswd -ciB "${htpasswd_file}" metrics
+
+ bash /usr/local/etc/ncp-templates/nextcloud.conf.sh > /etc/apache2/sites-available/nextcloud.conf || {
+ echo "An unexpected error occurred while configuring apache. Rolling back..." >&2
+ bash /usr/local/etc/ncp-templates/nextcloud.conf.sh --defaults > /etc/apache2/sites-available/nextcloud.conf
+ return 1
+ }
+
+ systemctl enable prometheus-node-exporter
+ service prometheus-node-exporter start
+
+ echo "Metric endpoint enabled. You can test it at https://nextcloudpi.local/metrics/system (or under your NC domain under the same path)"
+ fi
+ echo "Apache Test:"
+ apache2ctl -t
+ bash -c "sleep 2 && service apache2 reload" &>/dev/null &
+
+
+}