Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Install Glances, InfluxDB and Grafana to Monitor CentOS 7
Monitoring the performance and health of your CentOS 7 server is essential for maintaining its stability and optimizing its resources. In this article, we will explore how to install and configure Glances, InfluxDB, and Grafana?a powerful trio of monitoring tools?to gather system metrics, store them in a time-series database, and visualize them in real-time dashboards.
Glances: System Monitoring Tool
Glances is a cross-platform system monitoring tool that provides a comprehensive overview of various system metrics such as CPU usage, memory usage, network activity, disk I/O, and process information in real-time.
Step 1: Update the System
Before installing any new software, update your system packages
sudo yum update
Step 2: Install Glances
Install Glances from the EPEL repository
sudo yum install epel-release sudo yum install glances
Launch Glances to start monitoring
glances
InfluxDB: Time-Series Database
InfluxDB is a high-performance, open-source time-series database designed for storing and retrieving large amounts of time-stamped data efficiently.
Step 1: Add InfluxDB Repository
Create the InfluxDB repository configuration
sudo tee /etc/yum.repos.d/influxdb.repo <<EOF [influxdb] name = InfluxDB Repository - RHEL 7 baseurl = https://repos.influxdata.com/rhel/7/x86_64/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key EOF
Step 2: Install and Start InfluxDB
sudo yum install influxdb sudo systemctl start influxdb sudo systemctl enable influxdb
Step 3: Create Database
Access the InfluxDB shell and create a database for storing metrics
influx
CREATE DATABASE glances_metrics SHOW DATABASES EXIT
Grafana: Data Visualization Tool
Grafana is an open-source analytics and monitoring platform that allows you to create interactive dashboards for visualizing time-series data.
Step 1: Add Grafana Repository and Install
sudo tee /etc/yum.repos.d/grafana.repo <<EOF [grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt EOF
sudo yum install grafana sudo systemctl start grafana-server sudo systemctl enable grafana-server
Step 2: Configure Firewall
Open the necessary ports for Grafana (3000) and InfluxDB (8086)
sudo firewall-cmd --permanent --add-port=3000/tcp sudo firewall-cmd --permanent --add-port=8086/tcp sudo firewall-cmd --reload
Connecting the Components
Configure Glances to Send Data to InfluxDB
Create a Glances configuration file to export data to InfluxDB
sudo mkdir -p /etc/glances sudo nano /etc/glances/glances.conf
[influxdb] host=localhost port=8086 user=root password= database=glances_metrics prefix=glances tags=server1
Run Glances with InfluxDB export
glances --export influxdb
Configure Grafana Data Source
Access Grafana at http://your_server_ip:3000 with default credentials (admin/admin). Add InfluxDB as a data source with the following settings
| Setting | Value |
|---|---|
| Type | InfluxDB |
| URL | http://localhost:8086 |
| Database | glances_metrics |
| User | root |
Example Monitoring Scenarios
CPU and Memory Usage
Glances displays real-time system metrics in a comprehensive interface
Load Average: 0.12, 0.08, 0.10 CPU Usage: 10% [|||| ] Memory: 40% [|||||||| ] 3.2G/8.0G
Network Activity
Network Interface - eth0 Rx: 5.2 KB/s ? 1.2M total Tx: 2.8 KB/s ? 856K total
Disk I/O Monitoring
Disk I/O - sda Read: 50 KB/s ? 1.2G total Write: 20 KB/s ? 800M total
Creating Grafana Dashboards
To create a monitoring dashboard in Grafana
Click the + icon and select Dashboard
Add a new panel and select InfluxDB as the data source
Use queries like
SELECT mean("value") FROM "glances.cpu.percent"Configure visualization type (line chart, gauge, etc.)
Set time ranges and refresh intervals
Key Benefits
| Tool | Purpose | Key Features |
|---|---|---|
| Glances | Data Collection | Real-time metrics, low overhead, multiple export formats |
| InfluxDB | Data Storage | Time-series optimized, high performance, data retention policies |
| Grafana | Visualization | Interactive dashboards, alerting, multiple data sources |
Conclusion
Installing Glances, InfluxDB, and Grafana creates a comprehensive monitoring solution for CentOS 7 servers. This stack enables real-time data collection, efficient storage, and powerful visualization capabilities. With proper configuration, you can monitor system performance, set up alerts, and make data-driven decisions for system optimization and capacity planning.
