diff options
Diffstat (limited to 'netdata-installer.sh')
-rwxr-xr-x | netdata-installer.sh | 424 |
1 files changed, 212 insertions, 212 deletions
diff --git a/netdata-installer.sh b/netdata-installer.sh index 1a3e1a188c..4ffddbcd12 100755 --- a/netdata-installer.sh +++ b/netdata-installer.sh @@ -47,50 +47,50 @@ NETDATA_PREFIX= LIBS_ARE_HERE=0 usage() { - cat <<-USAGE + cat <<USAGE - ${ME} <installer options> +${ME} <installer options> - Valid <installer options> are: +Valid <installer options> are: - --install /PATH/TO/INSTALL + --install /PATH/TO/INSTALL - If your give: --install /opt - netdata will be installed in /opt/netdata + If your give: --install /opt + netdata will be installed in /opt/netdata - --dont-start-it + --dont-start-it - Do not (re)start netdata. - Just install it. + Do not (re)start netdata. + Just install it. - --dont-wait + --dont-wait - Do not wait for the user to press ENTER. - Start immediately building it. + Do not wait for the user to press ENTER. + Start immediately building it. - --zlib-is-really-here - --libs-are-really-here + --zlib-is-really-here + --libs-are-really-here - If you get errors about missing zlib, - or libuuid but you know it is available, - you have a broken pkg-config. - Use this option to allow it continue - without checking pkg-config. + If you get errors about missing zlib, + or libuuid but you know it is available, + you have a broken pkg-config. + Use this option to allow it continue + without checking pkg-config. - Netdata will by default be compiled with gcc optimization -O3 - If you need to pass different CFLAGS, use something like this: +Netdata will by default be compiled with gcc optimization -O3 +If you need to pass different CFLAGS, use something like this: - CFLAGS="<gcc options>" ${ME} <installer options> + CFLAGS="<gcc options>" ${ME} <installer options> - For the installer to complete successfully, you will need - these packages installed: +For the installer to complete successfully, you will need +these packages installed: - gcc make autoconf automake pkg-config zlib1g-dev (or zlib-devel) - uuid-dev (or libuuid-devel) + gcc make autoconf automake pkg-config zlib1g-dev (or zlib-devel) + uuid-dev (or libuuid-devel) - For the plugins, you will at least need: +For the plugins, you will at least need: - curl nodejs + curl nodejs USAGE } @@ -172,26 +172,26 @@ do fi done -cat <<-BANNER +cat <<BANNER - Welcome to netdata! - Nice to see you are giving it a try! +Welcome to netdata! +Nice to see you are giving it a try! - You are about to build and install netdata to your system. +You are about to build and install netdata to your system. - It will be installed at these locations: +It will be installed at these locations: - - the daemon at ${NETDATA_PREFIX}/usr/sbin/netdata - - config files at ${NETDATA_PREFIX}/etc/netdata - - web files at ${NETDATA_PREFIX}/usr/share/netdata - - plugins at ${NETDATA_PREFIX}/usr/libexec/netdata - - cache files at ${NETDATA_PREFIX}/var/cache/netdata - - db files at ${NETDATA_PREFIX}/var/lib/netdata - - log files at ${NETDATA_PREFIX}/var/log/netdata - - pid file at ${NETDATA_PREFIX}/var/run + - the daemon at ${NETDATA_PREFIX}/usr/sbin/netdata + - config files at ${NETDATA_PREFIX}/etc/netdata + - web files at ${NETDATA_PREFIX}/usr/share/netdata + - plugins at ${NETDATA_PREFIX}/usr/libexec/netdata + - cache files at ${NETDATA_PREFIX}/var/cache/netdata + - db files at ${NETDATA_PREFIX}/var/lib/netdata + - log files at ${NETDATA_PREFIX}/var/log/netdata + - pid file at ${NETDATA_PREFIX}/var/run - This installer allows you to change the installation path. - Press Control-C and run the same command with --help for help. +This installer allows you to change the installation path. +Press Control-C and run the same command with --help for help. BANNER @@ -199,40 +199,40 @@ if [ "${UID}" -ne 0 ] then if [ -z "${NETDATA_PREFIX}" ] then - cat <<-NONROOTNOPREFIX + cat <<NONROOTNOPREFIX - Sorry! This will fail! +Sorry! This will fail! - You are attempting to install netdata as non-root, but you plan to install it - in system paths. +You are attempting to install netdata as non-root, but you plan to install it +in system paths. - Please set an installation prefix, like this: +Please set an installation prefix, like this: - $0 ${@} --install /tmp + $0 ${@} --install /tmp - or, run the installer as root: +or, run the installer as root: - sudo $0 ${@} + sudo $0 ${@} - We suggest to install it as root, or certain data collectors will not be able - to work. Netdata drops root privileges when running. So, if you plan to keep - it, install it as root to get the full functionality. +We suggest to install it as root, or certain data collectors will not be able +to work. Netdata drops root privileges when running. So, if you plan to keep +it, install it as root to get the full functionality. NONROOTNOPREFIX exit 1 else - cat <<-NONROOT + cat <<NONROOT - IMPORTANT: - You are about to install netdata as a non-root user. - Netdata will work, but a few data collection modules that - require root access will fail. +IMPORTANT: +You are about to install netdata as a non-root user. +Netdata will work, but a few data collection modules that +require root access will fail. - If you installing permanently on your system, run the - installer like this: +If you installing permanently on your system, run the +installer like this: - sudo $0 ${@} + sudo $0 ${@} NONROOT fi @@ -271,23 +271,23 @@ then then echo "Will skip autoreconf step" else - cat <<-"EOF" + cat <<"EOF" - ------------------------------------------------------------------------------- - autotools 2.60 or later is required +------------------------------------------------------------------------------- +autotools 2.60 or later is required - Sorry, you do not seem to have autotools 2.60 or later, which is - required to build from the git sources of netdata. +Sorry, you do not seem to have autotools 2.60 or later, which is +required to build from the git sources of netdata. - You can either install a suitable version of autotools and automake - or download a netdata package which does not have these dependencies. +You can either install a suitable version of autotools and automake +or download a netdata package which does not have these dependencies. - Source packages where autotools have already been run are available - here: - https://firehol.org/download/netdata/ +Source packages where autotools have already been run are available +here: + https://firehol.org/download/netdata/ - The unsigned/master folder tracks the head of the git tree and released - packages are also available. +The unsigned/master folder tracks the head of the git tree and released +packages are also available. EOF exit 1 fi @@ -304,33 +304,33 @@ if [ ${DONOTWAIT} -eq 0 ] fi build_error() { - cat <<-EOF + cat <<EOF - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Sorry! NetData failed to build... +Sorry! NetData failed to build... - You many need to check these: +You many need to check these: - 1. The package uuid-dev (or libuuid-devel) has to be installed. +1. The package uuid-dev (or libuuid-devel) has to be installed. - If your system cannot find libuuid, although it is installed - run me with the option: --libs-are-really-here + If your system cannot find libuuid, although it is installed + run me with the option: --libs-are-really-here - 2. The package zlib1g-dev (or zlib-devel) has to be installed. +2. The package zlib1g-dev (or zlib-devel) has to be installed. - If your system cannot find zlib, although it is installed - run me with the option: --libs-are-really-here + If your system cannot find zlib, although it is installed + run me with the option: --libs-are-really-here - 3. You need basic build tools installed, like: +3. You need basic build tools installed, like: - gcc make autoconf automake pkg-config + gcc make autoconf automake pkg-config - Autoconf version 2.60 or higher is required. + Autoconf version 2.60 or higher is required. - If you still cannot get it to build, ask for help at github: +If you still cannot get it to build, ask for help at github: - https://github.com/firehol/netdata/issues + https://github.com/firehol/netdata/issues EOF @@ -849,36 +849,36 @@ fi # Check for KSM ksm_is_available_but_disabled() { - cat <<-KSM1 + cat <<KSM1 - ------------------------------------------------------------------------------- - Memory de-duplication instructions +------------------------------------------------------------------------------- +Memory de-duplication instructions - You have kernel memory de-duper (called Kernel Same-page Merging, - or KSM) available, but it is not currently enabled. +You have kernel memory de-duper (called Kernel Same-page Merging, +or KSM) available, but it is not currently enabled. - To enable it run: +To enable it run: - echo 1 >/sys/kernel/mm/ksm/run - echo 1000 >/sys/kernel/mm/ksm/sleep_millisecs +echo 1 >/sys/kernel/mm/ksm/run +echo 1000 >/sys/kernel/mm/ksm/sleep_millisecs - If you enable it, you will save 40-60% of netdata memory. +If you enable it, you will save 40-60% of netdata memory. KSM1 } ksm_is_not_available() { - cat <<-KSM2 + cat <<KSM2 - ------------------------------------------------------------------------------- - Memory de-duplication not present in your kernel +------------------------------------------------------------------------------- +Memory de-duplication not present in your kernel - It seems you do not have kernel memory de-duper (called Kernel Same-page - Merging, or KSM) available. +It seems you do not have kernel memory de-duper (called Kernel Same-page +Merging, or KSM) available. - To enable it, you need a kernel built with CONFIG_KSM=y +To enable it, you need a kernel built with CONFIG_KSM=y - If you can have it, you will save 40-60% of netdata memory. +If you can have it, you will save 40-60% of netdata memory. KSM2 } @@ -898,18 +898,18 @@ fi if [ ! -s web/version.txt ] then - cat <<-VERMSG + cat <<VERMSG - ------------------------------------------------------------------------------- - Version update check warning +------------------------------------------------------------------------------- +Version update check warning - The way you downloaded netdata, we cannot find its version. This means the - Update check on the dashboard, will not work. +The way you downloaded netdata, we cannot find its version. This means the +Update check on the dashboard, will not work. - If you want to have version update check, please re-install it - following the procedure in: +If you want to have version update check, please re-install it +following the procedure in: - https://github.com/firehol/netdata/wiki/Installation +https://github.com/firehol/netdata/wiki/Installation VERMSG fi @@ -919,29 +919,29 @@ fi if [ "${UID}" -ne 0 ] then - cat <<-SETUID_WARNING + cat <<SETUID_WARNING - ------------------------------------------------------------------------------- - apps.plugin needs privileges +------------------------------------------------------------------------------- +apps.plugin needs privileges - Since you have installed netdata as a normal user, to have apps.plugin collect - all the needed data, you have to give it the access rights it needs, by running - either of the following sets of commands: +Since you have installed netdata as a normal user, to have apps.plugin collect +all the needed data, you have to give it the access rights it needs, by running +either of the following sets of commands: - To run apps.plugin with escalated capabilities: +To run apps.plugin with escalated capabilities: - sudo chown root:${NETDATA_USER} "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" - sudo chmod 0750 "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" - sudo setcap cap_dac_read_search,cap_sys_ptrace+ep "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" + sudo chown root:${NETDATA_USER} "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" + sudo chmod 0750 "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" + sudo setcap cap_dac_read_search,cap_sys_ptrace+ep "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" - or, to run apps.plugin as root: +or, to run apps.plugin as root: - sudo chown root "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" - sudo chmod 4755 "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" + sudo chown root "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" + sudo chmod 4755 "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" - apps.plugin is performing a hard-coded function of data collection for all - running processes. It cannot be instructed from the netdata daemon to perform - any task, so it is pretty safe to do this. +apps.plugin is performing a hard-coded function of data collection for all +running processes. It cannot be instructed from the netdata daemon to perform +any task, so it is pretty safe to do this. SETUID_WARNING fi @@ -949,122 +949,122 @@ fi # ----------------------------------------------------------------------------- # Keep un-install info -cat >netdata-uninstaller.sh <<-UNINSTALL - #!/bin/bash +cat >netdata-uninstaller.sh <<UNINSTALL +#!/usr/bin/env bash - # this script will uninstall netdata +# this script will uninstall netdata - if [ "\$1" != "--force" ] - then - echo >&2 "This script will REMOVE netdata from your system." - echo >&2 "Run it again with --force to do it." - exit 1 - fi - - echo >&2 "Stopping a possibly running netdata..." - for p in \$(pidof netdata); do kill \$p; done - sleep 2 +if [ "\$1" != "--force" ] + then + echo >&2 "This script will REMOVE netdata from your system." + echo >&2 "Run it again with --force to do it." + exit 1 +fi - deletedir() { - if [ ! -z "\$1" -a -d "\$1" ] - then - echo - echo "Deleting directory '\$1' ..." - rm -I -R "\$1" - fi - } +echo >&2 "Stopping a possibly running netdata..." +for p in \$(pidof netdata); do kill \$p; done +sleep 2 - if [ ! -z "${NETDATA_PREFIX}" -a -d "${NETDATA_PREFIX}" ] +deletedir() { + if [ ! -z "\$1" -a -d "\$1" ] then - # installation prefix was given - - deletedir "${NETDATA_PREFIX}" + echo + echo "Deleting directory '\$1' ..." + rm -I -R "\$1" + fi +} - else - # installation prefix was NOT given +if [ ! -z "${NETDATA_PREFIX}" -a -d "${NETDATA_PREFIX}" ] + then + # installation prefix was given - if [ -f "${NETDATA_PREFIX}/usr/sbin/netdata" ] - then - echo "Deleting ${NETDATA_PREFIX}/usr/sbin/netdata ..." - rm -i "${NETDATA_PREFIX}/usr/sbin/netdata" - fi + deletedir "${NETDATA_PREFIX}" - deletedir "${NETDATA_PREFIX}/etc/netdata" - deletedir "${NETDATA_PREFIX}/usr/share/netdata" - deletedir "${NETDATA_PREFIX}/usr/libexec/netdata" - deletedir "${NETDATA_PREFIX}/var/lib/netdata" - deletedir "${NETDATA_PREFIX}/var/cache/netdata" - deletedir "${NETDATA_PREFIX}/var/log/netdata" - fi +else + # installation prefix was NOT given - if [ -f /etc/logrotate.d/netdata ] + if [ -f "${NETDATA_PREFIX}/usr/sbin/netdata" ] then - echo "Deleting /etc/logrotate.d/netdata ..." - rm -i /etc/logrotate.d/netdata + echo "Deleting ${NETDATA_PREFIX}/usr/sbin/netdata ..." + rm -i "${NETDATA_PREFIX}/usr/sbin/netdata" fi - if [ -f /etc/systemd/system/netdata.service ] - then - echo "Deleting /etc/systemd/system/netdata.service ..." - rm -i /etc/systemd/system/netdata.service - fi + deletedir "${NETDATA_PREFIX}/etc/netdata" + deletedir "${NETDATA_PREFIX}/usr/share/netdata" + deletedir "${NETDATA_PREFIX}/usr/libexec/netdata" + deletedir "${NETDATA_PREFIX}/var/lib/netdata" + deletedir "${NETDATA_PREFIX}/var/cache/netdata" + deletedir "${NETDATA_PREFIX}/var/log/netdata" +fi - getent passwd netdata > /dev/null - if [ $? -eq 0 ] - then - echo - echo "You may also want to remove the user netdata" - echo "by running:" - echo " userdel netdata" - fi +if [ -f /etc/logrotate.d/netdata ] + then + echo "Deleting /etc/logrotate.d/netdata ..." + rm -i /etc/logrotate.d/netdata +fi - getent group netdata > /dev/null - if [ $? -eq 0 ] - then - echo - echo "You may also want to remove the group netdata" - echo "by running:" - echo " groupdel netdata" - fi +if [ -f /etc/systemd/system/netdata.service ] + then + echo "Deleting /etc/systemd/system/netdata.service ..." + rm -i /etc/systemd/system/netdata.service +fi - getent group docker > /dev/null - if [ $? -eq 0 -a "${NETDATA_ADDED_TO_DOCKER}" = "1" ] - then - echo - echo "You may also want to remove the netdata user from the docker group" - echo "by running:" - echo " gpasswd -d netdata docker" - fi +getent passwd netdata > /dev/null +if [ $? -eq 0 ] + then + echo + echo "You may also want to remove the user netdata" + echo "by running:" + echo " userdel netdata" +fi + +getent group netdata > /dev/null +if [ $? -eq 0 ] + then + echo + echo "You may also want to remove the group netdata" + echo "by running:" + echo " groupdel netdata" +fi + +getent group docker > /dev/null +if [ $? -eq 0 -a "${NETDATA_ADDED_TO_DOCKER}" = "1" ] + then + echo + echo "You may also want to remove the netdata user from the docker group" + echo "by running:" + echo " gpasswd -d netdata docker" +fi UNINSTALL chmod 750 netdata-uninstaller.sh # ----------------------------------------------------------------------------- -cat <<-END +cat <<END - ------------------------------------------------------------------------------- +------------------------------------------------------------------------------- - OK. NetData is installed and it is running. +OK. NetData is installed and it is running. - ------------------------------------------------------------------------------- +------------------------------------------------------------------------------- - By default netdata listens on all IPs on port ${NETDATA_PORT}, - so you can access it with: +By default netdata listens on all IPs on port ${NETDATA_PORT}, +so you can access it with: - http://this.machine.ip:${NETDATA_PORT}/ +http://this.machine.ip:${NETDATA_PORT}/ - To stop netdata, just kill it, with: +To stop netdata, just kill it, with: - killall netdata + killall netdata - To start it, just run it: +To start it, just run it: - ${NETDATA_PREFIX}/usr/sbin/netdata + ${NETDATA_PREFIX}/usr/sbin/netdata - Enjoy! +Enjoy! END echo >&2 "Uninstall script generated: ./netdata-uninstaller.sh" |