Real-Time System Monitoring with Netdata on CentOS
For system administrators, having visibility into system resource utilization is crucial. When you need to monitor the real-time performance of a Linux system, applications, or SNMP devices, the netdata tool is an excellent choice. Its web interface is highly responsive and does not require any plugins like Flash. The UI is clean and intuitive, presenting a wealth of charts. Most common metrics, such as CPU, RAM, network, and disk usage, are prominently displayed at the top. For more in-depth graphical data, you can scroll down or select items from the right-side menu. Each chart also provides controls for display, reset, and zoom functions located at its bottom right.
Installation: This guide details the installation process using Git.
First, ensure Gits installed on your system. If it is not, install it using the following command:
$ sudo yum -y install git
Once Git is installed, clone the netdata repository to your local machine by executing this command:
$ git clone https://github.com/firehol/netdata.git
This command will create a copy of the repository in your current working directory.
Next, install the required dependencies:
$ yum -y install zlib-devel libuuid-devel libmnl-devel gcc make git autoconf autogen automake pkgconfig
After all necessary packages are installed, navigate into the netdata/ directory and run the installation script:
$ sudo ./netdata-installer.sh
The script will prompt you to press Enter to begin the installation. Press Enter to proceed.
A successful enstallation screen will be displayed.
Using Netdata Upon successful compilation and installation, the netdata daemon will start automatically, listening on port 19999 of the local machine.
To access the netdata Web Dashboards, we will configure a reverse proxy using NGINX. Create a new configuration file, for example, netdata_proxy.conf, with the following content:
# Define the upstream server for netdata
upstream netdata_service {
server 127.0.0.1:19999;
keepalive 128;
}
server {
listen 80;
server_name monitoring.example.com;
location / {
# Forward necessary headers for proper logging and display
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Pass the request to the upstream netdata server
proxy_pass http://netdata_service;
# Enable HTTP/1.1 and keep-alive connections
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
After reloading the NGINX configuration, you can access the netdata dashboard at http://monitoring.example.com. If you are using a different web server, consult the netdata Wiki for specific configuration instructions.