setup the best light system matrix server with Telegraf + InfluxDB + Grafana
Setup Telegraf on every server you want to collect system matrix from then connect to the central server having InfluxDB, then connect with Grafana to view.
🖥️ 1. Central Server Setup (InfluxDB + Grafana)
CODE
sudo apt update
sudo apt install influxdb influxdb-client -y
sudo systemctl enable influxdb
sudo systemctl start influxdb
Check status:
CODE
systemctl status influxdb
Create Database for Metrics
CODE
influx
CREATE DATABASE telegraf
CREATE USER telegraf WITH PASSWORD 'yourpassword'
GRANT ALL ON telegraf TO telegraf
EXIT
Install Grafana
CODE
sudo apt-get install -y apt-transport-https software-properties-common
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://packages.grafana.com/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/grafana.gpg
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install grafana -y
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
Access Grafana:
👉 http://your-central-server:3000
(Default login: admin / admin)
*Can setup a domain using caddy
🖥️ 2. Telegraf Setup on Each Server
CODE
sudo apt update
sudo apt install telegraf -y
sudo systemctl enable telegraf
📄 Minimal Telegraf Config (/etc/telegraf/telegraf.conf)
CODE
[agent]
interval = "10s"
round_interval = true
metric_batch_size = 1000
metric_buffer_limit = 10000
collection_jitter = "0s"
flush_interval = "10s"
flush_jitter = "0s"
precision = ""
debug = false
quiet = false
logfile = ""
###############################################################################
#OUTPUTS
###############################################################################
[[outputs.influxdb]]
urls = ["http://YOUR_CENTRAL_SERVER_IP:8086"]
database = "telegraf"
username = "telegraf"
password = "yourpassword"
###############################################################################
#INPUTS
###############################################################################
#CPU metrics
[[inputs.cpu]]
percpu = true
totalcpu = true
collect_cpu_time = false
report_active = true
#Memory usage
[[inputs.mem]]
#Disk usage
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "overlay"]
#Network stats
[[inputs.net]]
#System load & uptime
[[inputs.system]]
Save file → Restart Telegraf then Verify logs
CODE
sudo systemctl restart telegraf
sudo journalctl -u telegraf -f
Successfully wrote metrics - should be the output.
S
SUVANKAR SARKAR
Engineering, systems programming, and curated technology insights.