diff options
Diffstat (limited to 'packaging')
34 files changed, 174 insertions, 96 deletions
diff --git a/packaging/PLATFORM_SUPPORT.md b/packaging/PLATFORM_SUPPORT.md index ae3edf721..3c81d64fe 100644 --- a/packaging/PLATFORM_SUPPORT.md +++ b/packaging/PLATFORM_SUPPORT.md @@ -68,6 +68,7 @@ to work on these platforms with minimal user effort. | Debian | 12.x | x86\_64, i386, ARMv7, AArch64 | | | Debian | 11.x | x86\_64, i386, ARMv7, AArch64 | | | Debian | 10.x | x86\_64, i386, ARMv7, AArch64 | | +| Fedora | 39 | x86\_64, AArch64 | | | Fedora | 38 | x86\_64, AArch64 | | | Fedora | 37 | x86\_64, AArch64 | | | openSUSE | Leap 15.4 | x86\_64, AArch64 | | @@ -77,6 +78,7 @@ to work on these platforms with minimal user effort. | Red Hat Enterprise Linux | 9.x | x86\_64, AArch64 | | | Red Hat Enterprise Linux | 8.x | x86\_64, AArch64 | | | Red Hat Enterprise Linux | 7.x | x86\_64 | | +| Ubuntu | 23.10 | x86\_64, AArch64, ARMv7 | | | Ubuntu | 23.04 | x86\_64, AArch64, ARMv7 | | | Ubuntu | 22.04 | x86\_64, ARMv7, AArch64 | | | Ubuntu | 20.04 | x86\_64, ARMv7, AArch64 | | diff --git a/packaging/building-native-packages-locally.md b/packaging/building-native-packages-locally.md index d3b473774..6ad1d6045 100644 --- a/packaging/building-native-packages-locally.md +++ b/packaging/building-native-packages-locally.md @@ -26,7 +26,7 @@ podman run -it --rm -e VERSION=0.1 -v $PWD:/netdata netdata/package-builders:<ta The `<tag>` should be the lowercase distribution name with no spaces, followed by the release of that distribution. For example, `centos7` to build on CentOS 7, or `ubuntu20.04` -to build on Ubuntu 20.04. Note that we use Alma Linux for builds on CentOS/RHEL 8 or newer. See +to build on Ubuntu 20.04. Note that we use Rocky Linux for builds on CentOS/RHEL 8 or newer. See [netdata/package-builders](https://hub.docker.com/r/netdata/package-builders/tags) for all available tags. The value passed in the `VERSION` environment variable can be any version number accepted by the type of package diff --git a/packaging/bundle-ebpf-co-re.sh b/packaging/bundle-ebpf-co-re.sh index 9d2eaf570..460709b67 100755 --- a/packaging/bundle-ebpf-co-re.sh +++ b/packaging/bundle-ebpf-co-re.sh @@ -6,4 +6,4 @@ CORE_VERSION="$(cat "${SRCDIR}/packaging/ebpf-co-re.version")" CORE_TARBALL="netdata-ebpf-co-re-glibc-${CORE_VERSION}.tar.xz" curl -sSL --connect-timeout 10 --retry 3 "https://github.com/netdata/ebpf-co-re/releases/download/${CORE_VERSION}/${CORE_TARBALL}" > "${CORE_TARBALL}" || exit 1 grep "${CORE_TARBALL}" "${SRCDIR}/packaging/ebpf-co-re.checksums" | sha256sum -c - || exit 1 -tar -xaf "${CORE_TARBALL}" -C "${SRCDIR}/collectors/ebpf.plugin" || exit 1 +tar -xa --no-same-owner -f "${CORE_TARBALL}" -C "${SRCDIR}/collectors/ebpf.plugin" || exit 1 diff --git a/packaging/bundle-ebpf.sh b/packaging/bundle-ebpf.sh index 0103fc4ed..11930671f 100755 --- a/packaging/bundle-ebpf.sh +++ b/packaging/bundle-ebpf.sh @@ -11,7 +11,7 @@ if [ -x "${PLUGINDIR}/ebpf.plugin" ] || [ "${FORCE}" = "force" ]; then mkdir -p "${SRCDIR}/tmp/ebpf" curl -sSL --connect-timeout 10 --retry 3 "https://github.com/netdata/kernel-collector/releases/download/${EBPF_VERSION}/${EBPF_TARBALL}" > "${EBPF_TARBALL}" || exit 1 grep "${EBPF_TARBALL}" "${SRCDIR}/packaging/ebpf.checksums" | sha256sum -c - || exit 1 - tar -xvaf "${EBPF_TARBALL}" -C "${SRCDIR}/tmp/ebpf" || exit 1 + tar -xva --no-same-owner -f "${EBPF_TARBALL}" -C "${SRCDIR}/tmp/ebpf" || exit 1 if [ ! -d "${PLUGINDIR}/ebpf.d" ];then mkdir "${PLUGINDIR}/ebpf.d" fi diff --git a/packaging/bundle-libbpf.sh b/packaging/bundle-libbpf.sh index 1c5542765..52f7cf45e 100755 --- a/packaging/bundle-libbpf.sh +++ b/packaging/bundle-libbpf.sh @@ -20,7 +20,7 @@ LIBBPF_BUILD_PATH="${1}/externaldeps/libbpf/libbpf-$(cat "${1}/packaging/libbpf. mkdir -p "${1}/externaldeps/libbpf" || exit 1 curl -sSL --connect-timeout 10 --retry 3 "https://github.com/netdata/libbpf/archive/${LIBBPF_TARBALL}" > "${LIBBPF_TARBALL}" || exit 1 sha256sum -c "${1}/packaging/libbpf.checksums" || exit 1 -tar -xzf "${LIBBPF_TARBALL}" -C "${1}/externaldeps/libbpf" || exit 1 +tar -xz --no-same-owner -f "${LIBBPF_TARBALL}" -C "${1}/externaldeps/libbpf" || exit 1 make -C "${LIBBPF_BUILD_PATH}/src" BUILD_STATIC_ONLY=1 OBJDIR=build/ DESTDIR=../ install || exit 1 cp -r "${LIBBPF_BUILD_PATH}/usr/${lib_subdir}/libbpf.a" "${1}/externaldeps/libbpf" || exit 1 cp -r "${LIBBPF_BUILD_PATH}/usr/include" "${1}/externaldeps/libbpf" || exit 1 diff --git a/packaging/bundle-protobuf.sh b/packaging/bundle-protobuf.sh index 98ab1ed17..d715dfe3d 100755 --- a/packaging/bundle-protobuf.sh +++ b/packaging/bundle-protobuf.sh @@ -6,7 +6,7 @@ PROTOBUF_BUILD_PATH="${1}/externaldeps/protobuf/protobuf-$(cat "${1}/packaging/p mkdir -p "${1}/externaldeps/protobuf" || exit 1 curl -sSL --connect-timeout 10 --retry 3 "https://github.com/protocolbuffers/protobuf/releases/download/v$(cat "${1}/packaging/protobuf.version")/${PROTOBUF_TARBALL}" > "${PROTOBUF_TARBALL}" || exit 1 sha256sum -c "${1}/packaging/protobuf.checksums" || exit 1 -tar -xzf "${PROTOBUF_TARBALL}" -C "${1}/externaldeps/protobuf" || exit 1 +tar -xz --no-same-owner -f "${PROTOBUF_TARBALL}" -C "${1}/externaldeps/protobuf" || exit 1 OLDPWD="${PWD}" cd "${PROTOBUF_BUILD_PATH}" || exit 1 ./configure --disable-shared --without-zlib --disable-dependency-tracking --with-pic || exit 1 diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile index 3d05d9d2c..ddc4a4f5c 100644 --- a/packaging/docker/Dockerfile +++ b/packaging/docker/Dockerfile @@ -3,7 +3,7 @@ # This image contains preinstalled dependencies # hadolint ignore=DL3007 -FROM netdata/builder:latest as builder +FROM netdata/builder:v1 as builder # One of 'nightly' or 'stable' ARG RELEASE_CHANNEL=nightly @@ -28,7 +28,7 @@ WORKDIR /opt/netdata.git RUN chmod +x netdata-installer.sh && \ cp -rp /deps/* /usr/local/ && \ /bin/echo -e "INSTALL_TYPE='oci'\nPREBUILT_ARCH='$(uname -m)'" > ./system/.install-type && \ - CFLAGS="$(packaging/docker/gen-cflags.sh)" LDFLAGS="-Wl,--gc-sections -Wl,-z,stack-size=8388608" ./netdata-installer.sh --dont-wait --dont-start-it --use-system-protobuf \ + CFLAGS="$(packaging/docker/gen-cflags.sh)" LDFLAGS="-Wl,--gc-sections" ./netdata-installer.sh --dont-wait --dont-start-it --use-system-protobuf \ ${EXTRA_INSTALL_OPTS} --one-time-build --enable-lto "$([ "$RELEASE_CHANNEL" = stable ] && echo --stable-channel)" # files to one directory @@ -59,33 +59,41 @@ RUN mkdir -p /app/usr/sbin/ \ ##################################################################### # This image contains preinstalled dependencies # hadolint ignore=DL3007 -FROM netdata/base:latest as base +FROM netdata/base:v1 as base + +LABEL org.opencontainers.image.authors="Netdatabot <bot@netdata.cloud>" +LABEL org.opencontainers.image.url="https://netdata.cloud" +LABEL org.opencontainers.image.documentation="https://learn.netdata.cloud" +LABEL org.opencontainers.image.source="https://github.com/netdata/netdata" +LABEL org.opencontainers.image.title="Netdata Agent" +LABEL org.opencontainers.image.description="Official Netdata Agent Docker Image" +LABEL org.opencontainers.image.vendor="Netdata Inc." ARG OFFICIAL_IMAGE=false ENV NETDATA_OFFICIAL_IMAGE=$OFFICIAL_IMAGE -# Configure system +ONBUILD ENV NETDATA_OFFICIAL_IMAGE=false + ARG NETDATA_UID=201 ARG NETDATA_GID=201 ENV DOCKER_GRP netdata ENV DOCKER_USR netdata # If DISABLE_TELEMETRY is set, it will disable anonymous stats collection and reporting #ENV DISABLE_TELEMETRY=1 +ENV NETDATA_LISTENER_PORT 19999 +EXPOSE $NETDATA_LISTENER_PORT + +ENV NETDATA_EXTRA_APK_PACKAGES="" -# Copy files over RUN mkdir -p /opt/src /var/log/netdata && \ - # Link log files to stdout ln -sf /dev/stdout /var/log/netdata/access.log && \ ln -sf /dev/stdout /var/log/netdata/debug.log && \ ln -sf /dev/stderr /var/log/netdata/error.log && \ ln -sf /dev/stdout /var/log/netdata/collector.log && \ ln -sf /dev/stdout /var/log/netdata/health.log && \ - # Add netdata user addgroup -g ${NETDATA_GID} -S "${DOCKER_GRP}" && \ adduser -S -H -s /usr/sbin/nologin -u ${NETDATA_GID} -h /etc/netdata -G "${DOCKER_GRP}" "${DOCKER_USR}" - # Fix handling of config directory -# Long-term this should leverage BuildKit’s mount option. COPY --from=builder /app / # Apply the permissions as described in @@ -119,21 +127,6 @@ RUN chown -R root:root \ find /var/lib/netdata /var/cache/netdata -type f -exec chmod 0660 {} \; && \ cp -va /etc/netdata /etc/netdata.stock -ENV NETDATA_LISTENER_PORT 19999 -EXPOSE $NETDATA_LISTENER_PORT - -ENV NETDATA_EXTRA_APK_PACKAGES="" - ENTRYPOINT ["/usr/sbin/run.sh"] HEALTHCHECK --interval=60s --timeout=10s --retries=3 CMD /usr/sbin/health.sh - -ONBUILD ENV NETDATA_OFFICIAL_IMAGE=false - -LABEL org.opencontainers.image.authors="Netdatabot <bot@netdata.cloud>" -LABEL org.opencontainers.image.url="https://netdata.cloud" -LABEL org.opencontainers.image.documentation="https://learn.netdata.cloud" -LABEL org.opencontainers.image.source="https://github.com/netdata/netdata" -LABEL org.opencontainers.image.title="Netdata Agent" -LABEL org.opencontainers.image.description="Official Netdata Agent Docker Image" -LABEL org.opencontainers.image.vendor="Netdata Inc." diff --git a/packaging/docker/README.md b/packaging/docker/README.md index eb7deb203..b4ce58254 100644 --- a/packaging/docker/README.md +++ b/packaging/docker/README.md @@ -187,7 +187,7 @@ services: security_opt: - apparmor:unconfined volumes: - - ./netdataconfig/netdata:/etc/netdata:ro + - ./netdataconfig/netdata:/etc/netdata - netdatalib:/var/lib/netdata - netdatacache:/var/cache/netdata - /etc/passwd:/host/etc/passwd:ro diff --git a/packaging/docker/run.sh b/packaging/docker/run.sh index eede14e38..1b6ce7c66 100755 --- a/packaging/docker/run.sh +++ b/packaging/docker/run.sh @@ -21,7 +21,7 @@ if [ ! "${DISABLE_TELEMETRY:-0}" -eq 0 ] || touch /etc/netdata/.opt-out-from-anonymous-statistics fi -chmod o+rX / # Needed to fix permissions issues in some cases. +chmod o+rX / 2>/dev/null || echo "Unable to change permissions without errors." BALENA_PGID=$(stat -c %g /var/run/balena.sock 2>/dev/null || true) DOCKER_PGID=$(stat -c %g /var/run/docker.sock 2>/dev/null || true) diff --git a/packaging/ebpf-co-re.checksums b/packaging/ebpf-co-re.checksums index 6ee06dd1b..c51f3ef5f 100644 --- a/packaging/ebpf-co-re.checksums +++ b/packaging/ebpf-co-re.checksums @@ -1 +1 @@ -2abbbaf30a73e1ed365d42324a5128470568b008528c3ff8cd98d5eb86152f03 netdata-ebpf-co-re-glibc-v1.2.1.tar.xz +7ef8d2a0f485b4c81942f66c50e1aedcd568b7997a933c50c0ebbd8353543c08 netdata-ebpf-co-re-glibc-v1.2.8.tar.xz diff --git a/packaging/ebpf-co-re.version b/packaging/ebpf-co-re.version index 6a5e98a74..d1f79a941 100644 --- a/packaging/ebpf-co-re.version +++ b/packaging/ebpf-co-re.version @@ -1 +1 @@ -v1.2.1 +v1.2.8 diff --git a/packaging/ebpf.checksums b/packaging/ebpf.checksums index e79daee9a..28f023d52 100644 --- a/packaging/ebpf.checksums +++ b/packaging/ebpf.checksums @@ -1,3 +1,3 @@ -cb0cd6ef4bdb8a39c42b152d328d4822217c59e1d616d3003bc67bc53a058275 ./netdata-kernel-collector-glibc-v1.2.1.tar.xz -0633ff39e8654a21ab664a289f58daca5792cfaf2ed62dcaacf7cd267eeedd40 ./netdata-kernel-collector-musl-v1.2.1.tar.xz -6ce60c5ac8f45cc6a01b7ac9ea150728963d0aca1ee6dfd568b0f8b2ba67b88b ./netdata-kernel-collector-static-v1.2.1.tar.xz +9035b6b8dda5230c1ddc44991518a3ee069bd497ad5a8e5448b79dc4b8c51c43 ./netdata-kernel-collector-glibc-v1.2.8.tar.xz +e5b1a141475f75c60c282a2e3ce8e3914893e75d474c976bad95f66d4c9846c5 ./netdata-kernel-collector-musl-v1.2.8.tar.xz +d6081a2fedc9435d1ab430697cb101123cebaac07b62fb91d790ca526923f4e3 ./netdata-kernel-collector-static-v1.2.8.tar.xz diff --git a/packaging/ebpf.version b/packaging/ebpf.version index 6a5e98a74..d1f79a941 100644 --- a/packaging/ebpf.version +++ b/packaging/ebpf.version @@ -1 +1 @@ -v1.2.1 +v1.2.8 diff --git a/packaging/go.d.checksums b/packaging/go.d.checksums index 2ecf9853a..d7679c12c 100644 --- a/packaging/go.d.checksums +++ b/packaging/go.d.checksums @@ -1,17 +1,17 @@ -0f588819dc782600c02194ab6d438f08add7f988aef9c26a5247d2a3711eb5e2 *config.tar.gz -31e91bb51f2f778429db958edb56783f70d05ed667d0d2a18f0506afa0fee8c4 *go.d.plugin-v0.54.1.darwin-amd64.tar.gz -20f93b7647da0dccc0e547d7aede7e3919af623b0fb47f2e9afcebd2b7514895 *go.d.plugin-v0.54.1.darwin-arm64.tar.gz -4d3be031dc3295844715cc7203bdd9d25721e3e954540ef9ba35644c2752a12d *go.d.plugin-v0.54.1.freebsd-386.tar.gz -69580909637ea8657f9e4c4b41fa96d3ad8ba4128223861ea94137319d5b34bc *go.d.plugin-v0.54.1.freebsd-amd64.tar.gz -5524dea9d1f9a215ace3df03d17a39380c832908a00303af6968c451dbbe91b2 *go.d.plugin-v0.54.1.freebsd-arm.tar.gz -a711dfcae86bdc5de17f0bb57dd10b819871a9f8a4bfe696e1ca66c1850ca400 *go.d.plugin-v0.54.1.freebsd-arm64.tar.gz -5174632ceb0755c68bccf09b055b72991e66bbd2df284352543767cfe872ff84 *go.d.plugin-v0.54.1.linux-386.tar.gz -04a176020b00c591e98656b62b211e984eb141b550c3f7b547a7b0d462521b3a *go.d.plugin-v0.54.1.linux-amd64.tar.gz -d7fabc7f349a2dbc079155b948e3675f49ba2fd2343716862ed07f2e7c77f8a7 *go.d.plugin-v0.54.1.linux-arm.tar.gz -9fda860e329ca961d8fe64f4f18ee9803313be86621975af245d5b05f5487023 *go.d.plugin-v0.54.1.linux-arm64.tar.gz -54cbee22bdfe96eb7e23606b06b42ac3d80af744fb1bbf70140893e4164d2e9f *go.d.plugin-v0.54.1.linux-mips.tar.gz -e0c299a29b9c50068bad903281b16eaa3593427896f915c21e487304a5900497 *go.d.plugin-v0.54.1.linux-mips64.tar.gz -a08c5e122e170cbf7cbec6664fdcf70b4328eb1d013db3c4a572c7339d1132f6 *go.d.plugin-v0.54.1.linux-mips64le.tar.gz -53a4054526639044111406e766afb0805f60aa3ef2f0452c85c747578d3523e1 *go.d.plugin-v0.54.1.linux-mipsle.tar.gz -fa4408a25feca43042e44388333dd6b502187e1736fffadcbc8058dfcaa3a61a *go.d.plugin-v0.54.1.linux-ppc64.tar.gz -1218fdbf90518dfba671fc11cf313dd5ff5765a85b047a025255954df3ee314a *go.d.plugin-v0.54.1.linux-ppc64le.tar.gz +836476aed93644135120bb3d765c6e93a4364f39a7c0863b4fad4a228f1f8328 *config.tar.gz +8aa9fc7a76871536f0e87daf4e8ccc6b7213f66ea86f55045b934623e5ef94c9 *go.d.plugin-v0.56.2.darwin-amd64.tar.gz +bb150e858d4471320661f08a4711f8d4e38a430ffb5b6d1b03b99ba291101dbc *go.d.plugin-v0.56.2.darwin-arm64.tar.gz +63e3b4340e110cab79d08b9ec1a2bee4d3a94dae765af1db2bd40f7d9b2af1bd *go.d.plugin-v0.56.2.freebsd-386.tar.gz +cb96a835248c058d0ec700f105cd89ad5ccec0c436642f09878c14a523baf31f *go.d.plugin-v0.56.2.freebsd-amd64.tar.gz +925dd01a9f78dfad0d6d74fd3414e6ea73b1905779c6f45f50368c0a3b594910 *go.d.plugin-v0.56.2.freebsd-arm.tar.gz +248e5cb810b55b2b3f29d2a12b434268cd417bd0425b92ab6d78cacaba058ab1 *go.d.plugin-v0.56.2.freebsd-arm64.tar.gz +8703806ad4713073792c92a7d1ebee46a9ff6dccc6b1f3a5fdb25ba748fd31d5 *go.d.plugin-v0.56.2.linux-386.tar.gz +29d61468d793aab49f8697a9a33b06552205c881710d4cbab09eca5f399a60a7 *go.d.plugin-v0.56.2.linux-amd64.tar.gz +52e2ea4ee029941063facff98d645c422bf6e241b3bff24536d7121560717572 *go.d.plugin-v0.56.2.linux-arm.tar.gz +7fb62e60b8e25b4188e99fe9c178244da96e5dfeb7b62d0f276d9b5795a37476 *go.d.plugin-v0.56.2.linux-arm64.tar.gz +ee1825ed0c5c722da7940ba6604c7836d523b61fdf10bba912fe5ce89afa7073 *go.d.plugin-v0.56.2.linux-mips.tar.gz +b4a318423ac78aafa0047db4dcf91aca445b1fbcfd411fee6a69799695e21666 *go.d.plugin-v0.56.2.linux-mips64.tar.gz +d83720c5b510c68e40c503785a940eff5097d54bb99d32e076c2c8df209edf5c *go.d.plugin-v0.56.2.linux-mips64le.tar.gz +dc5d8718e0314058f8e1a2131044bfaac4b5358047c3ff0ebf720c3fc3062ae0 *go.d.plugin-v0.56.2.linux-mipsle.tar.gz +b6d6aae1e8b3f750efd29ef4e80b22ddee184a0af35a7b51f5069902b3d6a900 *go.d.plugin-v0.56.2.linux-ppc64.tar.gz +b1cd1ebd22f194767eeedde525a131b15155e882bd3373e8c63e110432d96443 *go.d.plugin-v0.56.2.linux-ppc64le.tar.gz diff --git a/packaging/go.d.version b/packaging/go.d.version index 505136179..df8473fbd 100644 --- a/packaging/go.d.version +++ b/packaging/go.d.version @@ -1 +1 @@ -v0.54.1 +v0.56.2 diff --git a/packaging/installer/README.md b/packaging/installer/README.md index e241ccc59..a99e869b8 100644 --- a/packaging/installer/README.md +++ b/packaging/installer/README.md @@ -51,10 +51,10 @@ learn more about [how data collectors work](https://github.com/netdata/netdata/b collector](https://github.com/netdata/netdata/blob/master/collectors/COLLECTORS.md) for metrics you need, [configure the collector](https://github.com/netdata/netdata/blob/master/collectors/REFERENCE.md) or read about its requirements to configure your endpoint to publish metrics in the correct format and endpoint. -#### Alarms & notifications +#### Alerts & notifications -Netdata comes with hundreds of preconfigured alarms, designed by our monitoring gurus in parallel with our open-source -community, but you may want to [edit alarms](https://github.com/netdata/netdata/blob/master/health/REFERENCE.md) or +Netdata comes with hundreds of preconfigured alerts, designed by our monitoring gurus in parallel with our open-source +community, but you may want to [edit alerts](https://github.com/netdata/netdata/blob/master/health/REFERENCE.md) or [enable notifications](https://github.com/netdata/netdata/blob/master/docs/monitor/enable-notifications.md) to customize your Netdata experience. #### Make your deployment production ready @@ -202,6 +202,27 @@ _actively_ contributing to Netdata's future. We are tracking a few issues related to installation and packaging. +#### Installs on hosts without IPv4 connectivity + +Our regular installation process requires access to a number of GitHub services that do not have IPv6 connectivity. As +such, using the kickstart install script on such hosts generally does not work, and will typically fail with an +error from cURL or wget about connection timeouts. You can check if your system is affected by this by attempting +to connect to (or ping) `https://api.github.com/`. Failing to connect indicates that you are affected by this issue. + +There are three potential workarounds for this: + +1. You can configure your system with a proper IPv6 transition mechanism, such as NAT64. GitHub’s anachronisms + affect many projects other than just Netdata, and there are unfortunately a number of other services out there + that do not provide IPv6 connectivity, so taking this route is likely to save you time in the future as well. +2. If you are using a system that we publish native packages for (see our [platform support + policy](https://github.com/netdata/netdata/blob/master/packaging/PLATFORM_SUPPORT.md) for more details), + you can manually set up our native package repositories as outlined in our [native package install + documentation](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/packages.md). Our official + package repositories do provide service over IPv6, so they work without issue on hosts without IPv4 connectivity. +3. If neither of the above options work for you, you can still install using our [offline installation + instructions](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/offline.md), though + do note that the offline install source must be prepared from a system with IPv4 connectivity. + #### Older distributions (Ubuntu 14.04, Debian 8, CentOS 6) and OpenSSL If you're running an older Linux distribution or one that has reached EOL, such as Ubuntu 14.04 LTS, Debian 8, or CentOS diff --git a/packaging/installer/UPDATE.md b/packaging/installer/UPDATE.md index b1f779162..7275ee524 100644 --- a/packaging/installer/UPDATE.md +++ b/packaging/installer/UPDATE.md @@ -31,6 +31,22 @@ Starting with netdata v1.33.0, you can use Netdata itself to determine the insta netdata -W buildinfo | grep -E 'Installation Type|Install type:' ``` +The following table contains all possible installation types: + +| Installation-type | Description | +|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------| +| binpkg-rpm | RPM-based native packages shipped from Netdata's repos. | +| binpkg-deb | DEB-based native packages shipped from Netdata's repos. | +| kickstart-build | Build from source with the kickstart script's `--build-only` option. | +| kickstart-static | Installed the static builds, shipped from netdata via the kickstart script's (option: `--static-only`). | +| manual-static-ARCH | Manually installed static Agent binaries by downloading archives from GitHub and installing them manually. Offline installations are part of this category. | +| legacy-build | Used for pre-existing kickstart.sh or netdata-installer.sh installations. This exist because we cannot determine how the install originally happened. | +| legacy-static | Same as legacy-build, but for static installs. | +| oci | Installed using official Docker images from Netdata, though not necessarily running on Docker | +| custom | Anything not covered by the other identifiers, including manual builds, manually running netdata-installer.sh, and third-party packages (community). | +| Unknown | Same as custom. | + + If you are using an older version of Netdata, or the above command produces no output, you can run our one-line installation script in dry-run mode to attempt to determine what method to use to update by running the following command: @@ -71,6 +87,12 @@ find the updater script. On such installs, you can update Netdata using your distribution package manager. +### Updates on hosts without IPv4 connectivity + +The update process outlined above suffers from the same issues that installing on hosts without IPv4 +connectivity does, and requires similar workarounds. For more details check [the explanation in our install +documentation](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#installs-on-hosts-without-ipv4-connectivity). + ### If the kickstart script does not work If the above command fails, you can [reinstall diff --git a/packaging/installer/dependencies/centos.sh b/packaging/installer/dependencies/centos.sh index 7d7c6cb40..e2599f0f6 100755 --- a/packaging/installer/dependencies/centos.sh +++ b/packaging/installer/dependencies/centos.sh @@ -11,6 +11,7 @@ declare -a package_tree=( cmake curl elfutils-libelf-devel + findutils gcc gcc-c++ git diff --git a/packaging/installer/dependencies/rockylinux.sh b/packaging/installer/dependencies/rockylinux.sh index f90b997bb..fc26c8beb 100755 --- a/packaging/installer/dependencies/rockylinux.sh +++ b/packaging/installer/dependencies/rockylinux.sh @@ -15,6 +15,7 @@ declare -a package_tree=( cmake curl elfutils-libelf-devel + findutils gcc gcc-c++ git diff --git a/packaging/installer/install-required-packages.sh b/packaging/installer/install-required-packages.sh index 9eba38457..807c30552 100755 --- a/packaging/installer/install-required-packages.sh +++ b/packaging/installer/install-required-packages.sh @@ -182,7 +182,7 @@ get_os_release() { case "${x,,}" in almalinux | alpine | arch | centos | clear-linux-os | debian | fedora | gentoo | manjaro | opensuse-leap | opensuse-tumbleweed | ol | rhel | rocky | sabayon | sles | suse | ubuntu) distribution="${x}" - if [ "${ID}" = "opensuse-tumbleweed" ]; then + if [[ "${ID}" = "opensuse-tumbleweed" ]]; then version="tumbleweed" codename="tumbleweed" else @@ -197,9 +197,10 @@ get_os_release() { ;; esac done - [ -z "${distribution}" ] && echo >&2 "Cannot find valid distribution in: ${ID} ${ID_LIKE}" && return 1 + [[ -z "${distribution}" ]] && echo >&2 "Cannot find valid distribution in: \ +${ID} ${ID_LIKE}" && return 1 - [ -z "${distribution}" ] && return 1 + [[ -z "${distribution}" ]] && return 1 return 0 } @@ -409,9 +410,9 @@ detect_package_manager_from_distribution() { centos* | clearos* | rocky* | almalinux*) package_installer="" tree="centos" - [ -n "${yum}" ] && package_installer="install_yum" - [ -n "${dnf}" ] && package_installer="install_dnf" - if [ "${IGNORE_INSTALLED}" -eq 0 ] && [ -z "${package_installer}" ]; then + [[ -n "${yum}" ]] && package_installer="install_yum" + [[ -n "${dnf}" ]] && package_installer="install_dnf" + if [[ "${IGNORE_INSTALLED}" -eq 0 ]] && [[ -z "${package_installer}" ]]; then echo >&2 "command 'yum' or 'dnf' is required to install packages on a '${distribution} ${version}' system." exit 1 fi @@ -420,9 +421,9 @@ detect_package_manager_from_distribution() { fedora* | redhat* | red\ hat* | rhel*) package_installer= tree="rhel" - [ -n "${yum}" ] && package_installer="install_yum" - [ -n "${dnf}" ] && package_installer="install_dnf" - if [ "${IGNORE_INSTALLED}" -eq 0 ] && [ -z "${package_installer}" ]; then + [[ -n "${yum}" ]] && package_installer="install_yum" + [[ -n "${dnf}" ]] && package_installer="install_dnf" + if [[ "${IGNORE_INSTALLED}" -eq 0 ]] && [[ -z "${package_installer}" ]]; then echo >&2 "command 'yum' or 'dnf' is required to install packages on a '${distribution} ${version}' system." exit 1 fi @@ -612,6 +613,8 @@ declare -A pkg_find=( ['gentoo']="sys-apps/findutils" ['fedora']="findutils" ['clearlinux']="findutils" + ['rhel']="findutils" + ['centos']="findutils" ['macos']="NOTREQUIRED" ['freebsd']="NOTREQUIRED" ['default']="WARNING|" diff --git a/packaging/installer/kickstart.sh b/packaging/installer/kickstart.sh index 2d793eafd..0ddd750be 100755 --- a/packaging/installer/kickstart.sh +++ b/packaging/installer/kickstart.sh @@ -414,6 +414,7 @@ success_banner() { cleanup() { if [ -z "${NO_CLEANUP}" ] && [ -n "${tmpdir}" ]; then cd || true + DRY_RUN=0 run_as_root rm -rf "${tmpdir}" fi } @@ -684,7 +685,7 @@ get_system_info() { DISTRO_COMPAT_NAME="opensuse" SYSVERSION="tumbleweed" ;; - cloudlinux|almalinux|rocky|rhel) + cloudlinux|almalinux|centos-stream|rocky|rhel) DISTRO_COMPAT_NAME="centos" ;; artix|manjaro|obarun) @@ -814,7 +815,7 @@ uninstall() { FLAGS="--yes" fi - if [ -x "${uninstaller}" ]; then + if run_as_root test -x "${uninstaller}"; then if [ "${DRY_RUN}" -eq 1 ]; then progress "Would attempt to uninstall existing install with uninstaller script found at: ${uninstaller}" return 0 @@ -880,9 +881,8 @@ detect_existing_install() { if [ -n "${ndprefix}" ]; then typefile="${ndprefix}/etc/netdata/.install-type" if [ -r "${typefile}" ]; then - run_as_root sh -c "cat \"${typefile}\" > \"${tmpdir}/install-type\"" # shellcheck disable=SC1090,SC1091 - . "${tmpdir}/install-type" + . "${typefile}" else INSTALL_TYPE="unknown" fi @@ -890,9 +890,8 @@ detect_existing_install() { envfile="${ndprefix}/etc/netdata/.environment" if [ "${INSTALL_TYPE}" = "unknown" ] || [ "${INSTALL_TYPE}" = "custom" ]; then if [ -r "${envfile}" ]; then - run_as_root sh -c "cat \"${envfile}\" > \"${tmpdir}/environment\"" - # shellcheck disable=SC1091 - . "${tmpdir}/environment" + # shellcheck disable=SC1090,SC1091 + . "${envfile}" if [ -n "${NETDATA_IS_STATIC_INSTALL}" ]; then if [ "${NETDATA_IS_STATIC_INSTALL}" = "yes" ]; then INSTALL_TYPE="legacy-static" diff --git a/packaging/installer/methods/ansible.md b/packaging/installer/methods/ansible.md index 6b4c69f09..6ce4e8f0f 100644 --- a/packaging/installer/methods/ansible.md +++ b/packaging/installer/methods/ansible.md @@ -55,7 +55,7 @@ current directory, and remove the rest of the cloned repository, as it's not req ```bash git clone https://github.com/netdata/community.git -mv community/netdata-agent-deployment/ansible-quickstart . +mv community/configuration-management/ansible-quickstart . rm -rf community ``` diff --git a/packaging/installer/methods/kubernetes.md b/packaging/installer/methods/kubernetes.md index 4dde3f407..17cb9f5e1 100644 --- a/packaging/installer/methods/kubernetes.md +++ b/packaging/installer/methods/kubernetes.md @@ -5,7 +5,7 @@ import TabItem from '@theme/TabItem'; This document details how to install Netdata on an existing Kubernetes (k8s) cluster, and connect it to Netdata Cloud. Read our [Kubernetes visualizations](https://github.com/netdata/netdata/blob/master/docs/cloud/visualize/kubernetes.md) documentation, to see what you will get. -The [Netdata Helm chart](https://github.com/netdata/helmchart/blob/master/charts/netdata/README.md) installs one `parent` pod for storing metrics and managing alarm notifications, plus an additional +The [Netdata Helm chart](https://github.com/netdata/helmchart/blob/master/charts/netdata/README.md) installs one `parent` pod for storing metrics and managing alert notifications, plus an additional `child` pod for every node in the cluster, responsible for collecting metrics from the node, Kubernetes control planes, pods/containers, and [supported application-specific metrics](https://github.com/netdata/helmchart#service-discovery-and-supported-services). diff --git a/packaging/installer/methods/macos.md b/packaging/installer/methods/macos.md index e7ff33ed7..480a41283 100644 --- a/packaging/installer/methods/macos.md +++ b/packaging/installer/methods/macos.md @@ -56,6 +56,8 @@ The Netdata Agent is installed under `/usr/local/netdata` on your machine. Your If you experience issues while claiming your node, follow the steps in our [Troubleshooting](https://github.com/netdata/netdata/blob/master/claim/README.md#troubleshooting) documentation. ## Install Netdata via Homebrew +### For macOS Intel + To install Netdata and all its dependencies, run Homebrew using the following command: ```sh @@ -65,6 +67,20 @@ Homebrew will place your Netdata configuration directory at `/usr/local/etc/netd Use the `edit-config` script and the files in this directory to configure Netdata. For reference, you can find stock configuration files at `/usr/local/Cellar/netdata/{NETDATA_VERSION}/lib/netdata/conf.d/`. +### For Apple Silicon + +To install Netdata and all its dependencies, run Homebrew using the following command: + +```sh +brew install netdata +``` + +Homebrew will place your Netdata configuration directory at `/opt/homebrew/etc/netdata/`. + +Use the `edit-config` script and the files in this directory to configure Netdata. For reference, you can find stock configuration files at `/opt/homebrew/Cellar/netdata/{NETDATA_VERSION}/lib/netdata/conf.d/`. + + + Skip on ahead to the [What's next?](#whats-next) section to find links to helpful post-installation guides. ## Install Netdata from source diff --git a/packaging/installer/methods/manual.md b/packaging/installer/methods/manual.md index 9910f7f9a..789f8aaab 100644 --- a/packaging/installer/methods/manual.md +++ b/packaging/installer/methods/manual.md @@ -94,8 +94,8 @@ Netdata plugins and various aspects of Netdata can be enabled or benefit when th | package |description| |:-----:|-----------| -| `bash`|for shell plugins and **alarm notifications**| -| `curl`|for shell plugins and **alarm notifications**| +| `bash`|for shell plugins and **alert notifications**| +| `curl`|for shell plugins and **alert notifications**| | `iproute` or `iproute2`|for monitoring **Linux traffic QoS**<br/>use `iproute2` if `iproute` reports as not available or obsolete| | `python`|for most of the external plugins| | `python-yaml`|used for monitoring **beanstalkd**| diff --git a/packaging/installer/methods/packages.md b/packaging/installer/methods/packages.md index 1b6870467..914920444 100644 --- a/packaging/installer/methods/packages.md +++ b/packaging/installer/methods/packages.md @@ -20,6 +20,18 @@ When using the kickstart script, you can force usage of native DEB or RPM packag `--native-only` when invoking the script. This will cause it to only attempt to use native packages for the install, and fail if it cannot do so. + + +> ### Note +> +> In July 2022, we switched hosting of our native packages from Package Cloud to self-hosted repositories. +> We still maintain the Package cloud repositories, but they are not guaranteed to work and may be removed +> without prior warning. +> +> When selecting a repository configuration package, note that the version 2 packages provide configuration for +> our self-hosted repositories, and then version 1 packages provide configuration for Package Cloud. + + ## Manual setup of RPM packages. Netdata’s official RPM repositories are hosted at https://repo.netdata.cloud/repos. We provide four groups of diff --git a/packaging/installer/methods/pfsense.md b/packaging/installer/methods/pfsense.md index 407127e93..965fba8dd 100644 --- a/packaging/installer/methods/pfsense.md +++ b/packaging/installer/methods/pfsense.md @@ -7,7 +7,7 @@ learn_status: "Published" learn_rel_path: "Installation/Install on specific environments" --> -# Install Netdata on pfSense +# Install Netdata on pfSense CE > 💡 This document is maintained by Netdata's community, and may not be completely up-to-date. Please double-check the > details of the installation process, such as version numbers for downloadable packages, before proceeding. diff --git a/packaging/installer/netdata-uninstaller.sh b/packaging/installer/netdata-uninstaller.sh index 419002e6a..2f9fc91f9 100755 --- a/packaging/installer/netdata-uninstaller.sh +++ b/packaging/installer/netdata-uninstaller.sh @@ -158,7 +158,7 @@ create_tmp_directory() { fi fi - mktemp -d -t netdata-kickstart-XXXXXXXXXX + mktemp -d -t netdata-uninstaller-XXXXXXXXXX } tmpdir="$(create_tmp_directory)" @@ -725,25 +725,32 @@ rm_file /usr/lib/systemd/system/netdata-updater.service rm_file /etc/systemd/system/netdata-updater.timer rm_file /lib/systemd/system/netdata-updater.timer rm_file /usr/lib/systemd/system/netdata-updater.timer +rm_file /usr/lib/systemd/system-preset/50-netdata.preset +rm_file /lib/systemd/system-preset/50-netdata.preset rm_file /etc/init.d/netdata rm_file /etc/periodic/daily/netdata-updater rm_file /etc/cron.daily/netdata-updater rm_file /etc/cron.d/netdata-updater -if [ -n "${NETDATA_PREFIX}" ] && [ -d "${NETDATA_PREFIX}" ]; then +if [ -n "${NETDATA_PREFIX}" ] && [ -d "${NETDATA_PREFIX}" ] && [ "netdata" = "$(basename "$NETDATA_PREFIX")" ] ; then rm_dir "${NETDATA_PREFIX}" else - rm_file "/usr/sbin/netdata" - rm_file "/usr/sbin/netdatacli" + rm_file "${NETDATA_PREFIX}/usr/sbin/netdata" + rm_file "${NETDATA_PREFIX}/usr/sbin/netdatacli" rm_file "/tmp/netdata-ipc" - rm_file "/usr/sbin/netdata-claim.sh" - rm_dir "/usr/share/netdata" - rm_dir "/usr/libexec/netdata" - rm_dir "/var/lib/netdata" - rm_dir "/var/cache/netdata" - rm_dir "/var/log/netdata" - rm_dir "/etc/netdata" + rm_file "/tmp/netdata-service-cmds" + rm_file "${NETDATA_PREFIX}/usr/sbin/netdata-claim.sh" + rm_dir "${NETDATA_PREFIX}/usr/share/netdata" + rm_dir "${NETDATA_PREFIX}/usr/libexec/netdata" + rm_dir "${NETDATA_PREFIX}/var/lib/netdata" + rm_dir "${NETDATA_PREFIX}/var/cache/netdata" + rm_dir "${NETDATA_PREFIX}/var/log/netdata" + rm_dir "${NETDATA_PREFIX}/etc/netdata" +fi + +if [ -n "${tmpdir}" ]; then + run rm -rf "${tmpdir}" || true fi FILE_REMOVAL_STATUS=1 diff --git a/packaging/installer/netdata-updater.sh b/packaging/installer/netdata-updater.sh index 811657c21..80faea0a0 100755 --- a/packaging/installer/netdata-updater.sh +++ b/packaging/installer/netdata-updater.sh @@ -737,7 +737,7 @@ update_binpkg() { opensuse-leap|opensuse-tumbleweed) DISTRO_COMPAT_NAME="opensuse" ;; - cloudlinux|almalinux|rocky|rhel) + cloudlinux|almalinux|centos-stream|rocky|rhel) DISTRO_COMPAT_NAME="centos" ;; *) diff --git a/packaging/makeself/build-static.sh b/packaging/makeself/build-static.sh index f9f635c79..0c46c12af 100755 --- a/packaging/makeself/build-static.sh +++ b/packaging/makeself/build-static.sh @@ -24,7 +24,7 @@ else exit 1 fi -DOCKER_IMAGE_NAME="netdata/static-builder" +DOCKER_IMAGE_NAME="netdata/static-builder:v1" if [ "${BUILDARCH}" != "$(uname -m)" ] && [ "$(uname -m)" = 'x86_64' ] && [ -z "${SKIP_EMULATION}" ]; then ${docker} run --rm --privileged multiarch/qemu-user-static --reset -p yes || exit 1 diff --git a/packaging/makeself/curl.version b/packaging/makeself/curl.version index 7bfa34ed1..12ab47e6c 100644 --- a/packaging/makeself/curl.version +++ b/packaging/makeself/curl.version @@ -1 +1 @@ -curl-8_2_1 +curl-8_4_0 diff --git a/packaging/makeself/jobs/70-netdata-git.install.sh b/packaging/makeself/jobs/70-netdata-git.install.sh index 67b8df103..62f0c822d 100755 --- a/packaging/makeself/jobs/70-netdata-git.install.sh +++ b/packaging/makeself/jobs/70-netdata-git.install.sh @@ -12,7 +12,7 @@ else export CFLAGS="-static -O1 -pipe -ggdb -Wall -Wextra -Wformat-signedness -DNETDATA_INTERNAL_CHECKS=1 -I/openssl-static/include -I/libnetfilter-acct-static/include/libnetfilter_acct -I/usr/include/libmnl" fi -export LDFLAGS="-Wl,--gc-sections -Wl,-z,stack-size=$[8 * 1024 * 1024] -static -L/openssl-static/lib64 -L/libnetfilter-acct-static/lib -lnetfilter_acct -L/usr/lib -lmnl" +export LDFLAGS="-Wl,--gc-sections -static -L/openssl-static/lib64 -L/libnetfilter-acct-static/lib -lnetfilter_acct -L/usr/lib -lmnl" # We export this to 'yes', installer sets this to .environment. # The updater consumes this one, so that it can tell whether it should update a static install or a non-static one @@ -31,6 +31,7 @@ run ./netdata-installer.sh \ --install-prefix "${NETDATA_INSTALL_PARENT}" \ --dont-wait \ --dont-start-it \ + --disable-exporting-mongodb \ --require-cloud \ --use-system-protobuf \ --dont-scrub-cflags-even-though-it-may-break-things \ diff --git a/packaging/makeself/openssl.version b/packaging/makeself/openssl.version index fec11a1db..c4d4ea136 100644 --- a/packaging/makeself/openssl.version +++ b/packaging/makeself/openssl.version @@ -1 +1 @@ -openssl-3.1.2 +openssl-3.1.3 diff --git a/packaging/version b/packaging/version index ee72a8d99..518f2eaf1 100644 --- a/packaging/version +++ b/packaging/version @@ -1 +1 @@ -v1.42.4 +v1.43.0 |