From a836526d40e7a5ee324e77783a83e0cf26d03725 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Sat, 6 Aug 2022 16:05:21 -0500 Subject: [PATCH] Add and enable blackbox_exporter package *blackbox_exporter* is a generic exporter for Prometheus that can be used to provide metrics about HTTP, etc. services. I use it to monitor the availability and responsiveness of websites I host. --- Config.in | 1 + configs/metricspi_defconfig | 1 + package/blackbox_exporter/Config.in | 4 ++ .../blackbox_exporter/blackbox_exporter.mk | 20 +++++++++ .../blackbox_exporter.service | 45 +++++++++++++++++++ 5 files changed, 71 insertions(+) create mode 100644 package/blackbox_exporter/Config.in create mode 100644 package/blackbox_exporter/blackbox_exporter.mk create mode 100644 package/blackbox_exporter/blackbox_exporter.service diff --git a/Config.in b/Config.in index 3593ec2..296fa6e 100644 --- a/Config.in +++ b/Config.in @@ -1,3 +1,4 @@ source "$BR2_EXTERNAL_metricspi_PATH/package/alertmanager/Config.in" +source "$BR2_EXTERNAL_metricspi_PATH/package/blackbox_exporter/Config.in" source "$BR2_EXTERNAL_metricspi_PATH/package/grafana/Config.in" source "$BR2_EXTERNAL_metricspi_PATH/package/victoriametrics/Config.in" diff --git a/configs/metricspi_defconfig b/configs/metricspi_defconfig index ae9dc90..d857e03 100644 --- a/configs/metricspi_defconfig +++ b/configs/metricspi_defconfig @@ -110,6 +110,7 @@ BR2_TARGET_ROOTFS_SQUASHFS=y BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y # BR2_TARGET_ROOTFS_TAR is not set BR2_PACKAGE_ALERTMANAGER=y +BR2_PACKAGE_BLACKBOX_EXPORTER=y BR2_PACKAGE_GRAFANA=y BR2_PACKAGE_VICTORIAMETRICS=y BR2_PACKAGE_VICTORIAMETRICS_SINGLE=y diff --git a/package/blackbox_exporter/Config.in b/package/blackbox_exporter/Config.in new file mode 100644 index 0000000..5a79c5e --- /dev/null +++ b/package/blackbox_exporter/Config.in @@ -0,0 +1,4 @@ +config BR2_PACKAGE_BLACKBOX_EXPORTER + bool "blackbox_exporter" + help + Prometheus Blackbox Exporter diff --git a/package/blackbox_exporter/blackbox_exporter.mk b/package/blackbox_exporter/blackbox_exporter.mk new file mode 100644 index 0000000..140c9e9 --- /dev/null +++ b/package/blackbox_exporter/blackbox_exporter.mk @@ -0,0 +1,20 @@ +############################################################################### +# +# Prometheus Blackbox Exporter +# +############################################################################### + +BLACKBOX_EXPORTER_VERSION = 0.22.0 +BLACKBOX_EXPORTER_SITE = $(call github,prometheus,blackbox_exporter,v$(BLACKBOX_EXPORTER_VERSION)) +BLACKBOX_EXPORTER_LICENSE = Apache-2.0 +BLACKBOX_EXPORTER_LICENSE_FILES = LICENSE + +BLACKBOX_EXPORTER_LDFLAGS = -extldflags '-static' + +define BLACKBOX_EXPORTER_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m u=rw,go=r \ + $(BR2_EXTERNAL_metricspi_PATH)/package/blackbox_exporter/blackbox_exporter.service \ + $(TARGET_DIR)/usr/lib/systemd/system/blackbox_exporter.service +endef + +$(eval $(golang-package)) diff --git a/package/blackbox_exporter/blackbox_exporter.service b/package/blackbox_exporter/blackbox_exporter.service new file mode 100644 index 0000000..73ea48d --- /dev/null +++ b/package/blackbox_exporter/blackbox_exporter.service @@ -0,0 +1,45 @@ +[Unit] +Description=Blackbox exporter +Documentation=https://github.com/prometheus/blackbox_exporter/blob/master/README.md +After=network-online.target +Wants=network-online.target + +[Service] +Type=exec +ExecStart=/usr/bin/blackbox_exporter \ + --config.file=/etc/prometheus/blackbox.yml \ + --web.listen-address=[::1]:9115 +ExecReload=/bin/kill -HUP $MAINPID +Restart=on-failure + +CapabilityBoundingSet= +DeviceAllow= +DevicePolicy=closed +DynamicUser=yes +LockPersonality=yes +MemoryDenyWriteExecute=yes +NoNewPrivileges=yes +PrivateDevices=yes +PrivateUsers=yes +PrivateTmp=yes +ProcSubset=pid +ProtectClock=yes +ProtectControlGroups=yes +ProtectHome=yes +ProtectHostname=yes +ProtectKernelLogs=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +ProtectProc=invisible +ProtectSystem=strict +RestrictAddressFamilies=AF_INET AF_INET6 +RestrictNamespaces=yes +RestrictRealtime=yes +RestrictSUIDSGID=yes +SystemCallArchitectures=native +SystemCallFilter=@system-service +SystemCallFilter=~@privileged @resources +UMask=0027 + +[Install] +WantedBy=multi-user.target