TimeStream adalah mesin time series yang dikembangkan oleh tim Alibaba Cloud Elasticsearch, menggabungkan fitur-fitur produk time series dari komunitas Elastic. Alibaba Cloud Elasticsearch terintegrasi secara mulus dengan Prometheus dan Grafana serta mendukung API Query Prometheus. Anda dapat menggunakan indeks TimeStream langsung sebagai sumber data Prometheus di Grafana. Hal ini meningkatkan performa penyimpanan, kueri, dan analisis data metrik time series sekaligus mengurangi biaya. Topik ini menjelaskan cara mengintegrasikan Prometheus dan Grafana dengan mesin TimeStream Elasticsearch untuk mencapai observabilitas cloud-native.
Informasi latar belakang
Penyimpanan lokal Prometheus memiliki keterbatasan berikut:
Tidak ada replika data. Prometheus menjadi tidak dapat diakses jika mesin kluster lokal mengalami gangguan.
Penyimpanan single-machine. Bottleneck perangkat keras dapat terjadi seiring peningkatan volume data, dan skala keluar (scale-out) tidak dimungkinkan.
Tidak memiliki kemampuan backup data. Data mungkin tidak dapat dipulihkan jika hard disk rusak.
Biaya penyimpanan disk lokal tinggi. Pemisahan data hot dan cold tidak didukung.
Oleh karena itu, untuk mencapai ketersediaan tinggi (high availability) Prometheus, Anda dapat menggunakan penyimpanan remote yang terdistribusi dan sangat tersedia. Mesin TimeStream pada Alibaba Cloud Elasticsearch menyediakan kemampuan penyimpanan dan kueri remote untuk Prometheus. Berdasarkan fitur Elasticsearch seperti arsitektur terdistribusi, elastisitas, ketersediaan tinggi, backup, serta penyimpanan bertingkat untuk data hot dan cold, TimeStream merupakan pilihan optimal untuk penyimpanan remote Prometheus.
Gambar berikut menunjukkan integrasi Alibaba Cloud Elasticsearch dengan Prometheus dan Grafana. 
Prinsipnya adalah sebagai berikut:
Prometheus mengumpulkan data dari berbagai Exporter.
Prometheus menyinkronkan data yang dikumpulkan ke Elasticsearch menggunakan remote write.
Anda dapat melihat data yang disinkronkan oleh Prometheus ke Elasticsearch menggunakan Kibana dan Grafana.
CatatanSaat mengakses data Elasticsearch dengan Grafana, gunakan salah satu dari sumber data Elasticsearch native atau sumber data Prometheus. Gunakan PromQL untuk melihat data metrik.
Prasyarat
Kluster Elasticsearch yang memenuhi persyaratan versi berikut telah dibuat: Versi kluster adalah V7.10 dan versi kernel kluster adalah V1.8.0 atau lebih baru, atau versi kluster adalah V7.16 atau lebih baru dan versi kernel kluster adalah V1.7.0 atau lebih baru. Untuk informasi tentang cara membuat kluster Elasticsearch, lihat Buat kluster Alibaba Cloud Elasticsearch.
Prosedur
Langkah 1: Siapkan Lingkungan
Buat instans Alibaba Cloud Elasticsearch edisi General Business Edition V7.16.
Untuk langkah-langkah detail, lihat Buat instans Alibaba Cloud Elasticsearch.
Buat instans ECS yang berada dalam virtual private cloud (VPC) yang sama dengan instans Elasticsearch yang dibuat di Langkah 1, dan gunakan sistem operasi Linux.
Untuk langkah-langkah detail pembuatan instans ECS, lihat Kustomisasi Pembelian Instans. Instans ECS ini digunakan untuk mengakses kluster Alibaba Cloud Elasticsearch serta menginstal Prometheus dan Grafana, sehingga memungkinkan integrasi antara Alibaba Cloud Elasticsearch, Prometheus, dan Grafana.
Buat indeks TimeStream Elasticsearch untuk menerima data Prometheus.
Login ke konsol Kibana instans Alibaba Cloud Elasticsearch Anda. Anda akan diarahkan ke halaman utama Kibana.
Untuk informasi lebih lanjut, lihat Login ke konsol Kibana.
Di panel navigasi sebelah kiri, klik ikon
, lalu pilih .Di console, eksekusi perintah
PUT _time_stream/prom_indexuntuk membuat indeks TimeStream bernama prom_index.
Langkah 2: Unduh dan Jalankan node_exporter
Prometheus Node Exporter mengekspos berbagai metrik terkait perangkat keras dan kernel, serta memungkinkan Prometheus membaca data metrik tersebut. Untuk informasi lebih lanjut tentang Node Exporter dan cara menginstalnya, lihat node_exporter.
Hubungkan ke instans ECS.
Untuk langkah-langkah spesifik, lihat Login ke instans Linux menggunakan password atau pasangan kunci SSH.
CatatanTopik ini menggunakan izin pengguna biasa sebagai contoh.
Unduh paket instalasi node_exporter.
Contoh ini menggunakan node_exporter V1.3.1. Perintah unduhnya adalah sebagai berikut:
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gzEkstrak paket instalasi dan jalankan node_exporter.
tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz cd node_exporter-1.3.1.linux-amd64 ./node_exporter
Langkah 3: Unduh, Konfigurasikan, dan Jalankan Prometheus
Hubungkan ke instans ECS.
Untuk informasi lebih lanjut, lihat Login ke instans Linux menggunakan password atau kunci.
Unduh paket instalasi Prometheus ke direktori root.
Contoh ini menggunakan Prometheus V2.36.2. Perintah unduhnya adalah sebagai berikut:
cd ~ wget https://github.com/prometheus/prometheus/releases/download/v2.36.2/prometheus-2.36.2.linux-amd64.tar.gzEkstrak paket instalasi Prometheus.
tar xvfz prometheus-2.36.2.linux-amd64.tar.gzDi file prometheus.yml dalam folder Prometheus, konfigurasikan node_exporter dan remote_write.
cd prometheus-2.36.2.linux-amd64 vim prometheus.ymlContoh konfigurasinya adalah sebagai berikut:
scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090'] # Configure node_exporter. - job_name: "node" static_configs: - targets: ["127.0.0.1:9100"] # Configure remote_write. Ensure Prometheus can access the Elasticsearch cluster. remote_write: - url: "http://xxx:9200/_time_stream/prom_write/prom_index" basic_auth: username: elastic password: xxxxParameter
Deskripsi
node_exporter
Konfigurasikan informasi koneksi untuk node_exporter. targets harus diatur ke endpoint:port node_exporter.
Karena Prometheus dan Node Exporter dideploy pada instans ECS yang sama dalam contoh ini, gunakan alamat IP lokal 127.0.0.1 sebagai endpoint Node Exporter dan port default 9100.
remote_write
Konfigurasikan informasi koneksi indeks time series pada instans Elasticsearch. Anda harus mengonfigurasi parameter dasar berikut. Untuk parameter lanjutan, lihat remote_write.
url: URL untuk mengakses indeks TimeStream. Format: http://<Endpoint publik atau internal instans Elasticsearch>:9200/_time_stream/prom_write/<yourTimeStreamIndex>.
CatatanAlamat akses publik atau internal-facing instans Elasticsearch: Anda dapat memperoleh alamat tersebut dari halaman Basic Information instans Elasticsearch. Jika instans ECS tempat Prometheus dideploy berada dalam VPC yang sama dengan instans Elasticsearch, Anda dapat menggunakan alamat akses internal-facing (topik ini menggunakan metode ini sebagai contoh). Jika tidak berada dalam VPC yang sama, Anda perlu menggunakan alamat akses publik dan mengonfigurasi daftar putih akses publik. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih akses publik atau internal-facing untuk instans.
<yourTimeStreamIndex>: Indeks TimeStream Elasticsearch yang digunakan untuk menerima data Prometheus. Anda harus membuat indeks ini terlebih dahulu. Topik ini menggunakan indeks prom_index sebagai contoh.
username: Username yang digunakan untuk mengakses indeks TimeStream. Nilai default-nya adalah akun administrator elastic. Anda juga dapat menggunakan pengguna kustom, tetapi pastikan pengguna kustom tersebut memiliki izin untuk mengakses dan mengelola indeks TimeStream. Untuk informasi lebih lanjut, lihat Kontrol Izin Pengguna Menggunakan Manajemen Peran X-Pack Elasticsearch.
password: Password untuk akun pengguna yang digunakan untuk mengakses indeks TimeStream. Password untuk akun elastic ditetapkan saat Anda membuat instans. Jika lupa password, Anda dapat mengatur ulang. Untuk informasi tentang tindakan pencegahan dan prosedur pengaturan ulang password, lihat Atur ulang password akses instans.
Jalankan Prometheus.
./prometheusVerifikasi apakah data Prometheus telah disinkronkan ke indeks TimeStream Elasticsearch.
Di konsol Kibana Elasticsearch, jalankan perintah berikut untuk verifikasi:
Periksa apakah indeks prom_index sudah berisi data.
GET _cat/indices/prom_index?v&s=iHasil yang diharapkan:

Konfirmasi apakah Anda dapat melakukan kueri dan melihat datanya.
GET prom_index/_searchHasil yang diharapkan:

Langkah 4: Unduh, Jalankan, dan Konfigurasikan Dasbor Grafana
Hubungkan ke instans ECS.
Untuk instruksi spesifik, lihat Login ke instans Linux menggunakan password atau pasangan kunci SSH.
Unduh paket instalasi Grafana ke direktori root.
Contoh ini menggunakan Grafana V9.0.2. Perintah unduhnya adalah sebagai berikut:
cd ~ wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.0.2.linux-amd64.tar.gzEkstrak paket instalasi Grafana dan jalankan Grafana.
tar xvfz grafana-enterprise-9.0.2.linux-amd64.tar.gz cd grafana-9.0.2 ./bin/grafana-serverDi browser, masukkan endpoint Grafana
http://<alamat IP publik instans ECS>:3000. Buka halaman login Grafana, lalu masukkan username dan password Anda untuk mengakses konsol Grafana.Pertama kali login ke konsol Grafana, gunakan username dan password default, yaitu `admin`. Setelah login, sistem akan meminta Anda mengubah password. Setelah mengubah password, Anda dapat mengakses konsol Grafana.
Alamat IP publik instans ECS Anda: Buka ECS console, lalu peroleh dari kolom IP Address instans terkait.
Port default untuk mengakses Grafana adalah 3000. Saat mengakses port 3000 di browser, Anda harus mengonfigurasi aturan security group inbound untuk instans ECS Anda, atur Destination ke 3000, dan atur Source ke alamat IP client Anda. Untuk informasi lebih lanjut, lihat Menambahkan Aturan Security Group.
Buat sumber data Prometheus di Grafana.
Di panel navigasi sebelah kiri konsol Grafana, pilih .
Di tab Data sources, klik Add data source.
Di daftar Time series databases, klik Prometheus.
Di tab Settings, konfigurasikan informasi sumber data Prometheus.

Parameter yang harus dikonfigurasi dalam topik ini adalah sebagai berikut:
Parameter
Deskripsi
URL
URL untuk mengakses indeks TimeStream. Format: http://<Endpoint publik atau internal instans Elasticsearch>:9200/_time_stream/prom/<yourTimeStreamIndex>.
CatatanAlamat akses publik atau internal-facing instans Elasticsearch: Anda dapat memperoleh alamat tersebut dari halaman Basic Information instans Elasticsearch. Jika instans ECS tempat Prometheus dideploy berada dalam VPC yang sama dengan instans Elasticsearch, Anda dapat menggunakan alamat akses internal-facing (topik ini menggunakan metode ini sebagai contoh). Jika tidak berada dalam VPC yang sama, Anda perlu menggunakan alamat akses publik dan mengonfigurasi daftar putih akses publik. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih akses publik atau internal-facing untuk instans.
<yourTimeStreamIndex>: Indeks TimeStream Elasticsearch yang digunakan untuk menerima data Prometheus. Anda harus membuat indeks ini terlebih dahulu. Topik ini menggunakan indeks prom_index sebagai contoh.
Basic auth
Aktifkan Basic auth untuk instans Elasticsearch. Jika diaktifkan, konfigurasikan username dan password untuk mengakses instans Elasticsearch.
User
Username yang digunakan untuk mengakses indeks TimeStream. Default-nya adalah akun administrator elastic. Anda juga dapat menggunakan pengguna kustom, tetapi pastikan pengguna kustom tersebut memiliki izin untuk mengakses dan mengelola indeks TimeStream. Untuk informasi lebih lanjut, lihat Kelola Izin Pengguna Menggunakan Manajemen Peran X-Pack Elasticsearch.
Password untuk pengguna yang mengakses indeks TimeStream. Password untuk akun elastic ditetapkan saat Anda membuat instans. Jika lupa password, Anda dapat mengatur ulang. Untuk informasi lebih lanjut, lihat Atur ulang password akses instans.
Klik Save&test.
Setelah konfigurasi berhasil, sistem akan menampilkan Data source is working.
Buat dasbor di Grafana untuk menampilkan sumber data Prometheus.
Di panel navigasi sebelah kiri konsol Grafana, pilih .
Klik Add a new panel.
Pilih Data source dan rentang waktu, lalu klik Run queries untuk melakukan kueri data.

Klik Save di pojok kanan atas untuk menyimpan Dashboard.
Impor dasbor bawaan Grafana untuk node_exporter di Grafana. Konfigurasikan sumber data Prometheus untuk menghasilkan dasbor pemantauan metrik.
Di panel navigasi sebelah kiri konsol Grafana, pilih .
Di kotak teks Import via grafana.com, masukkan URL atau ID Grafana untuk node_exporter, misalnya https://grafana.com/grafana/dashboards/1860 atau 1860.

Klik Load.
Di halaman konfigurasi, pilih sumber data Prometheus yang telah Anda buat sebelumnya.

Klik Import.
Di pojok kanan atas halaman Dashboard, pilih waktu kueri. Anda kemudian dapat melihat dasbor pemantauan metrik untuk periode waktu yang sesuai.
CatatanUntuk informasi lebih lanjut, lihat Dokumentasi Grafana.
> Data sources
> New dashboard