Netdata/Installing
From charlesreid1
Contents
Installing
Prerequisites and Dependencies
apt-get install -y zlib1g-dev uuid-dev libmnl-dev gcc make \ autoconf autoconf-archive autogen automake pkg-config curl apt-get install -y python python-yaml python-mysqldb \ python-psycopg2 nodejs lm-sensors netcat
Installing Netdata From Source
Get the tarball from the releases page of the github project: https://github.com/firehol/netdata/releases
From that directory, you should be able to run the 1-2-3 software build punch:
./configure && make && make install
Installing Netdata Binary on Linux
Here's a quick one-liner to avoid checking out the github repository.
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Where it installs to is easy to see, as the installer script prints out everything that it is doing:
You are about to build and install netdata to your system. It will be installed at these locations: - the daemon at /usr/sbin/netdata - config files in /etc/netdata - web files in /usr/share/netdata - plugins in /usr/libexec/netdata - cache files in /var/cache/netdata - db files in /var/lib/netdata - log files in /var/log/netdata - pid file at /var/run/netdata.pid - logrotate file at /etc/logrotate.d/netdata
What It Do
The script does the following:
- Create users/groups as needed
- Get logrotate
- Set permissions
- Download default netdata configuration
Output from Install Process
Here is the output from the installation process, which contains some useful information:
--- Restore user edited netdata configuration files --- --- Fix generated files permissions --- [/usr/src/netdata.git]# find ./system/ -type f -a \! -name \*.in -a \! -name Makefile\* -a \! -name \*.conf -a \! -name \*.service -a \! -name \*.logrotate -exec chmod 755 \{\} \; OK --- Add user netdata to required user groups --- Adding netdata user group ... [/usr/src/netdata.git]# groupadd -r netdata OK Adding netdata user account ... [/usr/src/netdata.git]# useradd -r -g netdata -c netdata -s /usr/sbin/nologin -d / netdata OK Group 'docker' does not exist. Group 'nginx' does not exist. Group 'varnish' does not exist. Group 'haproxy' does not exist. Adding netdata user to the adm group ... [/usr/src/netdata.git]# usermod -a -G adm netdata OK Group 'nsd' does not exist. Adding netdata user to the proxy group ... [/usr/src/netdata.git]# usermod -a -G proxy netdata OK Group 'squid' does not exist. --- Install logrotate configuration for netdata --- [/usr/src/netdata.git]# cp system/netdata.logrotate /etc/logrotate.d/netdata OK [/usr/src/netdata.git]# chmod 644 /etc/logrotate.d/netdata OK --- Read installation options from netdata.conf --- --- Fix permissions of netdata directories (using user 'netdata') --- [/usr/src/netdata.git]# chown -R root:netdata /etc/netdata OK [/usr/src/netdata.git]# find /etc/netdata -type f -exec chmod 0640 \{\} \; OK [/usr/src/netdata.git]# find /etc/netdata -type d -exec chmod 0755 \{\} \; OK [/usr/src/netdata.git]# chown -R netdata:netdata /usr/share/netdata/web OK [/usr/src/netdata.git]# find /usr/share/netdata/web -type f -exec chmod 0664 \{\} \; OK [/usr/src/netdata.git]# find /usr/share/netdata/web -type d -exec chmod 0775 \{\} \; OK [/usr/src/netdata.git]# chown -R netdata:netdata /var/lib/netdata OK [/usr/src/netdata.git]# chown -R netdata:netdata /var/cache/netdata OK [/usr/src/netdata.git]# chown -R netdata:netdata /var/log/netdata OK [/usr/src/netdata.git]# chmod 755 /var/log/netdata OK [/usr/src/netdata.git]# chown netdata:root /var/log/netdata OK [/usr/src/netdata.git]# chown -R root /usr/libexec/netdata OK [/usr/src/netdata.git]# find /usr/libexec/netdata -type d -exec chmod 0755 \{\} \; OK [/usr/src/netdata.git]# find /usr/libexec/netdata -type f -exec chmod 0644 \{\} \; OK [/usr/src/netdata.git]# find /usr/libexec/netdata -type f -a -name \*.plugin -exec chmod 0755 \{\} \; OK [/usr/src/netdata.git]# find /usr/libexec/netdata -type f -a -name \*.sh -exec chmod 0755 \{\} \; OK [/usr/src/netdata.git]# chown root:netdata /usr/libexec/netdata/plugins.d/apps.plugin OK [/usr/src/netdata.git]# chmod 0750 /usr/libexec/netdata/plugins.d/apps.plugin OK [/usr/src/netdata.git]# setcap cap_dac_read_search\,cap_sys_ptrace+ep /usr/libexec/netdata/plugins.d/apps.plugin OK [/usr/src/netdata.git]# chown root:netdata /usr/libexec/netdata/plugins.d/cgroup-network OK [/usr/src/netdata.git]# chmod 4750 /usr/libexec/netdata/plugins.d/cgroup-network OK [/usr/src/netdata.git]# chown root /usr/libexec/netdata/plugins.d/cgroup-network-helper.sh OK [/usr/src/netdata.git]# chmod 0550 /usr/libexec/netdata/plugins.d/cgroup-network-helper.sh OK [/usr/src/netdata.git]# chmod a+rX /usr/libexec OK [/usr/src/netdata.git]# chmod a+rX /usr/share/netdata OK --- Install netdata at system init --- Installing systemd service... [/usr/src/netdata.git]# cp system/netdata.service /etc/systemd/system/netdata.service OK [/usr/src/netdata.git]# systemctl daemon-reload OK [/usr/src/netdata.git]# systemctl enable netdata Created symlink /etc/systemd/system/multi-user.target.wants/netdata.service -> /etc/systemd/system/netdata.service. OK --- Start netdata --- [/usr/src/netdata.git]# /bin/systemctl stop netdata OK [/usr/src/netdata.git]# /bin/systemctl restart netdata OK OK. NetData Started! ------------------------------------------------------------------------------- Downloading default configuration from netdata... [/usr/src/netdata.git]# curl -s -o /etc/netdata/netdata.conf.new http://localhost:19999/netdata.conf OK [/usr/src/netdata.git]# mv /etc/netdata/netdata.conf.new /etc/netdata/netdata.conf OK OK New configuration saved for you to edit at /etc/netdata/netdata.conf [/usr/src/netdata.git]# chown netdata /etc/netdata/netdata.conf OK [/usr/src/netdata.git]# chmod 0664 /etc/netdata/netdata.conf OK --- Check KSM (kernel memory deduper) --- Memory de-duplication instructions You have kernel memory de-duper (called Kernel Same-page Merging, or KSM) available, but it is not currently enabled. To enable it run: 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. --- Check version.txt --- --- Check apps.plugin --- --- Generate netdata-uninstaller.sh --- --- Basic netdata instructions --- netdata by default listens on all IPs on port 19999, so you can access it with: http://this.machine.ip:19999/ To stop netdata run: systemctl stop netdata To start netdata run: systemctl start netdata Uninstall script generated: ./netdata-uninstaller.sh Update script generated : ./netdata-updater.sh netdata-updater.sh can work from cron. It will trigger an email from cron only if it fails (it does not print anything when it can update netdata). --- Installing netdata-updater at cron --- [/usr/src/netdata.git]# ln -s /usr/src/netdata.git/netdata-updater.sh /etc/cron.daily/netdata-updater OK --- We are done! --- ^ |.-. .-. .-. .-. .-. . netdata .-. .- | '-' '-' '-' '-' '-' is installed and running now! -' '-' +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---> enjoy real-time performance and health monitoring... OK |
Installing Netdata as a Startup Service
To install netdata systemd service by hand, start from the netdata repository.
Link: https://github.com/firehol/netdata
Start by shutting down netdata:
killall netdata
Now, look for the systemd service file in the repository, in the file system/netdata.service.in
Link: https://github.com/firehol/netdata/blob/master/system/netdata.service.in
Copy this file to the host operating system's systemd directory:
cp system/netdata.service /etc/systemd/system/
Now there are a couple of steps involving system control: (a) reload services so it sees there is a new service; (b) enable the new service; (c) start the new service.
systemctl daemon-reload systemctl enable netdata systemctl start netdata