Tutorial: Memulai pemantauan dan pencatatan menggunakan Logz.io untuk aplikasi Java yang berjalan di Azure

Tutorial ini menunjukkan kepada Anda cara mengonfigurasi aplikasi Java klasik untuk mengirim log ke layanan Logz.io untuk penyerapan dan analisis. Logz.io menyediakan solusi pemantauan penuh berdasarkan Elasticsearch/Logstash/Kibana (ELK) dan Grafana.

Tutorial ini berasumsi bahwa Anda menggunakan Log4J atau Logback. Pustaka ini adalah dua yang paling banyak digunakan untuk masuk ke Java, sehingga tutorial harus berfungsi untuk sebagian besar aplikasi yang berjalan di Azure. Jika Anda telah menggunakan tumpukan Elastis untuk memantau aplikasi Java Anda, tutorial ini menunjukkan kepada Anda cara mengonfigurasi ulang untuk menargetkan titik akhir Logz.io.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Kirim log dari aplikasi Java yang ada ke Logz.io.
  • Kirim log diagnostik dan metrik dari layanan Azure ke Logz.io.

Prasyarat

Kirim log aplikasi Java ke Logz.io

Pertama, Anda akan mempelajari cara mengonfigurasi aplikasi Java dengan token yang memberikannya akses ke akun Logz.io Anda.

Dapatkan token akses Logz.io Anda

Untuk mendapatkan token Anda, masuk ke akun Logz.io Anda, pilih ikon cog di sudut kiri bawah, lalu pilih Pengaturan > Kelola token dan pilih tab Token pengiriman data. Salin token akses default yang ditampilkan, serta URL pendengar sehingga Anda dapat menggunakannya nanti.

Menginstal dan mengonfigurasi pustaka Logz.io untuk Log4J atau Logback

Pustaka Java Logz.io tersedia di Maven Central, sehingga Anda dapat menambahkannya sebagai dependensi ke konfigurasi aplikasi Anda. Periksa nomor versi di Maven Central dan gunakan versi terbaru dalam pengaturan konfigurasi berikut.

Jika Anda menggunakan Maven, tambahkan dependensi berikut ke file pom.xml Anda :

Log4J:

<dependency>
    <groupId>io.logz.log4j2</groupId>
    <artifactId>logzio-log4j2-appender</artifactId>
    <version>2.0.0</version>
</dependency>

Logback:

<dependency>
    <groupId>io.logz.logback</groupId>
    <artifactId>logzio-logback-appender</artifactId>
    <version>2.0.0</version>
</dependency>

Jika Anda menggunakan Gradle, tambahkan dependensi berikut ke skrip build Anda:

Log4J:

implementation 'io.logz.log4j:logzio-log4j-appender:2.0.0'

Logback:

implementation 'io.logz.logback:logzio-logback-appender:2.0.0'

Selanjutnya, perbarui file konfigurasi Log4J atau Logback Anda:

Log4J:

<Appenders>
    <LogzioAppender name="Logzio">
        <logzioToken><your-logz-io-token></logzioToken>
        <logzioType>java</logzioType>
        <logzioUrl>https://<your-logz-io-listener-host>:8071</logzioUrl>
    </LogzioAppender>
</Appenders>

<Loggers>
    <Root level="info">
        <AppenderRef ref="Logzio"/>
    </Root>
</Loggers>

Logback:

<configuration>
    <!-- Use shutdownHook so that we can close gracefully and finish the log drain -->
    <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
    <appender name="LogzioLogbackAppender" class="io.logz.logback.LogzioLogbackAppender">
        <token><your-logz-io-token></token>
        <logzioUrl>https://<your-logz-io-listener-host>:8071</logzioUrl>
        <logzioType>java</logzioType>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <root level="debug">
        <appender-ref ref="LogzioLogbackAppender"/>
    </root>
</configuration>

Ganti tempat penampung <your-logz-io-token> dengan token akses dan tempat penampung <your-logz-io-listener-host> dengan host pendengar wilayah Anda (misalnya, listener.logz.io). Untuk informasi selengkapnya tentang menemukan wilayah akun Anda, lihat Wilayah akun.

Elemen logzioType mengacu pada bidang logis dalam Elasticsearch yang digunakan untuk memisahkan dokumen yang berbeda satu sama lain. Sangat penting untuk mengonfigurasi parameter ini dengan benar guna mendapatkan hasil maksimal dari Logz.io.

"Jenis" Logz.io adalah format log Anda (misalnya: Apache, NGinx, MySQL) dan bukan sumber Anda (misalnya: server1, server2, server3). Untuk tutorial ini, kami memanggil jenisnya java karena kami mengonfigurasi aplikasi Java, dan kami berharap semua aplikasi tersebut akan memiliki format yang sama.

Untuk penggunaan lanjutan, Anda dapat mengelompokkan aplikasi Java Anda ke dalam berbagai jenis, yang semuanya memiliki format log khusus mereka sendiri (dapat dikonfigurasi dengan Log4J dan Logback). Misalnya, Anda dapat memiliki jenis "spring-boot-monolith" dan jenis "spring-boot-microservice".

Menguji konfigurasi dan analisis log Anda di Logz.io

Setelah pustaka Logz.io dikonfigurasi, aplikasi Anda sekarang harus mengirim log langsung ke sana. Untuk menguji bahwa semuanya berfungsi dengan benar, buka konsol Logz.io, pilih tab ekor Log Live>, lalu pilih jalankan. Anda akan melihat pesan yang mirip dengan yang berikut, memberi tahu Anda bahwa koneksi berfungsi:

Requesting Live Tail access...
Access granted. Opening connection...
Connected. Tailing...

Selanjutnya, mulai aplikasi Anda, atau gunakan untuk menghasilkan beberapa log. Log akan muncul langsung di layar Anda. Misalnya, berikut adalah pesan startup pertama dari aplikasi Spring Boot:

2019-09-19 12:54:40.685Z Starting JavaApp on javaapp-default-9-5cfcb8797f-dfp46 with PID 1 (/workspace/BOOT-INF/classes started by cnb in /workspace)
2019-09-19 12:54:40.686Z The following profiles are active: prod
2019-09-19 12:54:42.052Z Bootstrapping Spring Data repositories in DEFAULT mode.
2019-09-19 12:54:42.169Z Finished Spring Data repository scanning in 103ms. Found 6 repository interfaces.
2019-09-19 12:54:43.426Z Bean 'spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties' of type [org.springframework.boot.autoconfigure.task.TaskExecutionProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

Sekarang log Anda diproses oleh Logz.io, Anda bisa mendapatkan keuntungan dari semua layanan platform.

Mengirim data layanan Azure ke Logz.io

Selanjutnya Anda akan mempelajari cara mengirim log dan metrik dari sumber daya Azure Anda ke Logz.io.

Menyebarkan templat

Langkah pertama adalah menyebarkan Logz.io - templat integrasi Azure. Integrasi berdasarkan pada templat penyebaran Azure siap pakai yang menyiapkan semua blok bangunan alur yang diperlukan. Templat membuat namespace Event Hub, Event Hub, dua blob penyimpanan, dan semua izin dan koneksi yang benar yang diperlukan. Sumber daya yang disiapkan oleh penyebaran otomatis dapat mengumpulkan data untuk satu wilayah Azure dan mengirimkan data tersebut ke Logz.io.

Temukan tombol Sebarkan ke Azure yang ditampilkan di langkah pertama readme repo.

Saat Anda memilih Sebarkan ke Azure, halaman Penyebaran Kustom di portal Microsoft Azure akan muncul dengan daftar bidang yang telah diisi sebelumnya.

Anda dapat membiarkan sebagian besar bidang apa adanya tetapi pastikan untuk memasukkan pengaturan berikut:

  • Grub sumber daya: Pilih grup sumber daya yang sudah ada atau buat yang baru.
  • Log Logzio/Host Metrik: Masukkan URL pendengar Logz.io. Jika Anda tidak yakin terhadap URL ini, periksa URL masuk Anda. Jika URL tersebut app.logz.io, gunakan listener.logz.io (yang merupakan pengaturan default). Jika URL tersebut app-eu.logz.io, gunakan listener-eu.logz.io.
  • Log Logzio/Token Metrik: Masukkan token akun Logz.io yang ingin Anda kirimi log atau metrik Azure. Anda dapat menemukan token ini di halaman akun pada UI Logz.io.

Setujui persyaratan di bagian bawah halaman, dan pilih Beli. Azure kemudian akan menyebarkan templat, yang mungkin memakan waktu satu atau dua menit. Anda akhirnya akan melihat pesan "Penyebaran berhasil" di bagian atas portal.

Anda dapat mengunjungi grup sumber daya yang ditentukan untuk meninjau sumber daya yang disebarkan.

Guna mempelajari cara mengonfigurasi logzio-azure-serverless untuk mencadangkan data ke Azure Blob Storage, lihat Mengirimkan log aktivitas Azure.

Mengalirkan log dan metrik Azure ke Logz.io

Sekarang setelah Anda menyebarkan templat integrasi, Anda harus mengonfigurasi Azure untuk mengalirkan data diagnostik ke Event Hub yang baru saja Anda sebarkan. Ketika data masuk ke Event Hub, aplikasi fungsi kemudian akan meneruskan data tersebut ke Logz.io.

  1. Di bilah pencarian, ketik "Diagnostik", lalu pilih Pengaturan diagnostik.

  2. Pilih sumber daya dari daftar sumber daya, lalu pilih Tambahkan pengaturan diagnostik untuk membuka panel Pengaturan diagnostik untuk sumber daya tersebut.

    Diagnostics settings panel

  3. Beri nama pengaturan diagnostik Anda.

  4. Pilih Alirkan ke hub peristiwa, lalu pilih Konfigurasikan untuk membuka panel Pilih Event Hub.

  5. Pilih Event Hub Anda:

    • Pilih namespace hub peristiwa: Pilih namespace yang dimulai dengan Logzio (LogzioNS6nvkqdcci10p, misalnya).
    • Pilih nama hub peristiwa: Untuk log pilih insights-operational-logs dan untuk metrik pilih insights-operational-metrics.
    • Pilih nama kebijakan hub peristiwa: Pilih LogzioSharedAccessKey.
  6. Pilih OKE untuk kembali ke panel Pengaturan diagnostik.

  7. Di bagian Log, pilih data yang ingin Anda alirkan, lalu pilih Simpan.

Data yang dipilih sekarang akan mengalir ke Event Hub.

Memvisualisasikan data Anda

Selanjutnya, beri waktu beberapa saat untuk mendapatkan data dari sistem Anda ke Logz.io, lalu buka Kibana. Anda akan melihat data (dengan jenis eventhub) mengisi dasbor Anda. Untuk informasi selengkapnya tentang cara membuat dasbor, lihat Kibana - Buat Dasbor.

Dari sana, Anda dapat meminta data tertentu di tab Temukan, atau membuat objek Kibana untuk memvisualisasikan data Anda di tab Visualisasikan.

Membersihkan sumber daya

Bila Anda sudah selesai dengan sumber daya Azure yang Anda buat dalam tutorial ini, Anda bisa menghapusnya menggunakan perintah berikut:

az group delete --name <resource group>

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara mengonfigurasi aplikasi Java dan layanan Azure untuk mengirim log dan metrik ke Logz.io.

Selanjutnya, pelajari lebih lanjut tentang menggunakan Event Hub untuk memantau aplikasi Anda: