From charlesreid1

No edit summary
 
(32 intermediate revisions by the same user not shown)
Line 3: Line 3:
=Installing=
=Installing=


==Linux==
{{Main|Netdata/Installing}}
 
We recommend installing Netdata on Linux using the quick one-liner:


<pre>
<pre>
Line 9: Line 11:
</pre>
</pre>


==Output==
The [[Netdata/Installing]] page has more details about installation steps.


Here is the output from the installation process, which contains some useful information:
=Netdata Web Dashboard=


<pre>
Navigate to port 19999 on the server running netdata, and you'll see a slick live dashboard detailing the status of the server netdata is running on:
--- 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 ---
[[Image:NetdataDashboardExample.png|400px]]
Adding netdata user group ...
[/usr/src/netdata.git]# groupadd -r netdata
OK 


Adding netdata user account ...
Netdata errs on the side of too much info, rather than too little. It is also designed to display the current state of the machine, it does not put any effort into archiving or data storage or memory other than a backend plugin to continuously export data.
[/usr/src/netdata.git]# useradd -r -g netdata -c netdata -s /usr/sbin/nologin -d / netdata
OK 


Group 'docker' does not exist.
=Database Backends=
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.
Here we are interested in dumping data from netdata to a database.
Adding netdata user to the proxy group ...
[/usr/src/netdata.git]# usermod -a -G proxy netdata
OK 


Group 'squid' does not exist.
Netdata wiki page on backends: https://github.com/firehol/netdata/wiki/netdata-backends
--- 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
==Backend API URLs==
OK 


--- Read installation options from netdata.conf ---
We'll use this below, but check out how to use URLs to access the Netdata backend API:
--- 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 \{\} \;
http://192.168.25.236:19999/api/v1/allmetrics?format=json&help=yes
OK 


[/usr/src/netdata.git]# find /etc/netdata -type d -exec chmod 0755 \{\} \;
[[Image:NetdataBackendJSON.png|500px]]
OK 


[/usr/src/netdata.git]# chown -R netdata:netdata /usr/share/netdata/web
http://192.168.25.236:19999/api/v1/allmetrics?format=prometheus&help=yes
OK 


[/usr/src/netdata.git]# find /usr/share/netdata/web -type f -exec chmod 0664 \{\} \;
[[Image:NetdataBackendPrometheus.png|500px]]
OK 


[/usr/src/netdata.git]# find /usr/share/netdata/web -type d -exec chmod 0775 \{\} \;
This helpful information was pointed out by this guide to setting up Prometheus backend: https://github.com/firehol/netdata/wiki/Netdata,-Prometheus,-and-Grafana-Stack
OK 


[/usr/src/netdata.git]# chown -R netdata:netdata /var/lib/netdata
==Prometheus Backend==
OK 


[/usr/src/netdata.git]# chown -R netdata:netdata /var/cache/netdata
Following this guide to setting up Prometheus backend, which is on the Netdata wiki: https://github.com/firehol/netdata/wiki/Netdata,-Prometheus,-and-Grafana-Stack
OK 


[/usr/src/netdata.git]# chown -R netdata:netdata /var/log/netdata
[[Netdata/Prometheus]]
OK 


[/usr/src/netdata.git]# chmod 755 /var/log/netdata
==Json Backend==
OK 


[/usr/src/netdata.git]# chown netdata:root /var/log/netdata
I had some trouble getting Netdata to work with MongoDB, a JSON database. I pointed Netdata to a particular port, and then set up a simple echo socket listener in Python, but saw no activity on the port.  
OK 


[/usr/src/netdata.git]# chown -R root /usr/libexec/netdata
I tried this using the following <code>/etc/netdata/netdata.conf</code>:
OK 


[/usr/src/netdata.git]# find /usr/libexec/netdata -type d -exec chmod 0755 \{\} \;
<pre>
OK 
[backend]
 
enabled = yes
[/usr/src/netdata.git]# find /usr/libexec/netdata -type f -exec chmod 0644 \{\} \;
type = json
OK 
destination = localhost:27017
 
data source = average
[/usr/src/netdata.git]# find /usr/libexec/netdata -type f -a -name \*.plugin -exec chmod 0755 \{\} \;
prefix = netdata
OK 
update every = 10
 
buffer on failures = 10
[/usr/src/netdata.git]# find /usr/libexec/netdata -type f -a -name \*.sh -exec chmod 0755 \{\} \;
timeout ms = 20000
OK 
        send charts matching = *
 
        send names instead of ids = yes
[/usr/src/netdata.git]# chown root:netdata /usr/libexec/netdata/plugins.d/apps.plugin
</pre>
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
=Securing Netdata=
OK 


OK  New configuration saved for you to edit at /etc/netdata/netdata.conf
To secure the Netdata portal, set up a VPN and bind Netdata to the VPN IP address.


[/usr/src/netdata.git]# chown netdata /etc/netdata/netdata.conf
See [[Netdata/Security]]
OK 


[/usr/src/netdata.git]# chmod 0664 /etc/netdata/netdata.conf
=Resources=
OK 


--- Check KSM (kernel memory deduper) ---
Netdata Github repo: https://github.com/firehol/netdata


Memory de-duplication instructions
Netdata wiki: https://github.com/firehol/netdata/wiki


You have kernel memory de-duper (called Kernel Same-page Merging,
Netdata wiki article on setting up Prometheus backend: https://github.com/firehol/netdata/wiki/Netdata,-Prometheus,-and-Grafana-Stack
or KSM) available, but it is not currently enabled.


To enable it run:
Netdata command line options: https://github.com/firehol/netdata/wiki/Command-Line-Options


    echo 1 >/sys/kernel/mm/ksm/run
==Databases==
    echo 1000 >/sys/kernel/mm/ksm/sleep_millisecs


If you enable it, you will save 40-60% of netdata memory.
Replicating databases across multiple netdata instances: https://github.com/firehol/netdata/wiki/Replication-Overview
 
--- 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 
</pre>


Archiving data to database backends: https://github.com/firehol/netdata/wiki/netdata-backends


=Flags=
=Flags=


[[Category:Linux]]
[[Category:Linux]]
[[Category:Netdata]]
[[Category:Logging]]
{{DashboardFlag}}

Latest revision as of 00:12, 11 February 2018

Server monitoring/dashboard solution.

Installing

We recommend installing Netdata on Linux using the quick one-liner:

bash <(curl -Ss https://my-netdata.io/kickstart.sh)

The Netdata/Installing page has more details about installation steps.

Netdata Web Dashboard

Navigate to port 19999 on the server running netdata, and you'll see a slick live dashboard detailing the status of the server netdata is running on:

NetdataDashboardExample.png

Netdata errs on the side of too much info, rather than too little. It is also designed to display the current state of the machine, it does not put any effort into archiving or data storage or memory other than a backend plugin to continuously export data.

Database Backends

Here we are interested in dumping data from netdata to a database.

Netdata wiki page on backends: https://github.com/firehol/netdata/wiki/netdata-backends

Backend API URLs

We'll use this below, but check out how to use URLs to access the Netdata backend API:

http://192.168.25.236:19999/api/v1/allmetrics?format=json&help=yes

NetdataBackendJSON.png

http://192.168.25.236:19999/api/v1/allmetrics?format=prometheus&help=yes

NetdataBackendPrometheus.png

This helpful information was pointed out by this guide to setting up Prometheus backend: https://github.com/firehol/netdata/wiki/Netdata,-Prometheus,-and-Grafana-Stack

Prometheus Backend

Following this guide to setting up Prometheus backend, which is on the Netdata wiki: https://github.com/firehol/netdata/wiki/Netdata,-Prometheus,-and-Grafana-Stack

Netdata/Prometheus

Json Backend

I had some trouble getting Netdata to work with MongoDB, a JSON database. I pointed Netdata to a particular port, and then set up a simple echo socket listener in Python, but saw no activity on the port.

I tried this using the following /etc/netdata/netdata.conf:

[backend]
	enabled = yes
	type = json
	destination = localhost:27017
	data source = average
	prefix = netdata
	update every = 10
	buffer on failures = 10
	timeout ms = 20000
        send charts matching = *
        send names instead of ids = yes

Securing Netdata

To secure the Netdata portal, set up a VPN and bind Netdata to the VPN IP address.

See Netdata/Security

Resources

Netdata Github repo: https://github.com/firehol/netdata

Netdata wiki: https://github.com/firehol/netdata/wiki

Netdata wiki article on setting up Prometheus backend: https://github.com/firehol/netdata/wiki/Netdata,-Prometheus,-and-Grafana-Stack

Netdata command line options: https://github.com/firehol/netdata/wiki/Command-Line-Options

Databases

Replicating databases across multiple netdata instances: https://github.com/firehol/netdata/wiki/Replication-Overview

Archiving data to database backends: https://github.com/firehol/netdata/wiki/netdata-backends

Flags