Monitoring server dan jaringan adalah hal yang sangat penting untuk memastikan sistem tetap tersedia dan berfungsi dengan baik. Biasanya, tugas ini dilakukan oleh seorang SysAdmin yang bertanggung jawab atas jaringan komputer. Namun, metode monitoring tradisional yang memerlukan pemantauan terus-menerus di depan layar komputer merupakan hal dianggap kurang efisien.
Untuk mengatasi masalah ini, monitoring server dapat dilakukan secara real-time menggunakan aplikasi open source seperti Prometheus dan Grafana. Grafana mampu memberikan informasi seperti grafik tentang kondisi server secara real-time, dan akan mengirimkan pesan/laporan kepada administrator melalui Telegram.
Pada Artikel ini, kami akan membahas cara melakukan setup monitoring server menggunakan Prometheus dan Grafana. Dengan menggunakan kedua tools ini, SysAdmin dapat memastikan layanan selalu tersedia dan mendeteksi masalah pada server produksi dengan lebih efisien.
Pengertian & Konsep Tools
1. Prometheus
Prometheus adalah sebuah tools monitoring server yang berfungsi untuk mengumpulkan, menyimpan, dan mengelola data metrik dari berbagai server yang ada melalui Node Exporter. Selain itu, Prometheus membantu dalam memantau kinerja sistem, aplikasi, layanan, dan infrastruktur secara real-time.
Dengan menggunakan model data time series, Prometheus menyimpan data metrik dalam urutan waktu, sehingga memungkinkan analisis historis dan pemantauan proaktif. Artinya, Anda bisa melihat bagaimana kinerja sistem di masa lalu dan mengantisipasi masalah sebelum terjadi.
Selain itu, Prometheus memiliki fitur alerting yang dapat mengirim pemberitahuan berdasarkan aturan yang sudah ditentukan pengguna. Prometeus akan melakukan scraping atau pengambilan data dari node exporter untuk dikumpulkan pada database prometheus.
2. Grafana
Grafana adalah software open-source yang digunakan untuk memantau dan membuat visualisasi data dari berbagai sumber dalam bentuk dashboard grafik website yang simple dan mudah dimengerti.
Selain itu, Grafana sering digunakan oleh para SysAdmin dan profesional DevOps untuk mengetahui secara detil kinerja aplikasi, sistem, dan infrastruktur mereka. Berikut beberapa fitur utama dari Grafana:
- Visualisasi Data: Grafana menyediakan berbagai jenis visualisasi data seperti grafik garis, grafik batang, dan lain-lain yang dapat disesuaikan sesuai kebutuhan admin server.
- Dashboard Menarik: Kita dapat membuat dashboard yang dinamis dengan berbagai widget dan filter yang dapat diatur sesuai dengan kebutuhan monitoring.
- Multi-Source : Grafana mendukung berbagai sumber data termasuk Prometheus, InfluxDB, Graphite, Elasticsearch, MySQL, PostgreSQL, dan masih banyak lagi.
- Alerting : Kita bisa mengatur notifikasi peringatan bahaya (alerting) berdasarkan metrik yang dipantau. Notifikasi ini dapat dikirim melalui berbagai tools seperti email, telegram, dan lainnya.
- Query Editor : Grafana menyediakan editor kueri yang fleksibel untuk mengolah data dari berbagai server yang tersedia.
- Plugin : Terdapat berbagai plugin yang tersedia untuk menambah fungsionalitas Grafana, baik itu plugin data source, panel visualisasi, maupun aplikasi.
Grafana sering digunakan untuk memantau kinerja aplikasi, jaringan, dan infrastruktur. Hal Ini memungkinkan tim admin dengan cepat mengidentifikasi dan menyelesaikan masalah dengan informasi dari visualisasi pada dasbor grafana, seperti CPU yang overload, atau server yang offline/down, dsb.
BACA JUGA : Apa Itu Zabbix Monitoring Server dan Bagaimana Cara Kerjanya
3. Node Exporter
Node Exporter adalah salah satu komponen dari Prometheus yang digunakan untuk mengumpulkan data dan melaporkan data dari server linux ke prometheus. Selain itu, Node Exporter mengumpulkan metrik dari berbagai aspek seperti penggunaan CPU, memori, disk, jaringan, dan lainnya, kemudian mengekspornya dalam format yang bisa dibaca oleh Prometheus.
Fungsi Utama Node Exporter:
- Mengumpulkan Data/Metrik: Node Exporter mengumpulkan metrik dari berbagai sumber di dalam server, seperti:
- CPU: Penggunaan CPU, waktu idle, interrupt, dan sebagainya.
- Memori: Penggunaan memori, swap, cache, dan buffer.
- Disk: Pembacaan dan penulisan disk, penggunaan disk, dan ruang kosong.
- Jaringan: Paket yang diterima dan dikirim, error jaringan, dan drop paket.
- Sistem File: Penggunaan sistem file, inodes yang tersedia, dan lainnya.
- Mengupload Metrik: Node Exporter mengekspos metrik-metrik tersebut melalui HTTP endpoint yang dapat diambil (scrape) oleh Prometheus.
Installasi dan Konfigurasi
Sebelumya telah dibahas mengenai pengertian dan fungsi masing” tools, langkah selanjutnya kita akan melakukan deployment/installasi pada VPS Murah dengan OS Almalinux.
Installasi Node Exporter
Sebelum melakukan installasi node exporter, kita akan mengunduh package binary/node exporter dahulu. Gunakan perintah berikut:
# yum update -y
# yum install wget curl sudo tar nano
# wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
Selanjutnya, ekstrak paket node exporter dan pindahkan pada direktori /usr/local/bin.
# tar xvf node_exporter-*.tar.gz
# cd node_exporter-1.7.0.linux-amd64
# sudo cp node_exporter /usr/local/bin
Apabila file node exporter telah dipindahkan ke usr/bin, maka kita perlu melakukan pembuatan user node exporter dan melakukan set binary mode ke user node exporter
# sudo useradd --no-create-home --shell /bin/false node_exporter
# sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
Selanjutnya, buat file service systemd node exporter.
sudo nano /etc/systemd/system/node_exporter.service
Isi konfigurasi file berikut kedalam file node exporter yang dibuat sebelumya.
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
Untuk memulai node exporter, Anda perlu menjalankan daemon-reload dan mengaktifkan pada systemctl sebagai berikut:
# sudo systemctl daemon-reload
# sudo systemctl enable node_exporter
# sudo systemctl start node_exporter
Sampai langkah ini, proses installasi node exporter telah selesai dilakukan. Untuk memastikan node exporter telah berjalan, kita dapat mengakses halaman website http://IP-ADDRESS-VPS:9100/metrics.
Installasi Prometheus
Pada awal installasi prometheus, hal yang perlu dilakukan adalah melakukan pembuatan user dan group untuk mencegah adanya unauthorized access, untuk user akan diberikan nama prometheus.
# sudo groupadd --system prometheus
# sudo useradd -s /sbin/nologin --system -g prometheus prometheus
Selanjutnya, buat direktori untuk menyimpan file konfigurasi dari prometeus, yaitu pada /etc dan pada /var/lib.
# sudo mkdir /etc/prometheus
# sudo mkdir /var/lib/prometheus
# sudo mkdir /etc/prometheus/consoles
Setelah lokasi folder prometheus dibuat, selanjutnya akan melakukan download package prometheus menggunakan wget:
wget https://github.com/prometheus/prometheus/releases/download/v2.43.0/prometheus-2.43.0.linux-amd64.tar.gz
Setelah proses download selesai, langkah selanjutnya adalah melakukan extract package dan memindahkan ke direktori yang dibuat sebelumya, yaitu /usr/local/. Pastikan ownership telah disesuaikan menjadi prometheus.
# tar vxf prometheus*.tar.gz
# cd prometheus-2.43.0.linux-amd64
# sudo mv prometheus /usr/local/bin
# sudo mv promtool /usr/local/bin
# sudo chown prometheus:prometheus /usr/local/bin/prometheus
# sudo chown prometheus:prometheus /usr/local/bin/promtool
Pindahkan konfigurasi file prometheus dan sesuaikan permission folder/filenya.
# sudo mv consoles /etc/prometheus
# sudo mv console_libraries /etc/prometheus
# sudo mv prometheus.yml /etc/prometheus
# sudo chown prometheus:prometheus /etc/prometheus
# sudo chown -R prometheus:prometheus /etc/prometheus/consoles
# sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
# sudo chown -R prometheus:prometheus /var/lib/prometheus
File konfigurasi prometheus terdapat pada /etc/prometheus/prometheus.yml, kita perlu melakukan konfigurasi pada file prometheus agar prometheus dapat terhubung dengan node exporter dan grafana.
sudo nano /etc/prometheus/prometheus.yml
Tambahkan job pada akhir baris untuk node exporter.
Langkah selanjutnya adalah membuat systemd untuk prometheus agar dapat berjalan pada VPS, buat file baru pada /etc/systemd/system/prometheus.service
sudo nano /etc/systemd/system/prometheus.service
Isi dengan konfigurasi prometeus.
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
Apabila file systemd prometheus telah dibuat, langkah selanjutnya adalah mengaktifkan service prometeus melalui systemd.
# sudo systemctl daemon-reload
# sudo systemctl enable prometheus
# sudo systemctl start prometheus
Installasi Prometheus telah selesai, kita dapat mengakses halaman prometeus melalui http://IP-ADDRESS-VPS:9090/graph.
Installasi Grafana
Grafana digunakan sebagai visualisasi dashboard, data yang dikumpulkan dan dianalisa pada prometeus akan ditampikan berupa grafik, bar, pie, dan tampilan menarik lainnya yang bertujuan untuk mempermudah pembacaan grafik.
Untuk installasi Grafana, tambahkan terlebih dahulu repository dari official grafana
nano /etc/yum.repos.d/grafana.repo
Isi file repository dengan repository grafana sebagai berikut:
[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
Setelah menambahkan repository grafana, kita perlu menambahkan GPG key dari grafana:
# sudo mkdir -p /etc/apt/keyrings/
# wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Lanjutkan dengan proses installasi grafana
# sudo dnf update -y
# sudo yum install grafana -y
Sudo systemctl start grafana-server && sudo systemctl enable grafana-server:
Setelah installasi grafana telah selesai, kita dapat mengakses dashboard grafana melalui http://IP-ADDRESS-VPS:3000.
Untuk mengakses dashboard, diperlukan credential login. Secara default, grafana akan membuat username dan password dengan menggunakan data berikut:
Username : admin
Password : admin
Grafana Telah berhasil diinstall dan siap digunakan.
Menambahkan Server ke Sistem Monitoring
Setelah proses installasi semua tools selesai, langkah yang perlu dilakukan selanjutnya adalah menambahkan VPS yang sudah terinstall node exporter ke dashboard grafana.
Untuk menambahkan node exporter, masuk ke menu data source pada grafana seperti gambar berikut:
Tambahkan data source dari prometheus yang telah diinstall sebelumya.
Isi konfigurasi pada prometheus dengan http://localhost:9090 apabila server grafana dan prometheus dalam 1 node server yang sama, lalu save dan exit.
Selanjutnya, kita dapat membuat dashboard secara mandiri menggunakan analisis query prometheus,atau dapat mengimport dashboard tampilan yang sudah jadi/disediakan oleh grafana.
Kali ini, kita akan menggunakan IMPORT dashboard yang sudah tersedia, yaitu “node exporter full” dengan kode 1860.
Apabila telah diimport akan muncul konfirmasi installasi dashboard, setelah itu dashboard monitoring server akan tampil dengan sempurna untuk memeriksa seluruh resource server.
Sampai tahapn ini, kita telah berhasil melakukan installasi grafana, prometheus, dan node exporter. Langkah selanjutnya, Anda dapat melakukan penyesuaian tampilan monitoring sesuai kebutuhan masing masing untuk mempermudah monitoring server yang ada.
Demikian artikel kami tentang monitoring server menggunakan Grafana dan Prometheus, semoga artikel ini bermanfaat.