Memulai dengan Grafana Loki
Diterbitkan: 2021-05-01Mari pelajari dasar-dasar Grafana Loki, sistem agregasi log multi-penyewa.
Dalam lingkungan produksi, waktu henti tidak dapat diterima. Ini dapat menyebabkan kerugian besar dalam pendapatan dan reputasi bisnis. Tetapi jika Anda memiliki sistem pencatatan dan pemantauan yang tepat, Anda akan tahu cara men-debug skenario seperti itu, yang menyebabkan waktu henti.
Ini membantu dalam menghemat biaya dan mengidentifikasi masalah yang mungkin terjadi di masa depan.
Saat ini, setiap ukuran organisasi menggunakan prinsip dan alat DevOps. Container dan Kubernetes adalah yang paling populer. Dan pemantauan sistem semacam itu dilakukan dengan sangat efisien dengan Prometheus. Tetapi di mana Prometheus tertinggal adalah bagian logging. Itu tidak menyediakan sistem logging terpusat, dan di sinilah Loki muncul.
Apa itu Grafana Loki?
Grafana Loki adalah sistem agregasi log multi-penyewa yang dimulai oleh Grafana pada tahun 2018 dan dirilis di bawah lisensi Apache 2.0. Sistem ini dikembangkan dengan mendapatkan inspirasi dari Prometheus. Ini sebagian besar digunakan dengan penyedia cloud dan dengan alat-alat seperti Prometheus dan Grafana.
Loki mirip dengan tumpukan ELK/EFK, tetapi lebih mudah diatur dan dioperasikan dengan fungsionalitas yang lebih baik. Loki tidak mengindeks konten log, melainkan mengindeks stempel waktu dan satu set label untuk aliran log. Itu membuat indeks lebih kecil, yang menyederhanakan operasi dan akhirnya menurunkan biaya.
Manfaat Loki
Di bawah ini adalah manfaat menggunakan Loki di tumpukan Anda:
- Dengan hanya mengindeks metadata, Loki sangat hemat biaya. Menjalankan indeks untuk pemrosesan teks lengkap membutuhkan instans RAM yang lebih besar yang sangat mahal. Menyimpan log di toko objek seperti S3 juga membuatnya sangat murah.
- Ini mendukung multi-tenancy dengan menggunakan tenantID, sehingga data tenant disimpan secara terpisah.
- Anda dapat menjalankan Loki secara lokal untuk operasi skala kecil atau dengan mudah menskalakannya secara horizontal untuk operasi skala besar.
- Ini menggunakan gaya dinamo untuk memastikan konsistensi kuorum untuk operasi baca dan tulis.
- Secara default dikonfigurasi untuk memiliki 3 replika log untuk memenuhi risiko proses crash dan keluar tiba-tiba di mana log hilang. Ya, itu akan menimbulkan biaya tambahan tetapi tidak terlalu tinggi, integritas data lebih penting.
- Mudah dipasang dengan alat populer seperti Kubernetes, Prometheus, dan visualisasi di Grafana.
Arsitektur Loki

Arsitektur Loki memiliki tiga komponen – Promtail , Loki , dan Grafana .
Promtail adalah agen yang harus diinstal pada setiap node yang menjalankan aplikasi atau layanan Anda. Tanggung jawab utama Promtail adalah untuk menemukan target, melampirkan label ke aliran lo yang berasal dari pod dan mendorong log tersebut ke instance Loki. Promtail agen mengekor log dari sistem file lokal dan mendorong log ke server pusat Loki. Setelah ini, Anda dapat meminta kembali log Anda menggunakan Grafana.
Kasus Penggunaan Loki
Di bawah ini adalah kasus penggunaan populer untuk menggunakan sistem logging seperti Loki.
- Kecerdasan Bisnis: Ini adalah kasus penggunaan yang selalu hijau, menciptakan wawasan yang dapat ditindaklanjuti dari data log selalu bisa sangat berguna. Loki dapat membantu dalam memahami data log dan membuat Anda mampu membuat strategi baru untuk pertumbuhan bisnis. Misalnya, melalui data log suatu organisasi, ini dapat membantu Anda mengetahui tingkat konversi dari saluran periklanan.
- Pemantauan: Prometheus banyak digunakan di industri untuk pemantauan. Tetapi Anda dapat mengidentifikasi banyak hal dengan memantau log Anda dengan alat seperti Loki. Ini dapat membantu Anda memantau tingkat kesalahan di situs web Anda dengan menelusuri log dan mengirim peringatan setelah ambang batas dilewati.
- Debugging dan Pemecahan Masalah: Loki dapat membantu tim DevOps dengan beberapa jawaban cepat seperti kapan aplikasi mogok, alasan mogoknya, status terakhirnya sebelum mogok, dll.
- Keamanan Cyber: Dalam beberapa tahun terakhir, serangan cyber pada portal e-commerce telah meningkat secara eksponensial. Dengan bantuan Loki, Anda dapat memeriksa log untuk mengidentifikasi ancaman atau masalah atau aktivitas berbahaya yang terjadi di sistem organisasi Anda. Jika peretasan berhasil, Loki masih dapat membantu tim forensik untuk memahami apa yang terjadi dalam sistem secara detail. Ini akan membantu mereka dalam melacak kembali para peretas.
- Kepatuhan: Untuk mematuhi peraturan industri, organisasi harus menyimpan log audit mereka hingga 7 tahun. Otoritas lokal dapat mengaudit log kapan saja. Loki dapat menyimpan log audit Anda dengan aman.
Memasang Loki dan Promtail
Mari segera cari tahu cara menginstal dan memvisualisasikan log di Grafana. Dalam demonstrasi ini, saya akan menggunakan konfigurasi generik yang akan mengikis log dari /var/log/*log
Buka halaman rilis Loki, gulir ke bawah ke Aset, di sini Anda akan menemukan beberapa paket Loki dan Promtail. Download paket Loki sesuai dengan sistem yang Anda gunakan. Jangan mengunduh paket cli atau canary Loki. Saya mengunduh loki-linux-amd64.zip dan promtail-linux-amd64.zip untuk sistem Ubuntu saya.
Setelah pengunduhan selesai, ekstrak file Loki dan Promtail, dan letakkan dalam satu direktori.
[email protected]:~$ mkdir loki [email protected]:~$ mv loki-linux-amd64 promtail-linux-amd64 loki [email protected]:~$ cd loki/ [email protected]:~/loki$ ls loki-linux-amd64 promtail-linux-amd64Sekarang, unduh file konfigurasi umum Loki dan Promtail.
[email protected]:~/loki$ wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml --2021-04-30 12:00:51-- https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.110.133, 185.199.109.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1832 (1.8K) [text/plain] Saving to: 'loki-local-config.yaml' loki-local-config.yaml 100%[===============================================================================================>] 1.79K --.-KB/s in 0s 2021-04-30 12:00:51 (16.6 MB/s) - 'loki-local-config.yaml' saved [1832/1832] [email protected]:~/loki$ wget https://github.com/grafana/loki/blob/main/clients/cmd/promtail/promtail-local-config.yaml --2021-04-30 12:05:07-- https://github.com/grafana/loki/blob/main/clients/cmd/promtail/promtail-local-config.yaml Resolving github.com (github.com)... 13.234.210.38 Connecting to github.com (github.com)|13.234.210.38|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'promtail-local-config.yaml' promtail-local-config.yaml [ <=> ] 109.16K --.-KB/s in 0.002s 2021-04-30 12:05:08 (66.8 MB/s) - 'promtail-local-config.yaml' saved [111779] [email protected]:~/loki$ ls loki-linux-amd64 loki-local-config.yaml promtail-linux-amd64 promtail-local-config.yamlUntuk memulai Loki, jalankan perintah di bawah ini dengan file konfigurasi Loki. Ini akan memulai Loki dan menampilkan log Loki di terminal.
[email protected]:~/loki$ ./loki-linux-amd64 -config.file=loki-local-config.yaml level=info ts=2021-04-30T16:08:37.990311491Z caller=main.go:130 msg="Starting Loki" version="(version=2.2.1, branch=HEAD, revision=babea82e)" level=info ts=2021-04-30T16:08:37.990856871Z caller=server.go:229 http=[::]:3100 grpc=[::]:9096 msg="server listening on addresses" level=info ts=2021-04-30T16:08:37.991613443Z caller=shipper_index_client.go:100 msg="starting boltdb shipper in 0 mode" level=info ts=2021-04-30T16:08:37.992568288Z caller=mapper.go:38 msg="cleaning up mapped rules directory" path=/tmp/loki/rules-temp level=error ts=2021-04-30T16:08:37.992623632Z caller=mapper.go:42 msg="unable to read rules directory" path=/tmp/loki/rules-temp err="open /tmp/loki/rules-temp: no such file or directory" level=info ts=2021-04-30T16:08:37.993520927Z caller=table_manager.go:171 msg="uploading tables" level=info ts=2021-04-30T16:08:37.993941099Z caller=module_service.go:59 msg=initialising module=store level=info ts=2021-04-30T16:08:37.994011839Z caller=module_service.go:59 msg=initialising module=memberlist-kv level=info ts=2021-04-30T16:08:37.99412775Z caller=module_service.go:59 msg=initialising module=server level=info ts=2021-04-30T16:08:37.994379648Z caller=module_service.go:59 msg=initialising module=ingester level=info ts=2021-04-30T16:08:37.994415984Z caller=ingester.go:241 msg="recovering from checkpoint"Untuk memulai Promtail, jalankan perintah di bawah ini dengan file konfigurasi Promtail. Promtail diperlukan untuk memasukkan log ke Loki.

[email protected]:~/loki$ ./promtail-linux-amd64 -config.file=promtail-local-config.yaml level=info ts=2021-04-30T16:35:52.775998059Z caller=server.go:229 http=[::]:9080 grpc=[::]:42557 msg="server listening on addresses" level=info ts=2021-04-30T16:35:52.776283661Z caller=main.go:112 msg="Starting Promtail" version="(version=2.2.1, branch=HEAD, revision=babea82e)" level=info ts=2021-04-30T16:35:57.776226323Z caller=filetargetmanager.go:254 msg="Adding target" key="{job=\"varlogs\"}" ts=2021-04-30T16:35:57.776902427Z caller=log.go:124 level=info msg="Seeked /var/log/fontconfig.log - &{Offset:11055 Whence:0}" level=info ts=2021-04-30T16:35:57.776983546Z caller=tailer.go:125 component=tailer msg="tail routine: started" path=/var/log/auth.log level=info ts=2021-04-30T16:35:57.777009023Z caller=tailer.go:125 component=tailer msg="tail routine: started" path=/var/log/fontconfig.log ts=2021-04-30T16:35:57.777094698Z caller=log.go:124 level=info msg="Seeked /var/log/lastlog - &{Offset:0 Whence:0}" ts=2021-04-30T16:35:57.777712594Z caller=log.go:124 level=info msg="Seeked /var/log/apport.log - &{Offset:0 Whence:0}" ts=2021-04-30T16:35:57.778200383Z caller=log.go:124 level=info msg="Seeked /var/log/alternatives.log - &{Offset:456 Whence:0}" ts=2021-04-30T16:35:57.780467419Z caller=log.go:124 level=info msg="Seeked /var/log/syslog - &{Offset:56911 Whence:0}" level=info ts=2021-04-30T16:35:57.780646032Z caller=tailer.go:125 component=tailer msg="tail routine: started" path=/var/log/kern.log level=info ts=2021-04-30T16:35:57.781289004Z caller=filetargetmanager.go:254 msg="Adding target" key="{job=\"varlogs\"}" level=info ts=2021-04-30T16:35:57.787770104Z caller=tailer.go:125 component=tailer msg="tail routine: started" path=/var/log/grafana/grafana.log ts=2021-04-30T16:35:57.782276009Z caller=log.go:124 level=info msg="Seeked /var/log/grafana/grafana.log - &{Offset:0 Whence:0}"Visualisasikan Log menggunakan Loki dan Grafana
Grafana menyediakan dukungan bawaan untuk Loki. Loki sudah ada di sumber data Grafana.
Langkah 1: Buka Konfigurasi Grafana dan Klik "Sumber Data".

Langkah 2: Di Sumber Data, Anda dapat mencari sumber berdasarkan nama atau jenis.

Langkah 3: Cari dengan nama Loki. Anda dapat melihat sumber data ini sudah ada di Grafana. Klik Pilih.

Langkah 4: Masukkan nama yang ingin Anda berikan ke sumber data dan masukkan http://localhost:3100 (ubah ini ke IP server jika Loki berjalan di server yang berbeda dari Grafana) di URL karena kami telah memulai Loki di port 3100.

Klik tombol Uji dan Simpan di bagian bawah. Jika Anda telah melakukan pengaturan Loki dengan benar, Anda akan mendapatkan pesan di bawah ini yang ditampilkan dalam kotak hijau.

Langkah 5: Klik pada tab Jelajahi di sisi kiri. Pilih Loki dari dropdown pemilihan sumber data. Sekarang, saya ingin memvisualisasikan aktivitas log Grafana. Untuk melakukan ini, Anda perlu menambahkan kueri {filename="/var/log/grafana/grafana.log"} di Browser Log. Bilah hijau di bawah ini adalah entri peristiwa dalam file log.

Anda dapat memilih rentang waktu yang Anda inginkan untuk menampilkan visualisasi di dasbor, dan Anda juga dapat mengatur interval penyegaran kueri, setelah itu kueri akan dijalankan kembali. Untuk melihat lebih detail dari log, gulir ke bawah dan klik salah satu entri log, itu akan memberikan semua jenis informasi yang terkait dengan log.

Terlihat indah, bukan?
Jadi, itu semua tentang memulai. Saya sangat menyarankan Anda untuk melihat lebih lanjut video webinar di bawah ini yang menjelaskan observabilitas dengan Loki.
Kesimpulan
Sistem terdistribusi terdiri dari banyak aplikasi atau layanan mikro, masing-masing memiliki banyak log. Anda akan membutuhkan cara yang hemat biaya untuk mengumpulkan log, menyimpannya, dan kemudian menggunakannya. Loki adalah solusi sempurna untuk kasus seperti itu. Faktanya, Anda dapat mengurangi sekitar 75% dari biaya logging dan pemantauan Anda dengan mengintegrasikan Loki ke dalam lingkungan produksi Anda.
Loki juga tersedia melalui Grafana Cloud, ada baiknya untuk mencobanya jika tidak ingin melalui proses instalasi.
Selanjutnya, kenali Grafana Tempo.
