Post

Monitoring Prometheus dengan Grafana

Monitoring Prometheus dengan Grafana

Monitoring Prometheus dengan Grafana

image Kali ini kita akan membahas mengenai monitoring prometheus dengan visualisasi grafana.

Apa itu prometheus ?

Prometheus adalah open source, sistem monitoring berbasis metrics. Prometheus mudah di gunakan serta memiliki model data yang powerful dan bahasa query yang dapat menganalisa aplikasi dan infrastruktur yang kita miliki.

Dengan format text yang sederhana membuatnya lebih mudah untuk mengekspos metrik ke prometheus.

image Apa itu node exporter ?

Eksporter adalah perangkat lunak yang di gunakan tepat di samping aplikasi yang ingin diperoleh metriknya. Eksporter menerima permintaan dari Prometheus, mengumpulkan data yang diperlukan dari aplikasi, mengubahnya menjadi format yang benar, dan kemudian mengembalikannya sebagai respons terhadap Prometheus.

Apa itu Grafana ?

Grafana adalah alat yang populer untuk membuat dashboard untuk berbagai sistem pemantauan dan non monitor, termasuk Graphite, InfluxDB, Elasticsearch, dan PostgreSQL. Ini adalah salah satu tools yang dapat digunakan untuk membuat dashboard saat menggunakan Prometheus.

Sekarang kita akan menginstall node exporter, prometheus dan grafana.

Kebutuhan :

  • Node monitoring: node-monitoring (ip: 10.67.67.30, OS: Centos 7)
  • Node container: node-container (ip: 10.67.67.31, OS: Centos 7)

Lakukan pada node containerJika menggunakan firewall, buka port 9100 terlebih dahulu

1
2
# firewall-cmd --zone=public --permanent --add-port=9100/tcp
# firewall-cmd --reload
1
2
3
4
5
# cd /opt
# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
# tar xvfz node_exporter-0.18.1.linux-amd64.tar.gz
# ./node_exporter --help
# ./node_exporter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
INFO[0000]  - netstat                                    source="node_exporter.go:104"
INFO[0000]  - nfs                                        source="node_exporter.go:104"
INFO[0000]  - nfsd                                       source="node_exporter.go:104"
INFO[0000]  - pressure                                   source="node_exporter.go:104"
INFO[0000]  - sockstat                                   source="node_exporter.go:104"
INFO[0000]  - stat                                       source="node_exporter.go:104"
INFO[0000]  - textfile                                   source="node_exporter.go:104"
INFO[0000]  - time                                       source="node_exporter.go:104"
INFO[0000]  - timex                                      source="node_exporter.go:104"
INFO[0000]  - uname                                      source="node_exporter.go:104"
INFO[0000]  - vmstat                                     source="node_exporter.go:104"
INFO[0000]  - xfs                                        source="node_exporter.go:104"
INFO[0000]  - zfs                                        source="node_exporter.go:104"
INFO[0000] Listening on :9100                            source="node_exporter.go:170"

Akses browser http://10.67.67.31:9100/metrics :

image Membuat node exporter sebagai service

1
2
3
4
5
6
7
8
9
10
11
# vi /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter

[Service]
User=root
ExecStart=/opt/node_exporter-0.18.1.linux-amd64/node_exporter

[Install]
WantedBy=default.target

Menjalankan servis node exporter

1
2
3
4
5
# systemctl daemon-reload
# systemctl enable node_exporter.service
# systemctl start node_exporter.service
# systemctl status node_exporter.service
# journalctl -u node_exporter

Instalasi PrometheusLakukan di node-monitoring

jika menggunakan firewall buka port 9090 terlebih dahulu

1
2
# firewall-cmd --zone=public --permanent --add-port=9090/tcp
# firewall-cmd --reload
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# cd /opt
# wget https://github.com/prometheus/prometheus/releases/download/v2.10.0/prometheus-2.10.0.linux-amd64.tar.gz
# tar xvfz prometheus-2.10.0.linux-amd64.tar.gz
# cd prometheus-2.10.0.linux-amd64
# vi config.yml

global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['10.67.67.30:9090']
  - job_name: 'node'
    static_configs:
    - targets: ['10.67.67.31:9100']

Cek konfigurasi prometheus

1
2
# ./promtool check config config.yml
# ./prometheus --web.listen-address 10.X0.X0.21:9090 --config.file /opt/prometheus-2.10.0.linux-amd64/config.yml

Membuat prometheus sebagai servis

1
2
3
4
5
6
7
8
9
10
11
# vi /etc/systemd/system/prometheus_server.service

[Unit]
Description=Prometheus Server

[Service]
User=root
ExecStart=/opt/prometheus-2.10.0.linux-amd64/prometheus --web.listen-address 10.X0.X0.21:9090 --config.file /opt/prometheus-2.10.0.linux-amd64/config.yml

[Install]
WantedBy=default.target

Jalankan prometheus

1
2
3
4
5
# systemctl daemon-reload
# systemctl enable prometheus_server.service
# systemctl start prometheus_server.service
# systemctl status prometheus_server.service
# journalctl -u prometheus_server

image Install Grafana di node-monitoringJika menggunakan firewall buka port 3000

1
2
# firewall-cmd --zone=public --permanent --add-port=3000/tcp
# firewall-cmd --reload
1
2
3
4
5
# cd /opt
# wget https://dl.grafana.com/oss/release/grafana-6.2.5.linux-amd64.tar.gz 
# tar -zxvf grafana-6.2.5.linux-amd64.tar.gz 
# cd grafana-6.2.5
# ./bin/grafana-server -homepath /opt/grafana-6.2.5 web

Membuat grafana sebagai servis

1
2
3
4
5
6
7
8
9
10
11
# vi /etc/systemd/system/grafana.service

[Unit]
Description=Grafana

[Service]
User=root
ExecStart=/opt/grafana-6.2.5/bin/grafana-server -homepath /opt/grafana-6.2.5/ web

[Install]
WantedBy=default.target

Jalankan grafana:

1
2
3
4
5
# systemctl daemon-reload
# systemctl enable grafana.service
# systemctl start grafana.service
# systemctl status grafana.service
# journalctl -u grafana

Akses web browser http://10.67.67.30:3000

Credential grafana default:

1
2
username : admin
password : admin

image Menambahkan Data Source:

Masuk ke menu Configuration > Data Source > Add data source

Type > Prometheus

image

image

image Contoh:melihat uptime pada node

image

image

image

image

image

image

image Sekian dan terimakasih.

This post is licensed under CC BY 4.0 by the author.