Difference between revisions of "Install Node Exporter in Linux CentOS 7 and Connect It to Prometheus Server"

From Gejoreuy
Jump to navigation Jump to search
Line 56: Line 56:
 
  [root@target-server ~]# firewall-cmd --zone=public --permanent --add-port=9100/tcp
 
  [root@target-server ~]# firewall-cmd --zone=public --permanent --add-port=9100/tcp
 
  [root@target-server ~]# firewall-cmd --reload
 
  [root@target-server ~]# firewall-cmd --reload
 +
 +
Then try access the metric from browser : http://target-server:9100
 +
 +
== Configure Prometheus Server ==
 +
 +
=== Step 1 : Config Prometheus YML File ===
 +
 +
Open Prometheus YML file :
 +
 +
[root@monitoring-server ~]# vi /etc/prometheus/prometheus.yml
 +
 +
Add this under <code>scrape_configs:</code> path if it not set yet :
 +
 +
<pre>
 +
- job_name: "file_service_discovery"
 +
  file_sd_configs:
 +
    - files:
 +
        - "/etc/prometheus/files_sd/*.yml"
 +
</pre>
 +
 +
=== Step 2 : Create Node Exporter File ===
 +
 +
Create node-exporter file in files_sd directory (adjust the target-server name) :
 +
 +
  [root@monitoring-server ~]# vi /etc/prometheus/files_sd/target-server-node-exporter.yml
 +
 +
Fill it with below (adjust the target-server name) :
 +
 +
<pre>
 +
- targets: ['target-server:9100']
 +
  labels:
 +
    "job": "node"
 +
</pre>
 +
 +
=== Step 3 : Restart Prometheus ===
 +
 +
  [root@monitoring-server ~]# systemctl restart prometheus
 +
 +
Check the Prometheus page already included with this target server.

Revision as of 21:49, 7 November 2020

Introduction

Node-exporter is one of Prometheus exporter which used to generate metrics data from a server.
The metrics data can be a usage of : cpu, memory, disk, etc.

Assumption

To do guidance in this page, we asumpt that we already have a Prometheus server.
Let say the Prometheus server is called monitoring-server and target server is target-server.
To know about how to install Prometheus server, follow : Install Prometheus in Linux CentOS 7

Install & Configure Node Exporter in Target Server

Step 1 : Prepare User & Group

[root@target-server ~]# groupadd --system exporter
[root@target-server ~]# useradd -s /sbin/nologin --system -g exporter exporter

Step 2 : Download Node Exporter

[root@target-server ~]# mkdir -p /root/Temp
[root@target-server Temp]# cd /root/Temp
[root@target-server Temp]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
[root@target-server Temp]# tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
[root@target-server Temp]# mv node_exporter-0.18.1.linux-amd64.tar.gz /opt/node_exporter

Step 3 : Set System Service

Create service file :

[root@target-server ~]# vi /etc/systemd/system/node-exporter.service

Fill it with below :

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=exporter
ExecStart=/opt/node_exporter/node_exporter
[Install]
WantedBy=default.target

Step 4 : Start and Enable Node Exporter

[root@target-server ~]# systemctl daemon-reload
[root@target-server ~]# systemctl start node-exporter
[root@target-server ~]# systemctl enable node-exporter
[root@target-server ~]# systemctl status node-exporter

Step 5 : Enable Node Exporter Port

[root@target-server ~]# firewall-cmd --zone=public --permanent --add-port=9100/tcp
[root@target-server ~]# firewall-cmd --reload

Then try access the metric from browser : http://target-server:9100

Configure Prometheus Server

Step 1 : Config Prometheus YML File

Open Prometheus YML file :

[root@monitoring-server ~]# vi /etc/prometheus/prometheus.yml

Add this under scrape_configs: path if it not set yet :

- job_name: "file_service_discovery"
  file_sd_configs:
    - files:
        - "/etc/prometheus/files_sd/*.yml"

Step 2 : Create Node Exporter File

Create node-exporter file in files_sd directory (adjust the target-server name) :

 [root@monitoring-server ~]# vi /etc/prometheus/files_sd/target-server-node-exporter.yml

Fill it with below (adjust the target-server name) :

- targets: ['target-server:9100']
  labels:
    "job": "node"

Step 3 : Restart Prometheus

 [root@monitoring-server ~]# systemctl restart prometheus

Check the Prometheus page already included with this target server.