diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-10-17 09:30:23 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-10-17 09:30:23 +0000 |
commit | 517a443636daa1e8085cb4e5325524a54e8a8fd7 (patch) | |
tree | 5352109cc7cd5122274ab0cfc1f887b685f04edf /packaging/installer | |
parent | Releasing debian version 1.42.4-1. (diff) | |
download | netdata-517a443636daa1e8085cb4e5325524a54e8a8fd7.tar.xz netdata-517a443636daa1e8085cb4e5325524a54e8a8fd7.zip |
Merging upstream version 1.43.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'packaging/installer')
-rw-r--r-- | packaging/installer/README.md | 27 | ||||
-rw-r--r-- | packaging/installer/UPDATE.md | 22 | ||||
-rwxr-xr-x | packaging/installer/dependencies/centos.sh | 1 | ||||
-rwxr-xr-x | packaging/installer/dependencies/rockylinux.sh | 1 | ||||
-rwxr-xr-x | packaging/installer/install-required-packages.sh | 21 | ||||
-rwxr-xr-x | packaging/installer/kickstart.sh | 13 | ||||
-rw-r--r-- | packaging/installer/methods/ansible.md | 2 | ||||
-rw-r--r-- | packaging/installer/methods/kubernetes.md | 2 | ||||
-rw-r--r-- | packaging/installer/methods/macos.md | 16 | ||||
-rw-r--r-- | packaging/installer/methods/manual.md | 4 | ||||
-rw-r--r-- | packaging/installer/methods/packages.md | 12 | ||||
-rw-r--r-- | packaging/installer/methods/pfsense.md | 2 | ||||
-rwxr-xr-x | packaging/installer/netdata-uninstaller.sh | 29 | ||||
-rwxr-xr-x | packaging/installer/netdata-updater.sh | 2 |
14 files changed, 118 insertions, 36 deletions
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" ;; *) |