Grafana adalah platform observabilitas terkemuka untuk visualisasi metrik. Ini memungkinkan Anda membuat dasbor pesanan untuk menampilkan wawasan yang berarti dari aliran data real-time aplikasi Anda.
Grafana adalah aplikasi cloud-native yang siap diluncurkan pada penyedia infrastruktur populer, diinstal pada perangkat keras Anda sendiri, atau digunakan sebagai wadah mandiri. Dalam panduan ini kita akan fokus pada pilihan terakhir dengan menggunakan gambar resmi Grafana untuk memulai sebuah instance yang berjalan di Docker.
Memulai
Pembuatan container Grafana yang paling sederhana terlihat seperti ini:
docker run -d --name=grafana -p 3000:3000 grafana/grafana
Anda akan memiliki server Grafana baru yang dapat diakses pada port 3000. Kunjungi http://localhost:3000
dan login sebagai admin
/admin
.
Sekarang Anda dapat mulai menambahkan sumber data dan dasbor untuk membuat visualisasi Anda. Tekan tombol “Tambahkan sumber data pertama Anda” di beranda untuk menghubungkan sumber baru; pilih jenis penyedia di layar berikut, lalu isi detailnya agar Grafana dapat mengakses data Anda.
Selanjutnya kembali ke beranda dan klik "Buat dasbor pertama Anda." Pilih jenis visualisasi pilihan Anda, lalu gunakan panel kueri untuk memilih metrik yang sesuai dari data Anda. Setelah selesai, visualisasi baru Anda akan ditampilkan di dasbor.
Prosedur ini menunjukkan betapa mudahnya Anda dapat memulai instance pengujian Grafana sekali pakai. Menjalankan wadah siap produksi membutuhkan sedikit lebih banyak pemikiran. Berikut adalah pendekatan yang lebih lengkap yang dilengkapi dengan lebih baik untuk penggunaan jangka panjang.
Memilih Varian Gambar
Grafana menggunakan model bisnis lisensi ganda. Edisi open-source diterbitkan sebagai grafana/grafana
di Docker Hub sedangkan Enterprise adalah grafana/grafana-enterprise
. Petunjuk berikut akan berfungsi dengan kedua varian tingkat atas ini.
Beberapa versi Grafana tersedia, masing-masing dalam rasa Alpine atau Ubuntu. Alpine harus lebih disukai di sebagian besar situasi penerapan:lebih ramping dan berfokus pada penyediaan lingkungan yang kompatibel dengan Grafana tanpa tambahan yang berlebihan.
OS dipilih dengan menambahkan namanya setelah versi Grafana dalam tag gambar:
grafana/grafana:8.3.0-ubuntu
Itu selalu yang terbaik untuk menyematkan ke rilis tertentu sehingga Anda tidak secara tidak sengaja menerima perubahan yang melanggar saat pembaruan baru diterbitkan. Menghilangkan nama OS (grafana/grafana:8.3.0
) akan memberi Anda varian Alpine dari versi yang Anda pilih.
Membuat Wadah
Grafana memiliki persyaratan penerapan yang relatif mudah. Anda perlu memasang volume Docker untuk menyimpan data persisten Anda dan mengikat port host sehingga Anda dapat mengakses layanan. Pengaturan dapat diberikan dengan memasang file konfigurasi ke dalam wadah atau memasukkan variabel lingkungan.
docker run -d --name grafana -p 9000:3000 -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
Contoh ini memulai wadah Grafana baru yang disebut grafana
yang mendengarkan pada port 9000 di Host Docker Anda. Port terikat ke 3000 dalam wadah karena ini adalah alamat mendengarkan default Grafana.
Volume Docker bernama grafana-data
direferensikan oleh -v
bendera. Sudah terpasang ke /var/lib/grafana
dalam wadah, tempat Grafana menyimpan semua data yang dihasilkannya. Pemasangan volume berarti konten direktori akan disimpan di luar penampung, menghindari kehilangan data saat penampung berhenti atau host Anda memulai ulang.
Konfigurasi Penyuntikan
Anda dapat mengganti kunci konfigurasi Grafana dengan mengatur variabel lingkungan saat Anda memulai wadah Anda. Anda dapat mengubah salah satu kunci dalam file konfigurasi format INI Grafana dengan menggunakan huruf besar pada nama kunci dan menambahkan GF_
:
# INI file instance_name = my-grafana [security] admin_user = demo admin_password = grafana --- # Corresponding environment variables GF_DEFAULT_INSTANCE_NAME=my-grafana GF_SECURITY_ADMIN_USER=demo GF_SECURITY_ADMIN_PASSWORD=grafana
Pastikan Anda menyertakan DEFAULT
implicit implisit nama bagian saat Anda mengubah nilai variabel tingkat atas di file konfigurasi.
Setelah Anda menentukan nilai mana yang ingin Anda ubah, berikan variabel lingkungan yang benar dengan -e
tandai saat Anda memulai penampung:
docker run -d --name grafana -p 9000:3000 -e GF_DEFAULT_INSTANCE_NAME=my-grafana -e GF_SECURITY_ADMIN_USER=demo -e GF_SECURITY_ADMIN_PASSWORD=grafana -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
Grafana juga mendukung konfigurasi berbasis file. Dengan mekanisme ini, nilai variabel lingkungan target menjadi jalur ke file yang tersedia di dalam wadah. Grafana akan mendapatkan nilai sebenarnya dari pengaturan dengan membaca file.
Untuk menggunakan pendekatan ini, ubah variabel lingkungan apa pun dengan menambahkan akhiran __FILE
dengan nama biasa:
docker run -d --name grafana -p 9000:3000 -e GF_DEFAULT_INSTANCE_NAME=my-grafana -e GF_SECURITY_ADMIN_USER=demo -e GF_SECURITY_ADMIN_PASSWORD__FILE=/run/secrets/password -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
Anda dapat menambahkan file ke wadah menggunakan pengikatan (-v ./password.txt:/run/secrets/password
) atau sistem manajemen rahasia khusus seperti Rahasia Docker. Konfigurasi berbasis file menyediakan cara yang lebih aman untuk memasukkan nilai sensitif yang tidak ingin Anda tampilkan sebagai teks biasa di log tugas CI dan riwayat shell Anda.
Mengganti File Konfigurasi
Anda selalu dapat mengganti file konfigurasi di disk Grafana jika Anda mengubah terlalu banyak nilai agar variabel lingkungan menjadi nyaman.
Gambar Docker menempatkan file ini di /etc/grafana/grafana.ini
. Anda dapat memasang pengganti ke jalur yang diharapkan menggunakan pemasangan pengikat Docker:
docker run -d --name grafana -p 9000:3000 -v ./grafana.ini:/etc/grafana/grafana.ini -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
Menggunakan file konfigurasi memudahkan injeksi pengaturan yang lebih rumit. Anda dapat menginterpolasi variabel untuk membangun nilai dinamis. File konfigurasi juga mendukung komentar yang memungkinkan Anda mendokumentasikan niat Anda untuk membantu pengelola di masa mendatang.
Mengelola Plugin
Banyak instalasi Grafana memerlukan plugin yang menambahkan sumber data tambahan atau menyediakan panel dasbor yang sudah dibuat sebelumnya. Gambar Docker menyertakan utilitas pembantu yang memungkinkan Anda menambahkan plugin ke wadah baru dengan menyetel variabel lingkungan khusus.
Berikut cara menambahkan plugin resmi yang terdaftar di katalog Grafana:
docker run -d --name grafana -p 9000:3000 -e GF_INSTALL_PLUGINS=grafana-simple-json-datasource -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
GF_INSTALL_PLUGINS
variabel mengharapkan daftar nama plugin yang dipisahkan koma untuk diinstal saat penampung pertama kali dimulai. Nama-nama akan diteruskan ke grafana-cli plugins install
memerintah. Ini berarti Anda dapat menyertakan ekspresi versi, seperti grafana-simple-json-datasource 1.1.0
, dan referensi plugin komunitas melalui URL mereka:
docker run -d --name grafana -p 9000:3000 -e GF_INSTALL_PLUGINS=https://example.com/grafana-plugin.zip -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
Membuat Gambar Kustom
Memunculkan container Grafana secara manual dengan konfigurasi yang disediakan melalui docker run
flag berulang dan rawan kesalahan. Membangun image Docker Anda sendiri dengan modifikasi yang disertakan menghemat waktu dan memusatkan pengaturan ketika beberapa anggota tim harus dapat menjalankan instance baru.
Anda dapat mencapai ini dengan menulis Dockerfile yang memperluas grafana/grafana
resmi gambar. Ini memberi Anda kesempatan untuk menyalin dalam file konfigurasi khusus dan mengatur variabel lingkungan tambahan yang Anda butuhkan.
FROM grafana/grafana:8.3.0 # Add plugins ENV GF_INSTALL_PLUGINS=grafana-simple-json-datasource # Copy a config file from your working directory COPY grafana.ini /etc/grafana/grafana.ini
Gunakan Dockerfile Anda untuk membuat gambar Grafana baru Anda:
docker build -t custom-grafana:latest .
Sekarang Anda dapat memulai instance container yang telah dikonfigurasikan dari gambar Anda:
docker run -d --name grafana -p 9000:3000 -v grafana-data:/var/lib/grafana custom-grafana:latest
Pendekatan ini sangat berguna ketika Anda telah membuat modifikasi ekstensif pada lingkungan Grafana Anda. Anda sekarang dapat mereproduksi keandalan konfigurasi Anda setiap kali Anda memulai sebuah wadah. Ini juga membantu perubahan versi pada penginstalan Anda dari waktu ke waktu.
Salah satu kelemahannya adalah kebutuhan untuk membangun kembali gambar Anda ketika pembaruan Grafana hulu diterbitkan. Anda harus menarik grafana/grafana
secara berkala , docker build
gambar Anda, dorong ke registri, lalu tarik versi baru di Host Docker Anda. Tahap terakhir adalah membuat ulang container yang sedang berjalan sehingga mereka menggunakan gambar yang diperbarui.
Ringkasan
Docker menyederhanakan instalasi dan pengaturan Grafana dengan menyediakan lingkungan terisolasi di mana Anda dapat meng-host platform observabilitas Anda. Anda dapat dengan cepat memulai instans Grafana baru dengan mengikat port host, memasang volume data, dan menyediakan nilai konfigurasi melalui variabel lingkungan. Nanti Anda dapat merangkum konfigurasi Anda dalam gambar Anda sendiri yang dapat digunakan kembali yang dibangun di atas basis resmi.
Setelah aktif dan berjalan, instalasi Grafana Dockerized berfungsi seperti yang biasa. Anda dapat menghubungkan sumber data, berinteraksi dengan HTTP API, dan mengonfigurasi peringatan dengan mengarahkan ke port host yang Anda ikat ke penampung Anda. Anda juga dapat menetapkan nama domain untuk instance Anda dan menyiapkan HTTPS dengan menyajikannya di belakang proxy terbalik seperti Apache atau Traefik.