nginx prometheus exporter.
nginx-prometheus-exporter merupakan exporter untuk nginx. Data yang diexport adalah module stub_status, dimana modul ini berfungsi untuk melihat berapa koneksi nginx yang sedang aktif, menunggu dan sudah dikembalikan ke client. Data yang diexport ini nantinya akan dicollect (diambil) oleh prometheus dan disimpan dalam bentuk time series.
Prerequisite
- Ubuntu 20.04
- Sudah mengaktifkan module nginx stub_status
- URL stub_status
http://localhost/nginx_status
Download exporter
Kita akan menginstallnya di /home/ubuntu/nginx_exporter
Buat folder nginx_exporter dan masuk ke folder tersebut
mkdir nginx_exporter
cd nginx_exporter
Download exporternya dari github
wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.11.0/nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz
Diatas kita menggunakan versi v0.11.0. Jika ingin menggunakan versi lain bisa dicari direleasenya
https://github.com/nginxinc/nginx-prometheus-exporter/releases
Extarct file .tar.gz yang sudah terdownload
tar -xvzf nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz
Kemudian tambahkan permission executable (+x) agar file binary exporternya bisa diexecute
chmod +x nginx-prometheus-exporter
Test Exporter
Selanjutnya kita test exporternya apakah bisa berjalan dengan baik.
Masih didalam folder nginx_exporter, jalankan command berikut
./nginx-prometheus-exporter -nginx.scrape-uri=http://localhost/nginx_status
Kita jalankan file binary nginx-prometheus-exporter dan ambil data stub_status dari htp://localhost/nginx_status
. Jika berhasil outputnya akan seperti ini:
Starting...
Listening on :9113
NGINX Prometheus Exporter has successfully started
Buka terminal baru dan akses exporternya melalui URL
curl -X GET http://localhost:9113/metrics
Jika berhasil outputnya akan seperti dibawah
Ada nginx_connections_accepted, nginx_connections_active, dll. Itu adalah metrics hasil exportan dari http://localhost/nginx_status.
Untuk melihat metrics apa saja yang tersedia, bisa lihat halaman berikut https://github.com/nginxinc/nginx-prometheus-exporter#metrics-for-nginx-oss
Buat Systemd
Sebelumnya, kita mengetest exporternya dengan menjalankan langsung file binary nginx-prometheus-exporter. Cara tersebut tidak bagus, karena ketika kita close terminalnya maka exporternya akan mati.
Cara yang benar adalah dengan membuat daemon systemd untuk exporternya. Jadi exporternya akan berjalan di background. Jika terminal ditutup exporter masih bisa menyala.
Buat file nginx_prometheus_exporter.service didalam folder systemd/system
sudo vi /etc/systemd/system/nginx_prometheus_exporter.service
Masukkan konfigurasi berikut:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=root
ExecStart=/home/ubuntu/nginx_exporter/nginx-prometheus-exporter -nginx.scrape-uri=http://localhost/nginx_status
[Install]
WantedBy=multi-user.target
*Yang terpenting adalah ExecStart, path tersebut untuk mengeksekusi file binary exporternya.
Kemudian reload daemon systemd agar konfigurasi file nginx_prometheus_exporter.service
bisa terbaca
sudo systemctl daemon-reload
Jalankan service exporternya
sudo systemctl start nginx_prometheus_exporter.service
Enable -kan servicenya, agar ketika server direstart servicenya langsung autorun
sudo systemctl start nginx_prometheus_exporter.service
Cek status service exporter
sudo systemctl status nginx_prometheus_exporter.service
Jika outputnya seperti dibawah (active (running)), maka service exporter sudah berhasil dinyalakan
Jalankan command berikut untuk mengetest URL exporternya apakah bisa diakses
curl -X GET http://localhost:9113/metrics
Nice. URL bisa diakses.
Integrasi dengan prometheus
Ditutorial berikutnya akan dibahas cara prometheus mengumpulkan (scraping) metrics exporter yang sudah kita install ini.
—
Sekian tutorial menginstall nginx exporter di ubuntu 20.04. Semoga bermanfaat!