From charlesreid1

 
(31 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>


==What It Do==
The [[Netdata/Installing]] page has more details about installation steps.


The script does the following:
=Netdata Web Dashboard=
* Create users/groups as needed
* Get logrotate
* Set permissions
* Download default netdata configuration


==Output==
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:


Here is the output from the installation process, which contains some useful information:
[[Image:NetdataDashboardExample.png|400px]]


<pre>
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.
--- 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 ---
=Database Backends=
Adding netdata user group ...
[/usr/src/netdata.git]# groupadd -r netdata
OK 


Adding netdata user account ...
Here we are interested in dumping data from netdata to a database.
[/usr/src/netdata.git]# useradd -r -g netdata -c netdata -s /usr/sbin/nologin -d / netdata
OK 


Group 'docker' does not exist.
Netdata wiki page on backends: https://github.com/firehol/netdata/wiki/netdata-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.
==Backend API URLs==
Adding netdata user to the proxy group ...
[/usr/src/netdata.git]# usermod -a -G proxy netdata
OK 


Group 'squid' does not exist.
We'll use this below, but check out how to use URLs to access the Netdata backend API:
--- 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
http://192.168.25.236:19999/api/v1/allmetrics?format=json&help=yes
OK 


--- Read installation options from netdata.conf ---
[[Image:NetdataBackendJSON.png|500px]]
--- 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=prometheus&help=yes
OK 


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


[/usr/src/netdata.git]# chown -R netdata:netdata /usr/share/netdata/web
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]# find /usr/share/netdata/web -type f -exec chmod 0664 \{\} \;
==Prometheus Backend==
OK 


[/usr/src/netdata.git]# find /usr/share/netdata/web -type d -exec chmod 0775 \{\} \;
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/lib/netdata
[[Netdata/Prometheus]]
OK 


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


[/usr/src/netdata.git]# chown -R netdata:netdata /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]# chmod 755 /var/log/netdata
I tried this using the following <code>/etc/netdata/netdata.conf</code>:
OK 


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


netdata by default listens on all IPs on port 19999,
To secure the Netdata portal, set up a VPN and bind Netdata to the VPN IP address.
so you can access it with:


  http://this.machine.ip:19999/
See [[Netdata/Security]]


To stop netdata run:
=Resources=


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


To start netdata run:
Netdata wiki: https://github.com/firehol/netdata/wiki


  systemctl start netdata
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


Uninstall script generated: ./netdata-uninstaller.sh
==Databases==
Update script generated  : ./netdata-updater.sh


netdata-updater.sh can work from cron. It will trigger an email from cron
Replicating databases across multiple netdata instances: https://github.com/firehol/netdata/wiki/Replication-Overview
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