diff options
author | Ralph Meijer <ralphm@ik.nu> | 2024-03-28 16:54:48 +0000 |
---|---|---|
committer | Ralph Meijer <ralphm@ik.nu> | 2024-04-03 14:25:14 +0200 |
commit | 351864c67323b93becf72bdf9bbe4d6afbfb4f6d (patch) | |
tree | 77d105d1f1e4e3e90d8f67afd345f60c826c2f38 | |
parent | 1549626cac4bfbf3102c013e55c19e92ac4b2a8b (diff) |
Build Netdata Agent Snap from source
-rw-r--r-- | snap/hooks/install | 12 | ||||
-rw-r--r-- | snap/local/netdata.conf | 17 | ||||
-rw-r--r-- | snap/snapcraft.yaml | 109 |
3 files changed, 138 insertions, 0 deletions
diff --git a/snap/hooks/install b/snap/hooks/install new file mode 100644 index 0000000000..873914c66b --- /dev/null +++ b/snap/hooks/install @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +# Initialize configuration and var directory skeleton +mkdir -p "$SNAP_COMMON/etc" +mkdir -p "$SNAP_DATA/var/cache" +mkdir -p "$SNAP_DATA/var/lib" +mkdir -p "$SNAP_DATA/var/log/netdata" +cp -rp "$SNAP/etc/netdata" "$SNAP_COMMON/etc/netdata" +cp -rp "$SNAP/var/cache/netdata" "$SNAP_DATA/var/cache/netdata" +cp -rp "$SNAP/var/lib/netdata" "$SNAP_DATA/var/lib/netdata" +mkdir -p "$SNAP_DATA/var/lib/netdata/www" +mkdir -p "$SNAP_DATA/var/run/netdata" diff --git a/snap/local/netdata.conf b/snap/local/netdata.conf new file mode 100644 index 0000000000..283e151215 --- /dev/null +++ b/snap/local/netdata.conf @@ -0,0 +1,17 @@ +[directories] + config = /var/snap/netdata/common/etc/netdata + stock config = /snap/netdata/current/usr/lib/netdata/conf.d + log = /var/snap/netdata/current/var/log/netdata + web = /var/snap/netdata/current/var/lib/netdata/www + cache = /var/snap/netdata/current/var/cache/netdata + lib = /var/snap/netdata/current/var/lib/netdata + lock = /var/snap/netdata/current/var/lib/netdata/lock + plugins = "/snap/netdata/current/usr/libexec/netdata/plugins.d" "/var/snap/netdata/common/etc/netdata/custom-plugins.d" + home = /var/snap/netdata/current/var/lib/netdata + registry = /var/snap/netdata/current/var/lib/netdata/registry + stock health config = /snap/netdata/current/usr/lib/netdata/conf.d/health.d + health config = /var/snap/netdata/common/etc/netdata/health.d + +[plugin:proc] + # Disable btrfs, as this cannot be accessed from within a snap + /sys/fs/btrfs = no diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 0000000000..7f46a35169 --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,109 @@ +name: netdata # you probably want to 'snapcraft register <name>' +base: core24 # the base snap is the execution environment for this snap +build-base: devel +version: '0.1' # just for humans, typically '1.2+git' or '1.3.2' +summary: Netdata Agent +description: | + Netdata is distributed, real-time, performance and health monitoring for + systems and applications. It provides insights of everything happening on the + systems it runs using interactive web dashboards. + +grade: devel # must be 'stable' to release into candidate/stable channels +confinement: strict # use 'strict' once you have the right plugs and slots + +layout: +# /etc/netdata: +# symlink: $SNAP_COMMON/etc/netdata +# /usr/lib/netdata: +# symlink: $SNAP/usr/lib/netdata +# /usr/libexec/netdata: +# symlink: $SNAP/usr/libexec/netdata +# /usr/share/netdata: +# symlink: $SNAP/usr/share/netdata +# /var/cache/netdata: +# symlink: $SNAP_DATA/var/cache/netdata +# /var/lib/netdata: +# symlink: $SNAP_DATA/var/lib/netdata +# /var/log/netdata: +# symlink: $SNAP_DATA/var/log/netdata + /etc/sensors3.conf: + symlink: $SNAP/etc/sensors3.conf + /usr/bin/lsns: + bind-file: $SNAP/usr/bin/lsns + +parts: + deps: + plugin: nil + source: . + source-type: local + override-build: | + bash ./packaging/installer/install-required-packages.sh --dont-wait --non-interactive -i netdata-all + + netdata: + plugin: nil + source: . + source-type: local + build-packages: + - libpcre2-dev + override-build: | + sh ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud --one-time-build + mkdir -p $SNAPCRAFT_PART_INSTALL/usr/sbin/ \ + $SNAPCRAFT_PART_INSTALL/usr/share \ + $SNAPCRAFT_PART_INSTALL/usr/libexec \ + $SNAPCRAFT_PART_INSTALL/usr/local \ + $SNAPCRAFT_PART_INSTALL/usr/lib \ + $SNAPCRAFT_PART_INSTALL/var/cache \ + $SNAPCRAFT_PART_INSTALL/var/lib \ + $SNAPCRAFT_PART_INSTALL/etc + rm -rf $SNAPCRAFT_PART_INSTALL/var/{cache,lib}/netdata + rm -rf $SNAPCRAFT_PART_INSTALL/usr/{share,lib,libexec}/netdata + mv /usr/share/netdata $SNAPCRAFT_PART_INSTALL/usr/share/ + mv /usr/libexec/netdata $SNAPCRAFT_PART_INSTALL/usr/libexec/ + mv /usr/lib/netdata $SNAPCRAFT_PART_INSTALL/usr/lib/ + mv /var/cache/netdata $SNAPCRAFT_PART_INSTALL/var/cache/ + mv /var/lib/netdata $SNAPCRAFT_PART_INSTALL/var/lib/ + mv /etc/netdata $SNAPCRAFT_PART_INSTALL/etc/ + mv /usr/sbin/log2journal $SNAPCRAFT_PART_INSTALL/usr/sbin/ + mv /usr/sbin/netdata $SNAPCRAFT_PART_INSTALL/usr/sbin/ + mv /usr/sbin/netdata-claim.sh $SNAPCRAFT_PART_INSTALL/usr/sbin/ + mv /usr/sbin/netdatacli $SNAPCRAFT_PART_INSTALL/usr/sbin/ + mv /usr/sbin/systemd-cat-native $SNAPCRAFT_PART_INSTALL/usr/sbin/ + cp -p "$SNAPCRAFT_PROJECT_DIR/snap/local/netdata.conf" "$SNAPCRAFT_PART_INSTALL/etc/netdata/netdata.conf" + stage-packages: + - curl + - iproute2 + - libuv1 + - lm-sensors + - util-linux + prime: + - -opt/netdata/var/cache/netdata/.keep + - -opt/netdata/var/lib/netdata/.keep + - -opt/netdata/var/log/netdata/.keep + +apps: + agent: + command: usr/sbin/netdata -u root -D -P $SNAP_DATA/var/run/netdata/netdata.pid -c $SNAP_COMMON/etc/netdata/netdata.conf + daemon: simple + plugs: + - docker-support # Allows access to /prod/[0-9]*/limits + - hardware-observe + - kubernetes-support # cgroups (incl. systemd services) + - log-observe + - login-session-observe + - mount-observe + - network + - network-bind + - network-observe # network connections function + - network-setup-observe # ip{,4,6}.*, wireless.*, netfilter.conntrack_sockets + - system-observe # many disk.*, cpu and memory pressure, system.io + - time-control # needed for timex to call clock_adjtime to measure jitter + claim: + command: usr/sbin/netdata-claim.sh + plugs: + - network + cli: + command: usr/sbin/netdatacli + log2journal: + command: usr/sbin/log2journal + systemd-cat-native: + command: usr/sbin/systemd-cat-native |