diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-02-06 16:11:30 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-02-06 16:11:30 +0000 |
commit | aa2fe8ccbfcb117efa207d10229eeeac5d0f97c7 (patch) | |
tree | 941cbdd387b41c1a81587c20a6df9f0e5e0ff7ab /packaging/installer | |
parent | Adding upstream version 1.37.1. (diff) | |
download | netdata-aa2fe8ccbfcb117efa207d10229eeeac5d0f97c7.tar.xz netdata-aa2fe8ccbfcb117efa207d10229eeeac5d0f97c7.zip |
Adding upstream version 1.38.0.upstream/1.38.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'packaging/installer')
-rw-r--r-- | packaging/installer/README.md | 26 | ||||
-rw-r--r-- | packaging/installer/REINSTALL.md | 16 | ||||
-rw-r--r-- | packaging/installer/UNINSTALL.md | 10 | ||||
-rw-r--r-- | packaging/installer/UPDATE.md | 22 | ||||
-rw-r--r-- | packaging/installer/functions.sh | 14 | ||||
-rwxr-xr-x | packaging/installer/install-required-packages.sh | 57 | ||||
-rwxr-xr-x | packaging/installer/kickstart.sh | 126 | ||||
-rw-r--r-- | packaging/installer/methods/cloud-providers.md | 12 | ||||
-rw-r--r-- | packaging/installer/methods/freebsd.md | 6 | ||||
-rw-r--r-- | packaging/installer/methods/kickstart.md | 29 | ||||
-rw-r--r-- | packaging/installer/methods/kubernetes.md | 16 | ||||
-rw-r--r-- | packaging/installer/methods/macos.md | 34 | ||||
-rw-r--r-- | packaging/installer/methods/manual.md | 29 | ||||
-rw-r--r-- | packaging/installer/methods/offline.md | 16 | ||||
-rw-r--r-- | packaging/installer/methods/packages.md | 89 | ||||
-rw-r--r-- | packaging/installer/methods/source.md | 8 | ||||
-rw-r--r-- | packaging/installer/methods/synology.md | 2 | ||||
-rwxr-xr-x | packaging/installer/netdata-uninstaller.sh | 2 | ||||
-rwxr-xr-x | packaging/installer/netdata-updater.sh | 38 |
19 files changed, 321 insertions, 231 deletions
diff --git a/packaging/installer/README.md b/packaging/installer/README.md index 3a4237d52..90d3b8de2 100644 --- a/packaging/installer/README.md +++ b/packaging/installer/README.md @@ -24,7 +24,7 @@ packages. We recommend you install Netdata using one of the methods listed below checksum-verified packages. Netdata collects anonymous usage information by default and sends it to our self hosted [PostHog](https://github.com/PostHog/posthog) installation. PostHog is an open source product analytics platform, you can read -about the information collected, and learn how to-opt, on our [anonymous statistics](/docs/anonymous-statistics.md) +about the information collected, and learn how to-opt, on our [anonymous statistics](https://github.com/netdata/netdata/blob/master/docs/anonymous-statistics.md) page. The usage statistics are _vital_ for us, as we use them to discover bugs and prioritize new features. We thank you for @@ -32,7 +32,7 @@ _actively_ contributing to Netdata's future. ## Automatic one-line installation script -![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart&group=sum&after=-3600&label=last+hour&units=installations&value_color=orange&precision=0) ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart&group=sum&after=-86400&label=today&units=installations&precision=0) +![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_by_url_pattern&options=unaligned&dimensions=kickstart&group=sum&after=-3600&label=last+hour&units=installations&value_color=orange&precision=0) ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_by_url_pattern&options=unaligned&dimensions=kickstart&group=sum&after=-86400&label=today&units=installations&precision=0) This method is fully automatic on all Linux distributions, including Ubuntu, Debian, Fedora, CentOS, and others, as well as on mac OS environments. @@ -49,17 +49,17 @@ This script will preferentially use native DEB/RPM packages if we provide them f To see more information about this installation script, including how to disable automatic updates, get nightly vs. stable releases, or disable anonymous statistics, see the [`kickstart.sh` method -page](/packaging/installer/methods/kickstart.md). +page](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/kickstart.md). Scroll down for details about [automatic updates](#automatic-updates) or [nightly vs. stable releases](#nightly-vs-stable-releases). ### Post-installation -When you're finished with installation, check out our [single-node](/docs/quickstart/single-node.md) or -[infrastructure](/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. +When you're finished with installation, check out our [single-node](https://github.com/netdata/netdata/blob/master/docs/quickstart/single-node.md) or +[infrastructure](https://github.com/netdata/netdata/blob/master/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. -Or, skip straight to [configuring the Netdata Agent](/docs/configure/nodes.md). +Or, skip straight to [configuring the Netdata Agent](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md). Read through Netdata's [documentation](https://learn.netdata.cloud/docs), which is structured based on actions and solutions, to enable features like health monitoring, alarm notifications, long-term metrics storage, exporting to @@ -68,7 +68,7 @@ external databases, and more. ## Have a different operating system, or want to try another method? Netdata works on many different platforms. To see all supported platforms, check out our [platform support -policy](/packaging/PLATFORM_SUPPORT.md). +policy](https://github.com/netdata/netdata/blob/master/packaging/PLATFORM_SUPPORT.md). Below, you can find a few additional installation methods, followed by separate instructions for a variety of unique operating systems. @@ -81,6 +81,10 @@ operating systems. os="General Linux with one-line installer (recommended)" svg="linux" /> <InstallBox + to="/docs/agent/packaging/installer/methods/packages" + os="Native DEB/RPM packages for Linux" + svg="linux" /> + <InstallBox to="/docs/agent/packaging/docker" os="Run with Docker" svg="docker" /> @@ -119,7 +123,7 @@ wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/ ``` With automatic updates disabled, you can choose exactly when and how you [update -Netdata](/packaging/installer/UPDATE.md). +Netdata](https://github.com/netdata/netdata/blob/master/packaging/installer/UPDATE.md). ### Network usage of Netdata’s automatic updater @@ -178,8 +182,8 @@ man-in-the-middle attacks. ### CentOS 6 and CentOS 8 To install the Agent on certain CentOS and RHEL systems, you must enable non-default repositories, such as EPEL or -PowerTools, to gather hard dependencies. See the [CentOS 6](/packaging/installer/methods/manual.md#centos--rhel-6x) and -[CentOS 8](/packaging/installer/methods/manual.md#centos--rhel-8x) sections for more information. +PowerTools, to gather hard dependencies. See the [CentOS 6](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/manual.md#centos--rhel-6x) and +[CentOS 8](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/manual.md#centos--rhel-8x) sections for more information. ### Access to file is not permitted @@ -213,6 +217,6 @@ both. Our current build process has some issues when using certain configurations of the `clang` C compiler on Linux. See [the section on `nonrepresentable section on output` -errors](/packaging/installer/methods/manual.md#nonrepresentable-section-on-output-errors) for a workaround. +errors](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/manual.md#nonrepresentable-section-on-output-errors) for a workaround. diff --git a/packaging/installer/REINSTALL.md b/packaging/installer/REINSTALL.md index 1356c70dc..c24fdee8c 100644 --- a/packaging/installer/REINSTALL.md +++ b/packaging/installer/REINSTALL.md @@ -1,7 +1,11 @@ <!-- title: "Reinstall the Netdata Agent" description: "Troubleshooting installation issues or force an update of the Netdata Agent by reinstalling it using the same method you used during installation." -custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/REINSTALL.md +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/REINSTALL.md" +sidebar_label: "Reinstall the Netdata Agent" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" --> # Reinstall the Netdata Agent @@ -14,11 +18,11 @@ Netdata Agent on your node. ### Reinstalling with the same install type Run the one-line installer script with the `--reinstall` parameter to reinstall the Netdata Agent. This will preserve -any [user configuration](/docs/configure/nodes.md) in `netdata.conf` or other files, and will keep the same install +any [user configuration](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md) in `netdata.conf` or other files, and will keep the same install type that was used for the original install. If you used any [optional -parameters](/packaging/installer/methods/kickstart.md#optional-parameters-to-alter-your-installation) during initial +parameters](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/kickstart.md#optional-parameters-to-alter-your-installation) during initial installation, you need to pass them to the script again during reinstallation. If you cannot remember which options you used, read the contents of the `.environment` file and look for a `REINSTALL_OPTIONS` line. This line contains a list of optional parameters. @@ -35,7 +39,7 @@ getting a badly broken installation working again. Unlike the regular `--reinsta different install type than the original install used. If you used any [optional -parameters](/packaging/installer/methods/kickstart.md#optional-parameters-to-alter-your-installation) during initial +parameters](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/kickstart.md#optional-parameters-to-alter-your-installation) during initial installation, you need to pass them to the script again during reinstallation. If you cannot remember which options you used, read the contents of the `.environment` file and look for a `REINSTALL_OPTIONS` line. This line contains a list of optional parameters. @@ -65,8 +69,8 @@ When copying these directories back after the reinstall, you may need to update ## Troubleshooting If you still experience problems with your Netdata Agent installation after following one of these processes, the next -best route is to [uninstall](/packaging/installer/UNINSTALL.md) and then try a fresh installation using the [one-line -installer](/packaging/installer/methods/kickstart.md). +best route is to [uninstall](https://github.com/netdata/netdata/blob/master/packaging/installer/UNINSTALL.md) and then try a fresh installation using the [one-line +installer](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/kickstart.md). You can also post to our [community forums](https://community.netdata.cloud/c/support/13) or create a new [bug report](https://github.com/netdata/netdata/issues/new?assignees=&labels=bug%2Cneeds+triage&template=BUG_REPORT.yml). diff --git a/packaging/installer/UNINSTALL.md b/packaging/installer/UNINSTALL.md index af2314f65..2ff22f5c6 100644 --- a/packaging/installer/UNINSTALL.md +++ b/packaging/installer/UNINSTALL.md @@ -1,14 +1,18 @@ <!-- title: "Uninstall Netdata" description: "If you are no longer interested in using the Netdata Agent, use the self-contained uninstaller to remove all traces of binaries and configuration files." -custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/UNINSTALL.md +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/UNINSTALL.md" +sidebar_label: "Uninstall Netdata" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" --> # Uninstall Netdata > ⚠️ If you're having trouble updating Netdata, moving from one installation method to another, or generally having > issues with your Netdata Agent installation, consider our [**reinstall Netdata** -> doc](/packaging/installer/REINSTALL.md) instead of removing the Netdata Agent entirely. +> doc](https://github.com/netdata/netdata/blob/master/packaging/installer/REINSTALL.md) instead of removing the Netdata Agent entirely. The recommended method to uninstall Netdata on a system is to use our kickstart installer script with the `--uninstall` option like so: @@ -51,7 +55,7 @@ A workflow for uninstallation looks like this: 2. If you cannot find that file and would like to uninstall Netdata, then create a new file with the following content: ```sh -NETDATA_PREFIX="<installation prefix>" # put what you used as a parameter to shell installed `--install` flag. Otherwise it should be empty +NETDATA_PREFIX="<installation prefix>" # put what you used as a parameter to shell installed `--install-prefix` flag. Otherwise it should be empty NETDATA_ADDED_TO_GROUPS="<additional groups>" # Additional groups for a user running the Netdata process ``` diff --git a/packaging/installer/UPDATE.md b/packaging/installer/UPDATE.md index 009e970f2..9d4289f85 100644 --- a/packaging/installer/UPDATE.md +++ b/packaging/installer/UPDATE.md @@ -1,7 +1,11 @@ <!-- title: "Update the Netdata Agent" description: "If you opted out of automatic updates, you need to update your Netdata Agent to the latest nightly or stable version." -custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/UPDATE.md +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/UPDATE.md" +sidebar_label: "Update the Netdata Agent" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" --> # Update the Netdata Agent @@ -11,7 +15,7 @@ you installed. If you opted out of automatic updates, you need to update your Ne or stable version. You can also [enable or disable automatic updates on an existing install](#control-automatic-updates). > 💡 Looking to reinstall the Netdata Agent to enable a feature, update an Agent that cannot update automatically, or -> troubleshoot an error during the installation process? See our [reinstallation doc](/packaging/installer/REINSTALL.md) +> troubleshoot an error during the installation process? See our [reinstallation doc](https://github.com/netdata/netdata/blob/master/packaging/installer/REINSTALL.md) > for reinstallation steps. Before you update the Netdata Agent, check to see if your Netdata Agent is already up-to-date by clicking on the update @@ -45,14 +49,14 @@ command: wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --dry-run ``` -Note that if you installed Netdata using an installation prefix, you will need to add an `--install` option +Note that if you installed Netdata using an installation prefix, you will need to add an `--install-prefix` option specifying that prefix to make sure it finds the existing install. If you see a line starting with `--- Would attempt to update existing installation by running the updater script located at:`, then our [regular update method](#updates-for-most-systems) will work for you. Otherwise, it should either indicate that the installation type is not supported (which probably means you either -have a `custom` instal or built Netdata manually) or indicate that it would create a new install (which means that +have a `custom` install or built Netdata manually) or indicate that it would create a new install (which means that you either used a non-standard install path, or that you don’t actually have Netdata installed). ## Updates for most systems @@ -61,7 +65,7 @@ In most cases, you can update netdata using our one-line installation script. T run the update script that was installed as part of the initial install (even if you disabled automatic updates) and preserve the existing install options you specified. -If you installed Netdata using an installation prefix, you will need to add an `--install` option specifying +If you installed Netdata using an installation prefix, you will need to add an `--install-prefix` option specifying that prefix to this command to make sure it finds Netdata. ```bash @@ -80,8 +84,8 @@ On such installs, you can update Netdata using your distribution package manager ### If the kickstart script does not work If the above command fails, you can [reinstall -Netdata](/packaging/installer/REINSTALL.md#one-line-installer-script-kickstartsh) to get the latest version. This -also preserves your [configuration](/docs/configure/nodes.md) in `netdata.conf` or other files just like updating +Netdata](https://github.com/netdata/netdata/blob/master/packaging/installer/REINSTALL.md#one-line-installer-script-kickstartsh) to get the latest version. This +also preserves your [configuration](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md) in `netdata.conf` or other files just like updating normally would, though you will need to specify any installation options you used originally again. ## Docker @@ -105,7 +109,7 @@ docker rm netdata ``` You can now re-create your Netdata container using the `docker` command or a `docker-compose.yml` file. See our [Docker -installation instructions](/packaging/docker/README.md#create-a-new-netdata-agent-container) for details. +installation instructions](https://github.com/netdata/netdata/blob/master/packaging/docker/README.md#create-a-new-netdata-agent-container) for details. ## macOS @@ -124,7 +128,7 @@ instructions](#updates-for-most-systems) to update Netdata. ## Manual installation from Git -If you installed [Netdata manually from Git](/packaging/installer/methods/manual.md), you can run that installer again +If you installed [Netdata manually from Git](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/manual.md), you can run that installer again to update your agent. First, run our automatic requirements installer, which works on many Linux distributions, to ensure your system has the dependencies necessary for new features. diff --git a/packaging/installer/functions.sh b/packaging/installer/functions.sh index e354ac651..ebb4aab75 100644 --- a/packaging/installer/functions.sh +++ b/packaging/installer/functions.sh @@ -396,6 +396,14 @@ get_os_key() { fi } +get_group(){ + if command -v getent > /dev/null 2>&1; then + getent group "${1:-""}" + else + cat /etc/group | grep "^${1}:" + fi +} + issystemd() { pids='' p='' @@ -933,7 +941,7 @@ portable_add_group() { groupname="${1}" # Check if group exist - if cut -d ':' -f 1 < /etc/group | grep "^${groupname}$" 1> /dev/null 2>&1; then + if get_group "${groupname}" > /dev/null 2>&1; then echo >&2 "Group '${groupname}' already exists." return 0 fi @@ -969,14 +977,14 @@ portable_add_user_to_group() { username="${2}" # Check if group exist - if ! cut -d ':' -f 1 < /etc/group | grep "^${groupname}$" > /dev/null 2>&1; then + if ! get_group "${groupname}" > /dev/null 2>&1; then echo >&2 "Group '${groupname}' does not exist." # Don’t treat this as a failure, if the group does not exist we should not be trying to add the user to it. return 0 fi # Check if user is in group - if expr ",$(grep "^${groupname}:" < /etc/group | cut -d ':' -f 4)," : ",""${username}"","; then + if get_group "${groupname}" | cut -d ':' -f 4 | grep -wq "${username}"; then # username is already there echo >&2 "User '${username}' is already in group '${groupname}'." return 0 diff --git a/packaging/installer/install-required-packages.sh b/packaging/installer/install-required-packages.sh index 6547dd82e..c906cce34 100755 --- a/packaging/installer/install-required-packages.sh +++ b/packaging/installer/install-required-packages.sh @@ -20,7 +20,6 @@ fi PACKAGES_NETDATA=${PACKAGES_NETDATA-1} PACKAGES_NETDATA_PYTHON=${PACKAGES_NETDATA_PYTHON-0} PACKAGES_NETDATA_PYTHON3=${PACKAGES_NETDATA_PYTHON3-1} -PACKAGES_NETDATA_PYTHON_MONGO=${PACKAGES_NETDATA_PYTHON_MONGO-0} PACKAGES_DEBUG=${PACKAGES_DEBUG-0} PACKAGES_IPRANGE=${PACKAGES_IPRANGE-0} PACKAGES_FIREHOL=${PACKAGES_FIREHOL-0} @@ -105,8 +104,6 @@ Supported packages (you can append many of them): - python3 install python3 - - python-pymongo install python-pymongo (or python3-pymongo for python3) - - sensors install lm_sensors for monitoring h/w sensors - firehol-all packages required for FireHOL, FireQOS, update-ipsets @@ -715,6 +712,7 @@ declare -A pkg_tar=( ['gentoo']="app-arch/tar" ['clearlinux']="os-core-update" ['macos']="NOTREQUIRED" + ['freebsd']="NOTREQUIRED" ['default']="tar" ) @@ -934,41 +932,6 @@ declare -A pkg_python3_pip=( ['default']="python3-pip" ) -declare -A pkg_python_pymongo=( - ['alpine']="WARNING|" - ['arch']="python2-pymongo" - ['centos']="WARNING|" - ['debian']="python-pymongo" - ['gentoo']="dev-python/pymongo" - ['suse']="python-pymongo" - ['clearlinux']="WARNING|" - ['rhel']="WARNING|" - ['ol']="WARNING|" - ['macos']="WARNING|" - ['default']="python-pymongo" -) - -declare -A pkg_python3_pymongo=( - ['alpine']="WARNING|" - ['arch']="python-pymongo" - ['centos']="WARNING|" - ['debian']="python3-pymongo" - ['gentoo']="dev-python/pymongo" - ['suse']="python3-pymongo" - ['clearlinux']="WARNING|" - ['rhel']="WARNING|" - ['ol']="WARNING|" - ['freebsd']="py37-pymongo" - ['macos']="WARNING|" - ['default']="python3-pymongo" - - ['centos-7']="python36-pymongo" - ['centos-8']="python3-pymongo" - ['rhel-7']="python36-pymongo" - ['rhel-8']="python3-pymongo" - ['ol-8']="python3-pymongo" -) - declare -A pkg_python_requests=( ['alpine']="py-requests" ['arch']="python2-requests" @@ -1293,7 +1256,6 @@ packages() { if [ "${PACKAGES_NETDATA_PYTHON}" -ne 0 ]; then require_cmd python || suitable_package python - [ "${PACKAGES_NETDATA_PYTHON_MONGO}" -ne 0 ] && suitable_package python-pymongo # suitable_package python-requests # suitable_package python-pip fi @@ -1304,7 +1266,6 @@ packages() { if [ "${PACKAGES_NETDATA_PYTHON3}" -ne 0 ]; then require_cmd python3 || suitable_package python3 - [ "${PACKAGES_NETDATA_PYTHON_MONGO}" -ne 0 ] && suitable_package python3-pymongo # suitable_package python3-requests # suitable_package python3-pip fi @@ -1846,7 +1807,7 @@ EOF remote_log() { # log success or failure on our system # to help us solve installation issues - curl > /dev/null 2>&1 -Ss --max-time 3 "https://registry.my-netdata.io/log/installer?status=${1}&error=${2}&distribution=${distribution}&version=${version}&installer=${package_installer}&tree=${tree}&detection=${detection}&netdata=${PACKAGES_NETDATA}&python=${PACKAGES_NETDATA_PYTHON}&python3=${PACKAGES_NETDATA_PYTHON3}&pymongo=${PACKAGES_NETDATA_PYTHON_MONGO}&sensors=${PACKAGES_NETDATA_SENSORS}&database=${PACKAGES_NETDATA_DATABASE}&ebpf=${PACKAGES_NETDATA_EBPF}&firehol=${PACKAGES_FIREHOL}&fireqos=${PACKAGES_FIREQOS}&iprange=${PACKAGES_IPRANGE}&update_ipsets=${PACKAGES_UPDATE_IPSETS}&demo=${PACKAGES_NETDATA_DEMO_SITE}" + curl > /dev/null 2>&1 -Ss --max-time 3 "https://registry.my-netdata.io/log/installer?status=${1}&error=${2}&distribution=${distribution}&version=${version}&installer=${package_installer}&tree=${tree}&detection=${detection}&netdata=${PACKAGES_NETDATA}&python=${PACKAGES_NETDATA_PYTHON}&python3=${PACKAGES_NETDATA_PYTHON3}&sensors=${PACKAGES_NETDATA_SENSORS}&database=${PACKAGES_NETDATA_DATABASE}&ebpf=${PACKAGES_NETDATA_EBPF}&firehol=${PACKAGES_FIREHOL}&fireqos=${PACKAGES_FIREQOS}&iprange=${PACKAGES_IPRANGE}&update_ipsets=${PACKAGES_UPDATE_IPSETS}&demo=${PACKAGES_NETDATA_DEMO_SITE}" } if [ -z "${1}" ]; then @@ -1909,10 +1870,8 @@ while [ -n "${1}" ]; do PACKAGES_NETDATA=1 if [ "${pv}" -eq 2 ]; then PACKAGES_NETDATA_PYTHON=1 - PACKAGES_NETDATA_PYTHON_MONGO=1 else PACKAGES_NETDATA_PYTHON3=1 - PACKAGES_NETDATA_PYTHON3_MONGO=1 fi PACKAGES_NETDATA_SENSORS=1 PACKAGES_NETDATA_DATABASE=1 @@ -1934,16 +1893,6 @@ while [ -n "${1}" ]; do PACKAGES_NETDATA_PYTHON3=1 ;; - python-pymongo) - if [ "${pv}" -eq 2 ]; then - PACKAGES_NETDATA_PYTHON=1 - PACKAGES_NETDATA_PYTHON_MONGO=1 - else - PACKAGES_NETDATA_PYTHON3=1 - PACKAGES_NETDATA_PYTHON3_MONGO=1 - fi - ;; - sensors | netdata-sensors) PACKAGES_NETDATA=1 PACKAGES_NETDATA_PYTHON3=1 @@ -1963,10 +1912,8 @@ while [ -n "${1}" ]; do PACKAGES_NETDATA=1 if [ "${pv}" -eq 2 ]; then PACKAGES_NETDATA_PYTHON=1 - PACKAGES_NETDATA_PYTHON_MONGO=1 else PACKAGES_NETDATA_PYTHON3=1 - PACKAGES_NETDATA_PYTHON3_MONGO=1 fi PACKAGES_DEBUG=1 PACKAGES_IPRANGE=1 diff --git a/packaging/installer/kickstart.sh b/packaging/installer/kickstart.sh index 295fcdca0..30c7b4cab 100755 --- a/packaging/installer/kickstart.sh +++ b/packaging/installer/kickstart.sh @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: GPL-3.0-or-later # -# Next unused error code: F050D +# Next unused error code: F050F # ====================================================================== # Constants @@ -28,8 +28,10 @@ KICKSTART_SOURCE="$( PACKAGES_SCRIPT="https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh" PATH="${PATH}:/usr/local/bin:/usr/local/sbin" PUBLIC_CLOUD_URL="https://app.netdata.cloud" -REPOCONFIG_URL_PREFIX="https://packagecloud.io/netdata/netdata-repoconfig/packages" -REPOCONFIG_VERSION="1-2" +REPOCONFIG_DEB_URL_PREFIX="https://repo.netdata.cloud/repos/repoconfig" +REPOCONFIG_DEB_VERSION="2-1" +REPOCONFIG_RPM_URL_PREFIX="https://repo.netdata.cloud/repos/repoconfig" +REPOCONFIG_RPM_VERSION="2-1" START_TIME="$(date +%s)" STATIC_INSTALL_ARCHES="x86_64 armv7l aarch64 ppc64le" TELEMETRY_URL="https://posthog.netdata.cloud/capture/" @@ -43,9 +45,10 @@ INSTALL_TYPE="unknown" INSTALL_PREFIX="" NETDATA_AUTO_UPDATES="default" NETDATA_CLAIM_ONLY=0 -NETDATA_CLAIM_URL="api.netdata.cloud" +NETDATA_CLAIM_URL="https://api.netdata.cloud" NETDATA_COMMAND="default" NETDATA_DISABLE_CLOUD=0 +NETDATA_INSTALLER_OPTIONS="" NETDATA_ONLY_BUILD=0 NETDATA_ONLY_NATIVE=0 NETDATA_ONLY_STATIC=0 @@ -62,8 +65,7 @@ else NETDATA_DISABLE_TELEMETRY=0 fi -NETDATA_TARBALL_BASEURL="${NETDATA_TARBALL_BASEURL:-https://storage.googleapis.com/netdata-nightlies}" -NETDATA_INSTALLER_OPTIONS="${NETDATA_INSTALLER_OPTIONS:-""}" +NETDATA_TARBALL_BASEURL="${NETDATA_TARBALL_BASEURL:-https://github.com/netdata/netdata-nightlies/releases}" TELEMETRY_API_KEY="${NETDATA_POSTHOG_API_KEY:-mqkwGT0JNFqO-zX2t0mW6Tec9yooaVu7xCBlXtHnt5Y}" if echo "${0}" | grep -q 'kickstart-static64'; then @@ -181,7 +183,6 @@ USAGE: kickstart.sh [options] --reinstall-even-if-unsafe Even try to reinstall if we don't think we can do so safely (implies --reinstall). --disable-cloud Disable support for Netdata Cloud (default: detect) --require-cloud Only install if Netdata Cloud can be enabled. Overrides --disable-cloud. - --install <path> This option is deprecated and will be removed in a future version, use --install-prefix instead. --install-prefix <path> Specify an installation prefix for local builds (default: autodetect based on system type). --old-install-prefix <path> Specify an old local builds installation prefix for uninstall/reinstall (if it's not default). --install-version <version> Specify the version of Netdata to install. @@ -301,12 +302,21 @@ EOF if command -v curl > /dev/null 2>&1; then curl --silent -o /dev/null -X POST --max-time 2 --header "Content-Type: application/json" -d "${REQ_BODY}" "${TELEMETRY_URL}" > /dev/null elif command -v wget > /dev/null 2>&1; then - wget -q -O - --no-check-certificate \ - --method POST \ - --timeout=1 \ - --header 'Content-Type: application/json' \ - --body-data "${REQ_BODY}" \ - "${TELEMETRY_URL}" > /dev/null + if wget --help 2>&1 | grep BusyBox > /dev/null 2>&1; then + # BusyBox-compatible version of wget, there is no --no-check-certificate option + wget -q -O - \ + -T 1 \ + --header 'Content-Type: application/json' \ + --post-data "${REQ_BODY}" \ + "${TELEMETRY_URL}" > /dev/null + else + wget -q -O - --no-check-certificate \ + --method POST \ + --timeout=1 \ + --header 'Content-Type: application/json' \ + --body-data "${REQ_BODY}" \ + "${TELEMETRY_URL}" > /dev/null + fi fi } @@ -591,7 +601,7 @@ get_redirect() { if command -v curl > /dev/null 2>&1; then run sh -c "curl ${url} -s -L -I -o /dev/null -w '%{url_effective}' | grep -o '[^/]*$'" || return 1 elif command -v wget > /dev/null 2>&1; then - run sh -c "wget --max-redirect=0 ${url} 2>&1 | grep Location | cut -d ' ' -f2 | grep -o '[^/]*$'" || return 1 + run sh -c "wget -S -O /dev/null ${url} 2>&1 | grep -m 1 Location | grep -o '[^/]*$'" || return 1 else fatal "${ERROR_F0003}" F0003 fi @@ -1044,7 +1054,7 @@ EOF confirm_install_prefix() { if [ -n "${INSTALL_PREFIX}" ] && [ "${NETDATA_ONLY_BUILD}" -ne 1 ]; then - fatal "The --install-prefix and --install options are only supported together with the --build-only option." F0204 + fatal "The --install-prefix option is only supported together with the --build-only option." F0204 fi if [ -n "${INSTALL_PREFIX}" ]; then @@ -1282,7 +1292,7 @@ pkg_installed() { netdata_avail_check() { case "${DISTRO_COMPAT_NAME}" in debian|ubuntu) - env DEBIAN_FRONTEND=noninteractive apt-cache policy netdata | grep -q packagecloud.io/netdata/netdata; + env DEBIAN_FRONTEND=noninteractive apt-cache policy netdata | grep -q repo.netdata.cloud/repos/; return $? ;; centos|fedora|ol) @@ -1361,7 +1371,7 @@ try_package_install() { repo_subcmd="update" repo_prefix="debian/${SYSCODENAME}" pkg_type="deb" - pkg_suffix="_all" + pkg_suffix="+debian${SYSVERSION}_all" pkg_vsep="_" pkg_install_opts="${interactive_opts}" repo_update_opts="${interactive_opts}" @@ -1375,7 +1385,7 @@ try_package_install() { repo_subcmd="update" repo_prefix="ubuntu/${SYSCODENAME}" pkg_type="deb" - pkg_suffix="_all" + pkg_suffix="+ubuntu${SYSVERSION}_all" pkg_vsep="_" pkg_install_opts="${interactive_opts}" repo_update_opts="${interactive_opts}" @@ -1468,8 +1478,17 @@ try_package_install() { fi repoconfig_name="netdata-repo${release}" - repoconfig_file="${repoconfig_name}${pkg_vsep}${REPOCONFIG_VERSION}${pkg_suffix}.${pkg_type}" - repoconfig_url="${REPOCONFIG_URL_PREFIX}/${repo_prefix}/${repoconfig_file}/download.${pkg_type}" + + case "${pkg_type}" in + deb) + repoconfig_file="${repoconfig_name}${pkg_vsep}${REPOCONFIG_DEB_VERSION}${pkg_suffix}.${pkg_type}" + repoconfig_url="${REPOCONFIG_DEB_URL_PREFIX}/${repo_prefix}/${repoconfig_file}" + ;; + rpm) + repoconfig_file="${repoconfig_name}${pkg_vsep}${REPOCONFIG_RPM_VERSION}${pkg_suffix}.${pkg_type}" + repoconfig_url="${REPOCONFIG_RPM_URL_PREFIX}/${repo_prefix}/${SYSARCH}/${repoconfig_file}" + ;; + esac if ! pkg_installed "${repoconfig_name}"; then progress "Checking for availability of repository configuration package." @@ -1507,7 +1526,7 @@ try_package_install() { fi if [ "${REPO_ACTION}" = "repositories-only" ]; then - progress "Successfully installed repository configuraion package." + progress "Successfully installed repository configuration package." deferred_warnings cleanup trap - EXIT @@ -1564,25 +1583,33 @@ set_static_archive_urls() { if [ -n "${NETDATA_OFFLINE_INSTALL_SOURCE}" ]; then path="$(cd "${NETDATA_OFFLINE_INSTALL_SOURCE}" || exit 1; pwd)" export NETDATA_STATIC_ARCHIVE_URL="file://${path}/netdata-${arch}-latest.gz.run" + export NETDATA_STATIC_ARCHIVE_NAME="netdata-${arch}-latest.gz.run" export NETDATA_STATIC_ARCHIVE_CHECKSUM_URL="file://${path}/sha256sums.txt" elif [ "${1}" = "stable" ]; then if [ -n "${INSTALL_VERSION}" ]; then - export NETDATA_STATIC_ARCHIVE_OLD_URL="https://github.com/netdata/netdata/releases/download/v${INSTALL_VERSION}/netdata-v${INSTALL_VERSION}.gz.run" export NETDATA_STATIC_ARCHIVE_URL="https://github.com/netdata/netdata/releases/download/v${INSTALL_VERSION}/netdata-${arch}-v${INSTALL_VERSION}.gz.run" + export NETDATA_STATIC_ARCHIVE_OLD_URL="https://github.com/netdata/netdata/releases/download/v${INSTALL_VERSION}/netdata-v${INSTALL_VERSION}.gz.run" + export NETDATA_STATIC_ARCHIVE_NAME="netdata-${arch}-v${INSTALL_VERSION}.gz.run" + export NETDATA_STATIC_ARCHIVE_OLD_NAME="netdata-v${INSTALL_VERSION}.gz.run" export NETDATA_STATIC_ARCHIVE_CHECKSUM_URL="https://github.com/netdata/netdata/releases/download/v${INSTALL_VERSION}/sha256sums.txt" else latest="$(get_redirect "https://github.com/netdata/netdata/releases/latest")" export NETDATA_STATIC_ARCHIVE_URL="https://github.com/netdata/netdata/releases/download/${latest}/netdata-${arch}-latest.gz.run" + export NETDATA_STATIC_ARCHIVE_NAME="netdata-${arch}-latest.gz.run" export NETDATA_STATIC_ARCHIVE_CHECKSUM_URL="https://github.com/netdata/netdata/releases/download/${latest}/sha256sums.txt" fi else if [ -n "${INSTALL_VERSION}" ]; then - export NETDATA_STATIC_ARCHIVE_URL="${NETDATA_TARBALL_BASEURL}/netdata-${arch}-v${INSTALL_VERSION}.gz.run" - export NETDATA_STATIC_ARCHIVE_OLD_URL="${NETDATA_TARBALL_BASEURL}/netdata-v${INSTALL_VERSION}.gz.run" - export NETDATA_STATIC_ARCHIVE_CHECKSUM_URL="${NETDATA_TARBALL_BASEURL}/sha256sums.txt" + export NETDATA_STATIC_ARCHIVE_URL="${NETDATA_TARBALL_BASEURL}/download/v${INSTALL_VERSION}/netdata-${arch}-v${INSTALL_VERSION}.gz.run" + export NETDATA_STATIC_ARCHIVE_OLD_URL="${NETDATA_TARBALL_BASEURL}/download/v${INSTALL_VERSION}/netdata-v${INSTALL_VERSION}.gz.run" + export NETDATA_STATIC_ARCHIVE_NAME="netdata-${arch}-v${INSTALL_VERSION}.gz.run" + export NETDATA_STATIC_ARCHIVE_OLD_NAME="netdata-v${INSTALL_VERSION}.gz.run" + export NETDATA_STATIC_ARCHIVE_CHECKSUM_URL="${NETDATA_TARBALL_BASEURL}/download/v${INSTALL_VERSION}/sha256sums.txt" else - export NETDATA_STATIC_ARCHIVE_URL="${NETDATA_TARBALL_BASEURL}/netdata-${arch}-latest.gz.run" - export NETDATA_STATIC_ARCHIVE_CHECKSUM_URL="${NETDATA_TARBALL_BASEURL}/sha256sums.txt" + tag="$(get_redirect "${NETDATA_TARBALL_BASEURL}/latest")" + export NETDATA_STATIC_ARCHIVE_URL="${NETDATA_TARBALL_BASEURL}/download/${tag}/netdata-${arch}-latest.gz.run" + export NETDATA_STATIC_ARCHIVE_NAME="netdata-${arch}-latest.gz.run" + export NETDATA_STATIC_ARCHIVE_CHECKSUM_URL="${NETDATA_TARBALL_BASEURL}/download/${tag}/sha256sums.txt" fi fi } @@ -1597,23 +1624,9 @@ try_static_install() { # Check status code first, so that we can provide nicer fallback for dry runs. if check_for_remote_file "${NETDATA_STATIC_ARCHIVE_URL}"; then - if [ -n "${NETDATA_OFFLINE_INSTALL_SOURCE}" ]; then - netdata_agent="$(basename "${NETDATA_STATIC_ARCHIVE_URL#"file://"}")" - elif [ -n "${INSTALL_VERSION}" ]; then - if [ "${SELECTED_RELEASE_CHANNEL}" = "stable" ]; then - netdata_agent="${NETDATA_STATIC_ARCHIVE_URL#"https://github.com/netdata/netdata/releases/download/v${INSTALL_VERSION}/"}" - else - netdata_agent="${NETDATA_STATIC_ARCHIVE_URL#"${NETDATA_TARBALL_BASEURL}/"}" - fi - else - if [ "${SELECTED_RELEASE_CHANNEL}" = "stable" ]; then - netdata_agent="${NETDATA_STATIC_ARCHIVE_URL#"https://github.com/netdata/netdata/releases/download/${latest}/"}" - else - netdata_agent="${NETDATA_STATIC_ARCHIVE_URL#"${NETDATA_TARBALL_BASEURL}/"}" - fi - fi + netdata_agent="${NETDATA_STATIC_ARCHIVE_NAME}" elif [ "${SYSARCH}" = "x86_64" ] && check_for_remote_file "${NETDATA_STATIC_ARCHIVE_OLD_URL}"; then - netdata_agent="${NETDATA_STATIC_ARCHIVE_OLD_URL#"https://github.com/netdata/netdata/releases/download/v${INSTALL_VERSION}/"}" + netdata_agent="${NETDATA_STATIC_ARCHIVE_OLD_NAME}" export NETDATA_STATIC_ARCHIVE_URL="${NETDATA_STATIC_ARCHIVE_OLD_URL}" else warning "There is no static build available for ${SYSARCH} CPUs. This usually means we simply do not currently provide static builds for ${SYSARCH} CPUs." @@ -1682,11 +1695,12 @@ set_source_archive_urls() { fi else if [ -n "${INSTALL_VERSION}" ]; then - export NETDATA_SOURCE_ARCHIVE_URL="${NETDATA_TARBALL_BASEURL}/netdata-v${INSTALL_VERSION}.tar.gz" - export NETDATA_SOURCE_ARCHIVE_CHECKSUM_URL="${NETDATA_TARBALL_BASEURL}/sha256sums.txt" + export NETDATA_SOURCE_ARCHIVE_URL="${NETDATA_TARBALL_BASEURL}/download/v${INSTALL_VERSION}/netdata-latest.tar.gz" + export NETDATA_SOURCE_ARCHIVE_CHECKSUM_URL="${NETDATA_TARBALL_BASEURL}/download/v${INSTALL_VERSION}/sha256sums.txt" else - export NETDATA_SOURCE_ARCHIVE_URL="${NETDATA_TARBALL_BASEURL}/netdata-latest.tar.gz" - export NETDATA_SOURCE_ARCHIVE_CHECKSUM_URL="${NETDATA_TARBALL_BASEURL}/sha256sums.txt" + tag="$(get_redirect "${NETDATA_TARBALL_BASEURL}/latest")" + export NETDATA_SOURCE_ARCHIVE_URL="${NETDATA_TARBALL_BASEURL}/download/${tag}/netdata-latest.tar.gz" + export NETDATA_SOURCE_ARCHIVE_CHECKSUM_URL="${NETDATA_TARBALL_BASEURL}/download/${tag}/sha256sums.txt" fi fi } @@ -1842,7 +1856,7 @@ prepare_offline_install_source() { run mkdir -p "${1}" || fatal "Unable to create target directory for offline install preparation." F0504 fi - run cd "${1}" || fatal "Failed to swtich to target directory for offline install preparation." F0505 + run cd "${1}" || fatal "Failed to switch to target directory for offline install preparation." F0505 if [ "${NETDATA_ONLY_NATIVE}" -ne 1 ] && [ "${NETDATA_ONLY_BUILD}" -ne 1 ]; then set_static_archive_urls "${SELECTED_RELEASE_CHANNEL}" "x86_64" @@ -2088,10 +2102,6 @@ validate_args() { } parse_args() { - if [ -n "${NETDATA_INSTALLER_OPTIONS}" ]; then - warning "Explicitly specifying additional installer options with NETDATA_INSTALLER_OPTIONS is deprecated. Please instead pass the options to the script using either --local-build-options or --static-install-options as appropriate." - fi - while [ -n "${1}" ]; do case "${1}" in "--help") @@ -2147,11 +2157,6 @@ parse_args() { NETDATA_DISABLE_TELEMETRY="1" NETDATA_INSTALLER_OPTIONS="${NETDATA_INSTALLER_OPTIONS} --disable-telemetry" ;; - "--install") - warning "--install flag is deprecated and will be removed in a future version. Please use --install-prefix instead." - INSTALL_PREFIX="${2}" - shift 1 - ;; "--install-prefix") INSTALL_PREFIX="${2}" shift 1 @@ -2223,11 +2228,11 @@ parse_args() { esac ;; "--local-build-options") - LOCAL_BUILD_OPTIONS="${2}" + LOCAL_BUILD_OPTIONS="${LOCAL_BUILD_OPTIONS} ${2}" shift 1 ;; "--static-install-options") - STATIC_INSTALL_OPTIONS="${2}" + STATIC_INSTALL_OPTIONS="${STATIC_INSTALL_OPTIONS} ${2}" shift 1 ;; "--prepare-offline-install-source") @@ -2249,8 +2254,7 @@ parse_args() { fi ;; *) - warning "Passing unrecognized option '${1}' to installer script. This behavior is deprecated and will be removed in the near future. If you intended to pass this option to the installer code, please use either --local-build-options or --static-install-options to specify it instead." - NETDATA_INSTALLER_OPTIONS="${NETDATA_INSTALLER_OPTIONS} ${1}" + fatal "Unrecognized option '${1}'. If you intended to pass this option to the installer code, please use either --local-build-options or --static-install-options to specify it instead." F050E ;; esac shift 1 diff --git a/packaging/installer/methods/cloud-providers.md b/packaging/installer/methods/cloud-providers.md index bc5c9aae2..6b8fa6de1 100644 --- a/packaging/installer/methods/cloud-providers.md +++ b/packaging/installer/methods/cloud-providers.md @@ -8,7 +8,7 @@ custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/instal Netdata is fully compatible with popular cloud providers like Google Cloud Platform (GCP), Amazon Web Services (AWS), Azure, and others. You can install Netdata on cloud instances to monitor the apps/services running there, or use -multiple instances in a [parent-child streaming](/streaming/README.md) configuration. +multiple instances in a [parent-child streaming](https://github.com/netdata/netdata/blob/master/streaming/README.md) configuration. In some cases, using Netdata on these cloud providers requires unique installation or configuration steps. This page aims to document some of those steps for popular cloud providers. @@ -53,11 +53,11 @@ command from a remote system, and it fails, it's likely that a firewall is block Another option is to put Netdata behind web server, which will proxy requests through standard HTTP/HTTPS ports (80/443), which are likely already open on your instance. We have a number of guides available: -- [Apache](/docs/Running-behind-apache.md) -- [Nginx](/docs/Running-behind-nginx.md) -- [Caddy](/docs/Running-behind-caddy.md) -- [HAProxy](/docs/Running-behind-haproxy.md) -- [lighttpd](/docs/Running-behind-lighttpd.md) +- [Apache](https://github.com/netdata/netdata/blob/master/docs/Running-behind-apache.md) +- [Nginx](https://github.com/netdata/netdata/blob/master/docs/Running-behind-nginx.md) +- [Caddy](https://github.com/netdata/netdata/blob/master/docs/Running-behind-caddy.md) +- [HAProxy](https://github.com/netdata/netdata/blob/master/docs/Running-behind-haproxy.md) +- [lighttpd](https://github.com/netdata/netdata/blob/master/docs/Running-behind-lighttpd.md) The next few sections outline how to add firewall rules to GCP, AWS, and Azure instances. diff --git a/packaging/installer/methods/freebsd.md b/packaging/installer/methods/freebsd.md index 3523157bd..ea7099b36 100644 --- a/packaging/installer/methods/freebsd.md +++ b/packaging/installer/methods/freebsd.md @@ -45,7 +45,7 @@ gunzip netdata*.tar.gz && tar xf netdata*.tar && rm -rf netdata*.tar Install Netdata in `/opt/netdata`. If you want to enable automatic updates, add `--auto-update` or `-u` to install `netdata-updater` in `cron` (**need root permission**): ```sh -cd netdata-v* && ./netdata-installer.sh --install /opt && cp /opt/netdata/usr/sbin/netdata-claim.sh /usr/sbin/ +cd netdata-v* && ./netdata-installer.sh --install-prefix /opt && cp /opt/netdata/usr/sbin/netdata-claim.sh /usr/sbin/ ``` You also need to enable the `netdata` service in `/etc/rc.conf`: @@ -66,7 +66,7 @@ You can now access the Netdata dashboard by navigating to `http://NODE:19999`, r Starting with v1.30, Netdata collects anonymous usage information by default and sends it to a self hosted PostHog instance within the Netdata infrastructure. To read more about the information collected and how to opt-out, check the [anonymous statistics -page](/docs/anonymous-statistics.md). +page](https://github.com/netdata/netdata/blob/master/docs/anonymous-statistics.md). ## Updating the Agent on FreeBSD If you have not passed the `--auto-update` or `-u` parameter for the installer to enable automatic updating, repeat the last step to update Netdata whenever a new version becomes available. @@ -75,7 +75,7 @@ The `netdata-updater.sh` script will update your Agent. ## Optional parameters to alter your installation | parameters | Description | |:-----:|-----------| -|`--install <path>`| Install netdata in `<path>.` Ex: `--install /opt` will put netdata in `/opt/netdata`| +|`--install-prefix <path>`| Install netdata in `<path>.` Ex: `--install-prefix /opt` will put netdata in `/opt/netdata`| | `--dont-start-it` | Do not (re)start netdata after installation| | `--dont-wait` | Run installation in non-interactive mode| | `--auto-update` or `-u` | Install netdata-updater in cron to update netdata automatically once per day| diff --git a/packaging/installer/methods/kickstart.md b/packaging/installer/methods/kickstart.md index 2555e4a83..7c1f60d19 100644 --- a/packaging/installer/methods/kickstart.md +++ b/packaging/installer/methods/kickstart.md @@ -1,21 +1,25 @@ <!-- title: "Install Netdata with kickstart.sh" description: "The kickstart.sh script installs Netdata from source, including all dependencies required to connect to Netdata Cloud, with a single command." -custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/methods/kickstart.md +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/methods/kickstart.md" +sidebar_label: "Install Netdata with kickstart.sh" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" --> import { OneLineInstallWget, OneLineInstallCurl } from '@site/src/components/OneLineInstall/' # Install Netdata with kickstart.sh -![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart&group=sum&after=-3600&label=last+hour&units=kickstart%20downloads&value_color=orange&precision=0) ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_per_url&options=unaligned&dimensions=kickstart&group=sum&after=-86400&label=today&units=kickstart%20downloads&precision=0) +![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_by_url_pattern&options=unaligned&dimensions=kickstart&group=sum&after=-3600&label=last+hour&units=kickstart%20downloads&value_color=orange&precision=0) ![](https://registry.my-netdata.io/api/v1/badge.svg?chart=web_log_nginx.requests_by_url_pattern&options=unaligned&dimensions=kickstart&group=sum&after=-86400&label=today&units=kickstart%20downloads&precision=0) This page covers detailed instructions on using and configuring the automatic one-line installation script named `kickstart.sh`. -The kickstart script works on all Linux distributions and macOS environments. By default, automatic nightly updates are enabled. If you are installing on macOS, make sure to check the [install documentation for macOS](macos.md) before continuing. +The kickstart script works on all Linux distributions and macOS environments. By default, automatic nightly updates are enabled. If you are installing on macOS, make sure to check the [install documentation for macOS](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/macos.md) before continuing. -> If you are unsure whether you want nightly or stable releases, read the [installation guide](/packaging/installer/README.md#nightly-vs-stable-releases). -> If you want to turn off [automatic updates](/packaging/installer/README.md#automatic-updates), use the `--no-updates` option. You can find more installation options below. +> If you are unsure whether you want nightly or stable releases, read the [installation guide](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#nightly-vs-stable-releases). +> If you want to turn off [automatic updates](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#automatic-updates), use the `--no-updates` option. You can find more installation options below. To install Netdata, run the following as your normal user: @@ -68,7 +72,6 @@ The `kickstart.sh` script accepts a number of optional parameters to control how - `--disable-cloud`: For local builds, don’t build any of the cloud code at all. For native packages and static builds, use runtime configuration to disable cloud support. - `--require-cloud`: Only install if Netdata Cloud can be enabled. Overrides `--disable-cloud`. -- `--install`: Specify an installation prefix for local builds (by default, we use a sane prefix based on the type of system), this option is deprecated and will be removed in a future version, please use `--install-prefix` instead. - `--install-prefix`: Specify an installation prefix for local builds (by default, we use a sane prefix based on the type of system). - `--install-version`: Specify the version of Netdata to install. - `--old-install-prefix`: Specify the custom local build's installation prefix that should be removed. @@ -76,7 +79,7 @@ The `kickstart.sh` script accepts a number of optional parameters to control how - `--reinstall-clean`: Performs an uninstall of Netdata and clean installation. - `--local-build-options`: Specify additional options to pass to the installer code when building locally. Only valid if `--build-only` is also specified. - `--static-install-options`: Specify additional options to pass to the static installer code. Only valid if --static-only is also specified. -- `--prepare-offline-install-source`: Instead of insallling the agent, prepare a directory that can be used to install on another system without needing to download anything. See our [offline installation documentation](/packaging/installer/methods/offline.md) for more info. +- `--prepare-offline-install-source`: Instead of insallling the agent, prepare a directory that can be used to install on another system without needing to download anything. See our [offline installation documentation](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/offline.md) for more info. Additionally, the following environment variables may be used to further customize how the script runs (most users should not need to use special values for any of these): @@ -91,9 +94,9 @@ should not need to use special values for any of these): ### Connect node to Netdata Cloud during installation -The `kickstart.sh` script accepts additional parameters to automatically [connect](/claim/README.md) your node to Netdata Cloud immediately after installation. +The `kickstart.sh` script accepts additional parameters to automatically [connect](https://github.com/netdata/netdata/blob/master/claim/README.md) your node to Netdata Cloud immediately after installation. -> Note: You either need to run the command with root privileges or run it with the user that is running the agent. More details: [Connect an agent without root privileges](/claim/README.md#connect-an-agent-without-root-privileges) section. +> Note: You either need to run the command with root privileges or run it with the user that is running the agent. More details: [Connect an agent without root privileges](https://github.com/netdata/netdata/blob/master/claim/README.md#connect-an-agent-without-root-privileges) section. To automatically claim nodes after installation: @@ -106,7 +109,7 @@ To automatically claim nodes after installation: after the install. - `--claim-rooms`: Specify a comma-separated list of tokens for each War Room this node should appear in. - `--claim-proxy`: Specify a proxy to use when connecting to the cloud in the form of `http://[user:pass@]host:ip` for an HTTP(S) proxy. - See [connecting through a proxy](/claim/README.md#connect-through-a-proxy) for details. + See [connecting through a proxy](https://github.com/netdata/netdata/blob/master/claim/README.md#connect-through-a-proxy) for details. - `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://api.netdata.cloud`. For example: @@ -160,10 +163,10 @@ If the script is valid, this command will return `OK, VALID`. ## What's next? -When you're finished with installation, check out our [single-node](/docs/quickstart/single-node.md) or -[infrastructure](/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. +When you're finished with installation, check out our [single-node](https://github.com/netdata/netdata/blob/master/docs/quickstart/single-node.md) or +[infrastructure](https://github.com/netdata/netdata/blob/master/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. -Or, skip straight to [configuring the Netdata Agent](/docs/configure/nodes.md). +Or, skip straight to [configuring the Netdata Agent](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md). Read through Netdata's [documentation](https://learn.netdata.cloud/docs), which is structured based on actions and solutions, to enable features like health monitoring, alarm notifications, long-term metrics storage, exporting to diff --git a/packaging/installer/methods/kubernetes.md b/packaging/installer/methods/kubernetes.md index 216703a33..142c098b4 100644 --- a/packaging/installer/methods/kubernetes.md +++ b/packaging/installer/methods/kubernetes.md @@ -1,7 +1,11 @@ <!-- title: "Deploy Kubernetes monitoring with Netdata" description: "Deploy Netdata to monitor a Kubernetes cluster to monitor the health, performance, resource utilization, and application metrics of a Kubernetes cluster in real time." -custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/methods/kubernetes.md +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/methods/kubernetes.md" +sidebar_label: "Deploy Kubernetes monitoring with Netdata" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" --> # Deploy Kubernetes monitoring with Netdata @@ -41,8 +45,8 @@ dashboards available in Netdata Cloud. ## Connect your Kubernetes cluster to Netdata Cloud -To start [Kubernetes monitoring](https://learn.netdata.cloud/docs/cloud/visualize/kubernetes/), you must first -[connect](/claim/README.md) your Kubernetes cluster to [Netdata Cloud](https://app.netdata.cloud). The connection process securely +To start [Kubernetes monitoring](https://github.com/netdata/netdata/blob/master/docs/cloud/visualize/kubernetes.md), you must first +[connect](https://github.com/netdata/netdata/blob/master/claim/README.md) your Kubernetes cluster to [Netdata Cloud](https://app.netdata.cloud). The connection process securely connects your Kubernetes cluster to stream metrics data to Netdata Cloud, enabling Kubernetes-specific visualizations like the health map and time-series composite charts. @@ -180,17 +184,17 @@ helm upgrade netdata netdata/netdata ## What's next? -[Start Kubernetes monitoring](https://learn.netdata.cloud/docs/cloud/visualize/kubernetes/) in Netdata Cloud, which +[Start Kubernetes monitoring](https://github.com/netdata/netdata/blob/master/docs/cloud/visualize/kubernetes.md) in Netdata Cloud, which comes with meaningful visualizations out of the box. Read our guide, [_Kubernetes monitoring with Netdata: Overview and -visualizations_](/docs/guides/monitor/kubernetes-k8s-netdata.md), for a complete walkthrough of Netdata's Kubernetes +visualizations_](https://github.com/netdata/netdata/blob/master/docs/guides/monitor/kubernetes-k8s-netdata.md), for a complete walkthrough of Netdata's Kubernetes monitoring capabilities, including a health map of every container in your infrastructure, aggregated resource utilization metrics, and application metrics. ### Related reference documentation -- [Netdata Cloud · Kubernetes monitoring](https://learn.netdata.cloud/docs/cloud/visualize/kubernetes/) +- [Netdata Cloud · Kubernetes monitoring](https://github.com/netdata/netdata/blob/master/docs/cloud/visualize/kubernetes.md) - [Netdata Helm chart](https://github.com/netdata/helmchart) - [Netdata service discovery](https://github.com/netdata/agent-service-discovery/) diff --git a/packaging/installer/methods/macos.md b/packaging/installer/methods/macos.md index a1b5f60ce..f80f4c137 100644 --- a/packaging/installer/methods/macos.md +++ b/packaging/installer/methods/macos.md @@ -1,13 +1,17 @@ <!-- title: "Install Netdata on macOS" -custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/methods/macos.md +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/methods/macos.md" +sidebar_label: "Install Netdata on macOS" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" --> # Install Netdata on macOS Netdata works on macOS, albeit with some limitations. -The number of charts displaying system metrics is limited, but you can use any of Netdata's [external plugins](/collectors/plugins.d/README.md) to monitor any services you might have installed on your macOS system. -You could also use a macOS system as the parent node in a [streaming configuration](/streaming/README.md). +The number of charts displaying system metrics is limited, but you can use any of Netdata's [external plugins](https://github.com/netdata/netdata/blob/master/collectors/plugins.d/README.md) to monitor any services you might have installed on your macOS system. +You could also use a macOS system as the parent node in a [streaming configuration](https://github.com/netdata/netdata/blob/master/streaming/README.md). You can install Netdata in one of the three following ways: @@ -18,12 +22,12 @@ You can install Netdata in one of the three following ways: Each of these installation option requires [Homebrew](https://brew.sh/) for handling dependencies. > The Netdata Homebrew package is community-created and -maintained. -> Community-maintained packages _may_ receive support from Netdata, but are only a best-effort affair. Learn more about [Netdata's platform support policy](/packaging/PLATFORM_SUPPORT.md). +> Community-maintained packages _may_ receive support from Netdata, but are only a best-effort affair. Learn more about [Netdata's platform support policy](https://github.com/netdata/netdata/blob/master/packaging/PLATFORM_SUPPORT.md). ## Install Netdata with our automatic one-line installation script **Local Netdata Agent installation** -To install Netdata using our automatic [kickstart](/packaging/installer/README.md#automatic-one-line-installation-script) open a new terminal and run: +To install Netdata using our automatic [kickstart](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#automatic-one-line-installation-script) open a new terminal and run: ```bash curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh @@ -34,25 +38,25 @@ The Netdata Agent is installed under `/usr/local/netdata`. Dependencies are hand <!-- Potential reuse: https://learn.netdata.cloud/docs/agent/claim#connect-an-agent-running-in-macos--> <!--Potential reuse https://learn.netdata.cloud/docs/agent/packaging/installer/methods/kickstart#connect-node-to-netdata-cloud-during-installation The following information is copied from this link.--> -The `kickstart.sh` script accepts additional parameters to automatically [connect](/claim/README.md) your node to Netdata +The `kickstart.sh` script accepts additional parameters to automatically [connect](https://github.com/netdata/netdata/blob/master/claim/README.md) your node to Netdata Cloud immediately after installation. Find the `token` and `rooms` strings by [signing in to Netdata Cloud](https://app.netdata.cloud/sign-in?cloudRoute=/spaces), then clicking on **Connect Nodes** in the [Spaces management -area](https://learn.netdata.cloud/docs/cloud/spaces#manage-spaces). +area](https://github.com/netdata/netdata/blob/master/docs/cloud/cloud.mdx#manage-spaces). - `--claim-token`: Specify a unique claiming token associated with your Space in Netdata Cloud to be used to connect to the node after the install. - `--claim-rooms`: Specify a comma-separated list of tokens for each War Room this node should appear in. - `--claim-proxy`: Specify a proxy to use when connecting to the cloud in the form of `http://[user:pass@]host:ip` for an HTTP(S) proxy. - See [connecting through a proxy](/claim/README.md#connect-through-a-proxy) for details. + See [connecting through a proxy](https://github.com/netdata/netdata/blob/master/claim/README.md#connect-through-a-proxy) for details. - `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://api.netdata.cloud`. For example: ```bash -curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --install /usr/local/ --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://api.netdata.cloud +curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --install-prefix /usr/local/ --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://api.netdata.cloud ``` The Netdata Agent is installed under `/usr/local/netdata` on your machine. Your machine will also show up as a node in your Netdata Cloud. -If you experience issues while claiming your node, follow the steps in our [Troubleshooting](/claim/README.md#troubleshooting) documentation. +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 To install Netdata and all its dependencies, run Homebrew using the following command: @@ -77,7 +81,7 @@ We don't recommend installing Netdata from source on macOS, as it can be difficu ``` 2. Click **Install** on the Software Update popup window that appears. -3. Use the same terminal session to install some of Netdata's prerequisites using Homebrew. If you don't want to use [Netdata Cloud](https://learn.netdata.cloud/docs/cloud/), you can omit `cmake`. +3. Use the same terminal session to install some of Netdata's prerequisites using Homebrew. If you don't want to use [Netdata Cloud](https://github.com/netdata/netdata/blob/master/docs/cloud/cloud.mdx), you can omit `cmake`. ```bash brew install ossp-uuid autoconf automake pkg-config libuv lz4 json-c openssl libtool cmake @@ -93,7 +97,7 @@ We don't recommend installing Netdata from source on macOS, as it can be difficu ```bash cd netdata/ - sudo ./netdata-installer.sh --install /usr/local + sudo ./netdata-installer.sh --install-prefix /usr/local ``` > Your Netdata configuration directory will be at `/usr/local/netdata/`. @@ -102,10 +106,10 @@ We don't recommend installing Netdata from source on macOS, as it can be difficu ## What's next? -When you're finished with installation, check out our [single-node](/docs/quickstart/single-node.md) or -[infrastructure](/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. +When you're finished with installation, check out our [single-node](https://github.com/netdata/netdata/blob/master/docs/quickstart/single-node.md) or +[infrastructure](https://github.com/netdata/netdata/blob/master/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. -Or, skip straight to [configuring the Netdata Agent](/docs/configure/nodes.md). +Or, skip straight to [configuring the Netdata Agent](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md). diff --git a/packaging/installer/methods/manual.md b/packaging/installer/methods/manual.md index d32075394..46bc9a33f 100644 --- a/packaging/installer/methods/manual.md +++ b/packaging/installer/methods/manual.md @@ -1,7 +1,11 @@ <!-- title: "Install Netdata on Linux from a Git checkout" description: "Use the Netdata Agent source code from GitHub, plus helper scripts to set up your system, to install Netdata without packages or binaries." -custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/methods/manual.md +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/methods/manual.md" +sidebar_label: "Install Netdata on Linux from a Git checkout" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" --> # Install Netdata on Linux from a Git checkout @@ -96,10 +100,7 @@ Netdata plugins and various aspects of Netdata can be enabled or benefit when th | `python`|for most of the external plugins| | `python-yaml`|used for monitoring **beanstalkd**| | `python-beanstalkc`|used for monitoring **beanstalkd**| -| `python-dnspython`|used for monitoring DNS query time| -| `python-ipaddress`|used for monitoring **DHCPd**<br/>this package is required only if the system has python v2. python v3 has this functionality embedded| | `python-mysqldb`<br/>or<br/>`python-pymysql`|used for monitoring **mysql** or **mariadb** databases<br/>`python-mysqldb` is a lot faster and thus preferred| -| `python-pymongo`|used for monitoring **mongodb** databases| | `nodejs`|used for `node.js` plugins for monitoring **named** and **SNMP** devices| | `lm-sensors`|for monitoring **hardware sensors**| | `libelf`|for monitoring kernel-level metrics using eBPF| @@ -123,7 +124,7 @@ Netdata Cloud support may require the following packages to be installed: |:---------:|--------------------------------------------------------------------------------------------------------------------------------------| | `cmake` | Needed at build time if you aren't using your distribution's version of libwebsockets or are building on a platform other than Linux | | `openssl` | Needed to secure communications with the Netdata Cloud | -| `protobuf`| Used for the new Cloud<->Agent binary protocol +| `protobuf`| Used for the new Cloud<->Agent binary protocol | *Netdata will greatly benefit if you have the above packages installed, but it will still work without them.* @@ -189,7 +190,7 @@ cd netdata - You can also append `--stable-channel` to fetch and install only the official releases from GitHub, instead of the nightly builds. -- If you don't want to install it on the default directories, you can run the installer like this: `./netdata-installer.sh --install /opt`. This one will install Netdata in `/opt/netdata`. +- If you don't want to install it on the default directories, you can run the installer like this: `./netdata-installer.sh --install-prefix /opt`. This one will install Netdata in `/opt/netdata`. - If your server does not have access to the internet and you have manually put the installation directory on your server, you will need to pass the option `--disable-go` to the installer. The option will prevent the installer from attempting to download and install `go.d.plugin`. @@ -201,22 +202,22 @@ cd netdata - `--dont-start-it`: Prevent the installer from starting Netdata automatically. - `--stable-channel`: Automatically update only on the release of new major versions. - `--nightly-channel`: Automatically update on every new nightly build. -- `--disable-telemetry`: Opt-out of [anonymous statistics](/docs/anonymous-statistics.md) we use to make +- `--disable-telemetry`: Opt-out of [anonymous statistics](https://github.com/netdata/netdata/blob/master/docs/anonymous-statistics.md) we use to make Netdata better. - `--no-updates`: Prevent automatic updates of any kind. - `--reinstall`: If an existing install is detected, reinstall instead of trying to update it. Note that this cannot be used to change installation types. -- `--local-files`: Used for [offline installations](offline.md). Pass four file paths: the Netdata +- `--local-files`: Used for [offline installations](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/offline.md). Pass four file paths: the Netdata tarball, the checksum file, the go.d plugin tarball, and the go.d plugin config tarball, to force kickstart run the process using those files. This option conflicts with the `--stable-channel` option. If you set this _and_ `--stable-channel`, Netdata will use the local files. ### Connect node to Netdata Cloud during installation -Unlike the [`kickstart.sh`](/packaging/installer/methods/kickstart.md), the `netdata-installer.sh` script does -not allow you to automatically [connect](/claim/README.md) your node to Netdata Cloud immediately after installation. +Unlike the [`kickstart.sh`](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/kickstart.md), the `netdata-installer.sh` script does +not allow you to automatically [connect](https://github.com/netdata/netdata/blob/master/claim/README.md) your node to Netdata Cloud immediately after installation. -See the [connect to cloud](/claim/README.md) doc for details on connecting a node with a manual installation of Netdata. +See the [connect to cloud](https://github.com/netdata/netdata/blob/master/claim/README.md) doc for details on connecting a node with a manual installation of Netdata. ### 'nonrepresentable section on output' errors @@ -228,10 +229,10 @@ In most cases, you can do this by running `CC=gcc ./netdata-installer.sh`. ## What's next? -When you're finished with installation, check out our [single-node](/docs/quickstart/single-node.md) or -[infrastructure](/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. +When you're finished with installation, check out our [single-node](https://github.com/netdata/netdata/blob/master/docs/quickstart/single-node.md) or +[infrastructure](https://github.com/netdata/netdata/blob/master/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. -Or, skip straight to [configuring the Netdata Agent](/docs/configure/nodes.md). +Or, skip straight to [configuring the Netdata Agent](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md). Read through Netdata's [documentation](https://learn.netdata.cloud/docs), which is structured based on actions and solutions, to enable features like health monitoring, alarm notifications, long-term metrics storage, exporting to diff --git a/packaging/installer/methods/offline.md b/packaging/installer/methods/offline.md index 5e92976e0..e49f1d2e5 100644 --- a/packaging/installer/methods/offline.md +++ b/packaging/installer/methods/offline.md @@ -1,7 +1,11 @@ <!-- title: "Install Netdata on offline systems" description: "Install the Netdata Agent on offline/air gapped systems to benefit from real-time, per-second monitoring without connecting to the internet." -custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/methods/offline.md +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/methods/offline.md" +sidebar_label: "Install Netdata on offline systems" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" --> # Install Netdata on offline systems @@ -41,7 +45,7 @@ curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/n This will create a directory called `netdata-offline` in the current directory and place all the files required for an offline install in it. If you want to use a specific release channel (nightly or stable), it _must_ be specified on this step using the -apporpriate option for the kickstart script. +appropriate option for the kickstart script. ## Installing on the target system @@ -50,16 +54,16 @@ target system. This can be done in any manner you like, as long as filenames are After copying the files, simply run the `install.sh` script located in the offline install source directory. It accepts all the [same options as the kickstart -script](/packaging/installer/methods/kickstart.md#optional-parameters-to-alter-your-installation) for further +script](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/kickstart.md#optional-parameters-to-alter-your-installation) for further customization of the installation, though it will default to not enabling automatic updates (as they are not supported on offline installs). ## What's next? -When you're finished with installation, check out our [single-node](/docs/quickstart/single-node.md) or -[infrastructure](/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. +When you're finished with installation, check out our [single-node](https://github.com/netdata/netdata/blob/master/docs/quickstart/single-node.md) or +[infrastructure](https://github.com/netdata/netdata/blob/master/docs/quickstart/infrastructure.md) monitoring quickstart guides based on your use case. -Or, skip straight to [configuring the Netdata Agent](/docs/configure/nodes.md). +Or, skip straight to [configuring the Netdata Agent](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md). Read through Netdata's [documentation](https://learn.netdata.cloud/docs), which is structured based on actions and solutions, to enable features like health monitoring, alarm notifications, long-term metrics storage, exporting to diff --git a/packaging/installer/methods/packages.md b/packaging/installer/methods/packages.md new file mode 100644 index 000000000..135512808 --- /dev/null +++ b/packaging/installer/methods/packages.md @@ -0,0 +1,89 @@ +<!-- +title: "Install Netdata using native DEB/RPM packages." +description: "Instructions for how to install Netdata using native DEB or RPM packages." +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/methods/packages.md" +sidebar_label: "Install Netdata using native DEB/RPM packages." +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" +--> + +# Installing Netdata using native DEB or RPM packages. + +For most common Linux distributions that use either DEB or RPM packages, Netdata provides pre-built native packages +for current releases in-line with +our [official platform support policy](https://github.com/netdata/netdata/blob/master/packaging/PLATFORM_SUPPORT.md). +These packages will be used by default when attempting to install on a supported platform using our +[kickstart.sh installer script](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/kickstart.md). + +When using the kickstart script, you can force usage of native DEB or RPM packages by passing the option +`--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. + +## Manual setup of RPM packages. + +Netdata’s official RPM repositories are hosted at https://repo.netdata.cloud/repos. We provide four groups of +repositories at that top level: + +- `stable`: Contains packages for stable releases of the Netdata Agent. +- `edge`: Contains packages for nightly builds of the Netdata Agent. +- `repoconfig`: Provides packages that set up configuration files for using the other repositories. +- `devel`: Is used for one-off development builds of the Netdata Agent, and can simply be ignored by users. + +Within each top level group of repositories, there are directories for each supported group of distributions: + +- `el`: Is for Red Hat Enterprise Linux and binary compatible distros, such as CentOS, Alma Linux, and Rocky Linux. +- `fedora`: Is for Fedora and binary compatible distros. +- `ol`: Is for Oracle Linux and binary compatible distros. +- `opensuse`: Is for openSUSE and binary compatible distros. + +Under each of those directories is a directory for each supported release of that distribution, and under that a +directory for each supported CPU architecture which contains the actual repository. + +For example, for stable release packages for RHEL 9 on 64-bit x86, the full URL for the repository would be +https://repo.netdata.cloud/repos/stable/el/9/x86\_64/ + +Our RPM packages and repository metadata are signed using a GPG key with a user name of ‘Netdatabot’. The +current key fingerprint is `6588FDD7B14721FE7C3115E6F9177B5265F56346`. The associated public key can be fetched from +`https://repo.netdata.cloud/netdatabot.gpg.key`. + +If you are explicitly configuring a system to use our repositories, the recommended setup is to download the +appropriate repository configuration package from https://repo.netdata.cloud/repos/repoconfig and install it +directly on the target system using the system package manager. This will ensure any packages needed to use the +repository are also installed, and will help enable a seamless transition if we ever need to change our infrastructure. + +## Manual setup of DEB packages. + +Netdata’s official DEB repositories are hosted at https://repo.netdata.cloud/repos. We provide four groups of +repositories at that top level: + +- `stable`: Contains packages for stable releases of the Netdata Agent. +- `edge`: Contains packages for nightly builds of the Netdata Agent. +- `repoconfig`: Provides packages that set up configuration files for using the other repositories. +- `devel`: Is used for one-off development builds of the Netdata Agent, and can simply be ignored by users. + +Within each top level group of repositories, there are directories for each supported group of distributions: + +- `debian`: Is for Debian Linux and binary compatible distros. +- `ubuntu`: Is for Ubuntu Linux and binary compatible distros. + +Under each of these directories is a directory for each supported release, corresponding to the release codename. + +These repositories are set up as what Debian calls ‘flat repositories’, and are available via both HTTP and HTTPS. + +As a result of this structure, the required APT sources entry for stable packages for Debian 11 (Bullseye) is: + +``` +deb http://repo.netdata.cloud/repos/stable/debian/ bullseye/ +``` + +Note the `/` at the end of the codename, this is required for the repository to be processed correctly. + +Our DEB packages and repository metadata are signed using a GPG key with a user name of ‘Netdatabot’. The +current key fingerprint is `6588FDD7B14721FE7C3115E6F9177B5265F56346`. The associated public key can be fetched from +`https://repo.netdata.cloud/netdatabot.gpg.key`. + +If you are explicitly configuring a system to use our repositories, the recommended setup is to download the +appropriate repository configuration package from https://repo.netdata.cloud/repos/repoconfig and install it +directly on the target system using the system package manager. This will ensure any packages needed to use the +repository are also installed, and will help enable a seamless transition if we ever need to change our infrastructure. diff --git a/packaging/installer/methods/source.md b/packaging/installer/methods/source.md index d8f4f0bda..ecf35382a 100644 --- a/packaging/installer/methods/source.md +++ b/packaging/installer/methods/source.md @@ -1,7 +1,11 @@ <!-- title: "Manually build Netdata from source" description: "Package maintainers and power users may be interested in manually building Netdata from source without using any of our installation scripts." -custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/methods/source.md +custom_edit_url: "https://github.com/netdata/netdata/edit/master/packaging/installer/methods/source.md" +sidebar_label: "Manually build Netdata from source" +learn_status: "Published" +learn_topic_type: "Tasks" +learn_rel_path: "Installation" --> # Manually build Netdata from source @@ -9,7 +13,7 @@ custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/instal These instructions are for advanced users and distribution package maintainers. Unless this describes you, you almost certainly want to follow [our guide for manually installing Netdata from a git -checkout](/packaging/installer/methods/manual.md) instead. +checkout](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/manual.md) instead. ## Required dependencies diff --git a/packaging/installer/methods/synology.md b/packaging/installer/methods/synology.md index 30ec3035c..e3602df5e 100644 --- a/packaging/installer/methods/synology.md +++ b/packaging/installer/methods/synology.md @@ -26,7 +26,7 @@ installations run it as the `netdata` user, you might wish to do the same. This 2. Create a user `netdata` via the Synology user interface. Give it no access to anything and a random password. Assign the user to the `netdata` group. Netdata will chuid to this user when running. 3. Change ownership of the following directories, as defined in [Netdata - Security](/docs/netdata-security.md#security-design): + Security](https://github.com/netdata/netdata/blob/master/docs/netdata-security.md#security-design): ```sh chown -R root:netdata /opt/netdata/usr/share/netdata diff --git a/packaging/installer/netdata-uninstaller.sh b/packaging/installer/netdata-uninstaller.sh index 45ec73fce..2f2e89ffd 100755 --- a/packaging/installer/netdata-uninstaller.sh +++ b/packaging/installer/netdata-uninstaller.sh @@ -426,7 +426,7 @@ portable_del_group() { # Linux if command -v groupdel 1> /dev/null 2>&1; then - if grep -q "${groupname}" /etc/group; then + if get_group "${groupname}" > /dev/null 2>&1; then run groupdel "${groupname}" && return 0 else info "Group ${groupname} already removed in a previous step." diff --git a/packaging/installer/netdata-updater.sh b/packaging/installer/netdata-updater.sh index d018d67d2..130507c17 100755 --- a/packaging/installer/netdata-updater.sh +++ b/packaging/installer/netdata-updater.sh @@ -34,6 +34,9 @@ set -e PACKAGES_SCRIPT="https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh" +NETDATA_STABLE_BASE_URL="${NETDATA_BASE_URL:-https://github.com/netdata/netdata/releases}" +NETDATA_NIGHTLY_BASE_URL="${NETDATA_BASE_URL:-https://github.com/netdata/netdata-nightlies/releases}" + script_dir="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd -P)" if [ -x "${script_dir}/netdata-updater" ]; then @@ -369,13 +372,13 @@ download() { } get_netdata_latest_tag() { - dest="${1}" - url="https://github.com/netdata/netdata/releases/latest" + url="${1}/latest" + dest="${2}" if command -v curl >/dev/null 2>&1; then tag=$(curl "${url}" -s -L -I -o /dev/null -w '%{url_effective}' | grep -m 1 -o '[^/]*$') elif command -v wget >/dev/null 2>&1; then - tag=$(wget --max-redirect=0 "${url}" 2>&1 | grep Location | cut -d ' ' -f2 | grep -m 1 -o '[^/]*$') + tag=$(wget -S -O /dev/null "${url}" 2>&1 | grep -m 1 Location | grep -o '[^/]*$') else fatal "I need curl or wget to proceed, but neither of them are available on this system." U0006 fi @@ -439,7 +442,12 @@ self_update() { parse_version() { r="${1}" - if echo "${r}" | grep -q '^v.*'; then + if [ "${r}" = "latest" ]; then + # If we get ‘latest’ as a version, return the largest possible + # version value. + printf "99999999999999" + return 0 + elif echo "${r}" | grep -q '^v.*'; then # shellcheck disable=SC2001 # XXX: Need a regex group substitution here. r="$(echo "${r}" | sed -e 's/^v\(.*\)/\1/')" @@ -463,9 +471,9 @@ parse_version() { get_latest_version() { if [ "${RELEASE_CHANNEL}" = "stable" ]; then - get_netdata_latest_tag /dev/stdout + get_netdata_latest_tag "${NETDATA_STABLE_BASE_URL}" /dev/stdout else - download "$NETDATA_NIGHTLIES_BASEURL/latest-version.txt" /dev/stdout + get_netdata_latest_tag "${NETDATA_NIGHTLY_BASE_URL}" /dev/stdout fi } @@ -529,12 +537,13 @@ set_tarball_urls() { fi if [ "$1" = "stable" ]; then - latest="$(get_netdata_latest_tag /dev/stdout)" - export NETDATA_TARBALL_URL="https://github.com/netdata/netdata/releases/download/$latest/${filename}" - export NETDATA_TARBALL_CHECKSUM_URL="https://github.com/netdata/netdata/releases/download/$latest/sha256sums.txt" + latest="$(get_netdata_latest_tag "${NETDATA_STABLE_BASE_URL}" /dev/stdout)" + export NETDATA_TARBALL_URL="${NETDATA_STABLE_BASE_URL}/download/$latest/${filename}" + export NETDATA_TARBALL_CHECKSUM_URL="${NETDATA_STABLE_BASE_URL}/download/$latest/sha256sums.txt" else - export NETDATA_TARBALL_URL="$NETDATA_NIGHTLIES_BASEURL/${filename}" - export NETDATA_TARBALL_CHECKSUM_URL="$NETDATA_NIGHTLIES_BASEURL/sha256sums.txt" + tag="$(get_netdata_latest_tag "${NETDATA_NIGHTLY_BASE_URL}" /dev/stdout)" + export NETDATA_TARBALL_URL="${NETDATA_NIGHTLY_BASE_URL}/download/${tag}/${filename}" + export NETDATA_TARBALL_CHECKSUM_URL="${NETDATA_NIGHTLY_BASE_URL}/download/${tag}/sha256sums.txt" fi } @@ -769,8 +778,8 @@ update_binpkg() { opensuse) pm_cmd="zypper" repo_subcmd="--gpg-auto-import-keys refresh" - upgrade_cmd="upgrade" - pkg_install_opts="${interactive_opts} --allow-unsigned-rpm" + upgrade_cmd="update" + pkg_install_opts="${interactive_opts}" repo_update_opts="" pkg_installed_check="rpm -q" INSTALL_TYPE="binpkg-rpm" @@ -907,9 +916,6 @@ export NETDATA_LIB_DIR="${NETDATA_LIB_DIR:-${NETDATA_PREFIX}/var/lib/netdata}" # Source the tarball checksum, if not already available from environment (for existing installations with the old logic) [ -z "${NETDATA_TARBALL_CHECKSUM}" ] && [ -f "${NETDATA_LIB_DIR}/netdata.tarball.checksum" ] && NETDATA_TARBALL_CHECKSUM="$(cat "${NETDATA_LIB_DIR}/netdata.tarball.checksum")" -# Grab the nightlies baseurl (defaulting to our Google Storage bucket) -export NETDATA_NIGHTLIES_BASEURL="${NETDATA_NIGHTLIES_BASEURL:-https://storage.googleapis.com/netdata-nightlies}" - if echo "$INSTALL_TYPE" | grep -qv ^binpkg && [ "${INSTALL_UID}" != "$(id -u)" ]; then fatal "You are running this script as user with uid $(id -u). We recommend to run this script as root (user with uid 0)" U0011 fi |