Anda dapat melihat log pekerjaan pada halaman insight pekerjaan di Konsol Flink atau mengekspornya ke layanan penyimpanan eksternal seperti OSS, SLS, atau Kafka serta mengonfigurasi tingkat log untuk output tersebut. Topik ini menjelaskan caranya.
Catatan
-
Setelah mengonfigurasi ekspor log ke OSS, SLS, atau Kafka, Anda harus melakukan restart pekerjaan.
-
Jika Anda mengonfigurasi ekspor log ke layanan penyimpanan lain tetapi tidak menonaktifkan fitur pengarsipan log, log akan tetap disimpan ke OSS atau penyimpanan yang dikelola sepenuhnya yang dikonfigurasi untuk ruang kerja Anda. Jika Anda menonaktifkan pengarsipan log, Anda tidak dapat lagi melihat log pekerjaan di Konsol Flink.
Pada halaman detail penerapan, di bagian konfigurasi log, gunakan toggle pada baris pengarsipan log untuk mengaktifkan atau menonaktifkan fitur ini.
-
Anda dapat menggunakan
${secret_values.xxxx}dalam konfigurasi log untuk mereferensikan variabel yang disimpan di manajemen variabel. Untuk informasi selengkapnya, lihat variabel proyek.
Konfigurasikan ekspor log pekerjaan tunggal
Konsol
-
Buka halaman konfigurasi log suatu penerapan.
-
Masuk ke Konsol Realtime Compute for Apache Flink.
-
Pada kolom Actions ruang kerja target, klik Console.
-
Di panel navigasi sebelah kiri, klik . Lalu, klik nama penerapan target.
-
Pada tab Configuration, di bagian Logging, klik Edit di sebelah kanan.
-
Untuk Logging Profile, pilih Custom Template.
-
-
Klik .
-
Klik Add Appender dan pilih destinasi.
-
Konfigurasikan parameter untuk appender yang dipilih.
Untuk mengarahkan log dengan tingkat berbeda ke destinasi berbeda, konfigurasikan aturan pemfilteran untuk appender tersebut. Untuk informasi selengkapnya, lihat Konfigurasikan pemfilteran log berdasarkan tingkat log.
SLS
Parameter
Deskripsi
name
Nama kustom untuk appender.
type
Jenis appender. Nilai ini tetap
SLS. Jangan ubah nilai ini.pattern
Format output untuk log.
Nilai default adalah
%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n, yang menghasilkan entri log seperti2023-10-01 14:23:45,678{GMT+8} INFO com.example.MyClass - This is a test log message.flushIntervalSeconds
Interval, dalam detik, saat data log di-flush ke destinasi.
flushIntervalEventCount
Jumlah entri log yang dibatch sebelum ditulis ke destinasi penyimpanan.
CatatanJika
flushIntervalSecondsdanflushIntervalEventCountkeduanya dikonfigurasi, operasi penulisan dipicu ketika salah satu ambang batas tercapai, mana yang lebih dulu.authenticationMode
-
AccessKey
-
SLS Token
CatatanJika Anda memilih SLS Token, Anda hanya dapat mengekspor log ke Logstore dalam Proyek yang berada di wilayah yang sama dengan ruang kerja Flink Anda. Fitur ini didukung hanya di VVR 11.5 dan versi setelahnya.
project
Nama Proyek SLS.
logStore
Nama Logstore.
endpoint
Titik akhir pribadi untuk wilayah layanan SLS. Untuk informasi selengkapnya, lihat Endpoints.
accessKeyId
ID AccessKey dan Rahasia AccessKey akun yang digunakan untuk layanan SLS. Untuk informasi tentang cara mendapatkan pasangan Kunci Akses, lihat Dapatkan pasangan Kunci Akses.
Untuk menghindari risiko keamanan penggunaan kunci dalam teks biasa, kami menyarankan menyimpan nilai AccessKey dalam variabel namespace. Untuk informasi selengkapnya, lihat Variabel namespace.
CatatanJika layanan SLS dan Realtime Compute for Apache Flink Anda berada di akun Alibaba Cloud yang berbeda, Anda harus memberikan izin kepada akun Flink untuk menulis ke SLS. Untuk detailnya, lihat Buat kebijakan RAM kustom. Berikut contoh kebijakannya:
accessKeySecret
OSS
Nilai default untuk parameter numerik adalah: flushIntervalSeconds bernilai
10, flushIntervalEventCount bernilai100, dan rollingBytes bernilai1048576.Parameter
Deskripsi
name
Nama kustom untuk appender.
type
Jenis appender. Nilai ini tetap
OSS. Jangan ubah nilai ini.pattern
Format output untuk log.
Nilai default adalah
%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n.baseUri
Nama bucket OSS.
endpoint
Titik akhir untuk wilayah layanan OSS Anda. Untuk informasi selengkapnya, lihat Wilayah dan titik akhir.
Gunakan titik akhir dari kolom Endpoint (region) yang sesuai dengan baris Access from ECS over the VPC (internal network).
accessKeyId
ID AccessKey dan Rahasia AccessKey akun yang digunakan untuk layanan OSS. Untuk informasi tentang cara mendapatkan pasangan Kunci Akses, lihat Dapatkan pasangan Kunci Akses.
Untuk menghindari risiko keamanan penggunaan kunci dalam teks biasa, kami menyarankan menyimpan nilai AccessKey dalam variabel namespace. Untuk informasi selengkapnya, lihat Variabel namespace.
CatatanParameter ini hanya diperlukan jika bucket OSS tujuan berada di akun Alibaba Cloud yang berbeda dengan layanan Flink Anda. Jika berada di akun yang sama, hapus parameter ini dari konfigurasi.
accessKeySecret
flushIntervalSeconds
Interval, dalam detik, saat data log di-flush ke destinasi.
flushIntervalEventCount
Jumlah entri log yang dibatch sebelum ditulis ke destinasi penyimpanan.
CatatanJika
flushIntervalSecondsdanflushIntervalEventCountkeduanya dikonfigurasi, operasi penulisan dipicu ketika salah satu ambang batas tercapai, mana yang lebih dulu.rollingBytes
Ukuran maksimum file log tunggal di OSS. Saat ukuran ini tercapai, data selanjutnya ditulis ke file log baru.
Kafka
CatatanKluster Kafka dengan otentikasi Kerberos yang diaktifkan tidak didukung.
-
Prasyarat
Karena plug-in KafkaAppender dimuat oleh class loader plug-in Flink, Anda harus secara eksplisit mendeklarasikan path paketnya dalam konfigurasi Flink agar aplikasi dapat memuat plug-in untuk penerapan saat ini.
Pada halaman Deployments, klik nama penerapan Anda. Pada tab Configuration, di bagian Additional Flink Configuration, tambahkan parameter berikut ke bidang Other Configuration.
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender -
Konfigurasi
Parameter
Deskripsi
name
Nama kustom untuk appender.
type
Jenis appender. Nilai ini tetap
KafkaVVP. Jangan ubah nilai ini.pattern
Format output untuk log.
Nilai default adalah
%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n.bootstrap.servers
Alamat broker Kafka.
acks
Jumlah replika partisi yang harus menerima pesan sebelum produsen menganggap penulisan berhasil. Untuk informasi selengkapnya, lihat acks.
buffer.memory
Total memori, dalam byte, yang dapat digunakan produsen untuk menyangga catatan.
retries
Jumlah kali produsen akan mencoba mengirim ulang pesan setelah kegagalan sementara.
compression.type
Jenis kompresi untuk data yang dihasilkan oleh produsen. Nilai yang valid:
none,gzip,snappy,lz4, danzstd.
-
-
Klik Save.
-
Di bagian atas halaman, klik Start.
Metode XML
-
Untuk mengonfigurasi logging untuk suatu penerapan, buka halaman konfigurasi log-nya.
-
Masuk ke Konsol Realtime Compute for Apache Flink.
-
Pada kolom Actions ruang kerja target, klik Console.
-
Di panel navigasi sebelah kiri, klik , lalu klik nama penerapan target.
-
Pada tab Deployment Details, di bagian Logging, klik Edit.
-
Atur Logging Profile menjadi Custom Template.
-
-
Konfigurasikan output log.
Bergantung pada destinasi penyimpanan Anda, salin konfigurasi yang sesuai, tempelkan ke kotak input, dan perbarui parameter dengan detail penyimpanan Anda. Untuk mengarahkan log dengan tingkat berbeda ke destinasi berbeda, Anda dapat mengonfigurasi aturan pemfilteran untuk setiap Appender. Untuk informasi selengkapnya, lihat Konfigurasikan output log untuk tingkat log berbeda.
OSS
<?xml version="1.0" encoding="UTF-8"?> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" packages="com.ververica.platform.logging.appender" status="WARN"> <Appenders> <Appender name="StdOut" type="Console"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> </Appender> <Appender name="RollingFile" type="RollingFile" fileName="${sys:log.file}" filePattern="${sys:log.file}.%i"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="20 MB"/> </Policies> <DefaultRolloverStrategy max="4"/> </Appender> <Appender name="OSS" type="OSS"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <!-- The final effective log path is: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ --> <Property name="namespace">{{ namespace }}</Property> <!-- Do not modify this line --> <Property name="baseUri">oss://YOUR-BUCKET-NAME/</Property> <Property name="endpoint">https://YOUR-ENDPOINT</Property> <Property name="accessKeyId">${secret_values.accessKeyId}</Property> <Property name="secretAccessKey">${secret_values.accessKeySecret}</Property> <Property name="flushIntervalSeconds">10</Property> <Property name="flushIntervalEventCount">100</Property> <Property name="rollingBytes">10485760</Property> </Appender> <Appender name="StdOutErrConsoleAppender" type="Console"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> </Appender> <Appender name="StdOutFileAppender" type="RollingFile" fileName="${sys:stdout.file}" filePattern="${sys:stdout.file}.%i"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="1 GB"/> </Policies> <DefaultRolloverStrategy max="2"/> </Appender> <Appender name="StdErrFileAppender" type="RollingFile" fileName="${sys:stderr.file}" filePattern="${sys:stderr.file}.%i"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="1 GB"/> </Policies> <DefaultRolloverStrategy max="2"/> </Appender> </Appenders> <Loggers> <Logger level="INFO" name="org.apache.hadoop"/> <Logger level="INFO" name="org.apache.kafka"/> <Logger level="INFO" name="org.apache.zookeeper"/> <Logger level="INFO" name="akka"/> <Logger level="ERROR" name="org.jboss.netty.channel.DefaultChannelPipeline"/> <Logger level="OFF" name="org.apache.flink.runtime.rest.handler.job.JobDetailsHandler"/> <Logger level="ERROR" name="org.apache.flink.fs.osshadoop.shaded.com.aliyun.oss"/> <Logger level="INFO" name="StdOutErrRedirector.StdOut" additivity="false"> <AppenderRef ref="StdOutFileAppender"/> <AppenderRef ref="StdOutErrConsoleAppender"/> </Logger> <Logger level="INFO" name="StdOutErrRedirector.StdErr" additivity="false"> <AppenderRef ref="StdErrFileAppender"/> <AppenderRef ref="StdOutErrConsoleAppender"/> </Logger> {%- for name, level in userConfiguredLoggers -%} <Logger level="{{ level }}" name="{{ name }}"/> {%- endfor -%} <Root level="{{ rootLoggerLogLevel }}"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <AppenderRef ref="OSS"/> </Root> </Loggers> </Configuration>Parameter
Deskripsi
YOUR-BUCKET-NAME
Ganti ini dengan nama bucket OSS Anda.
YOUR-ENDPOINT
Ganti ini dengan titik akhir OSS Anda. Untuk informasi selengkapnya, lihat Wilayah dan titik akhir.
Ini adalah nilai dari kolom Endpoint pada baris Access from ECS over the VPC (internal network).
YOUR-OSS-ACCESSKEYID
Gunakan ID AccessKey dan rahasia AccessKey untuk akun OSS Anda. Untuk informasi selengkapnya tentang cara mendapatkannya, lihat Dapatkan pasangan Kunci Akses.
Untuk menghindari paparan kredensial dalam teks biasa, contoh ini menggunakan variabel namespace untuk menentukan nilai AccessKey. Untuk informasi selengkapnya, lihat Variabel namespace.
CatatanParameter ini hanya diperlukan jika bucket OSS dan layanan Realtime Compute for Apache Flink Anda berada di akun yang berbeda. Jika bucket berada di akun yang sama, Anda dapat menghilangkan parameter ini.
YOUR-OSS-ACCESSKEYSECRET
flushIntervalSeconds
Interval saat data log ditulis ke destinasi penyimpanan, dalam detik.
flushIntervalEventCount
Jumlah entri log yang disangga sebelum data ditulis ke destinasi.
CatatanJika
flushIntervalSecondsdanflushIntervalEventCountkeduanya dikonfigurasi, operasi penulisan dipicu ketika salah satu ambang batas tercapai.rollingBytes
Ukuran maksimum untuk file log tunggal di OSS. Saat file mencapai ukuran ini, file log baru dibuat untuk log selanjutnya.
CatatanDalam pekerjaan JAR, kode bisnis dimuat oleh class loader terpisah yang berbeda dari class loader sistem logging Flink. Secara default, plug-in logging memvalidasi class loader secara ketat (
isInitStrictlydefault-nyatrue), sehingga log tersebut dilewati dan tidak diekspor ke OSS. Untuk mengumpulkan log yang dicetak oleh kode bisnis dalam pekerjaan JAR, tambahkan konfigurasi berikut ke Appender OSS:<Property name="isInitStrictly">false</Property>SLS
<?xml version="1.0" encoding="UTF-8"?> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" packages="com.ververica.platform.logging.appender" status="WARN"> <Appenders> <Appender name="StdOut" type="Console"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> </Appender> <Appender name="RollingFile" type="RollingFile" fileName="${sys:log.file}" filePattern="${sys:log.file}.%i"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="5 MB"/> </Policies> <DefaultRolloverStrategy max="1"/> </Appender> <Appender name="SLS" type="SLS"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <!-- The final effective log path is: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ --> <Property name="namespace">{{ namespace }}</Property> <!-- Do not modify this line --> <Property name="project">YOUR-SLS-PROJECT</Property> <Property name="logStore">YOUR-SLS-LOGSTORE</Property> <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> <Property name="accessKeyId">${secret_values.accessKeyId}</Property> <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property> <Property name="deploymentName">{{ deploymentName }}</Property> <Property name="flushIntervalSeconds">10</Property> <Property name="flushIntervalEventCount">100</Property> </Appender> <Appender name="StdOutErrConsoleAppender" type="Console"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> </Appender> <Appender name="StdOutFileAppender" type="RollingFile" fileName="${sys:stdout.file}" filePattern="${sys:stdout.file}.%i"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="1 GB"/> </Policies> <DefaultRolloverStrategy max="2"/> </Appender> <Appender name="StdErrFileAppender" type="RollingFile" fileName="${sys:stderr.file}" filePattern="${sys:stderr.file}.%i"> <Layout pattern="%m" type="PatternLayout" charset="UTF-8"/> <Policies> <SizeBasedTriggeringPolicy size="1 GB"/> </Policies> <DefaultRolloverStrategy max="2"/> </Appender> </Appenders> <Loggers> <Logger level="INFO" name="org.apache.hadoop"/> <Logger level="INFO" name="org.apache.kafka"/> <Logger level="INFO" name="org.apache.zookeeper"/> <Logger level="INFO" name="akka"/> <Logger level="ERROR" name="org.jboss.netty.channel.DefaultChannelPipeline"/> <Logger level="OFF" name="org.apache.flink.runtime.rest.handler.job.JobDetailsHandler"/> <Logger level="ERROR" name="org.apache.flink.fs.osshadoop.shaded.com.aliyun.oss"/> <Logger level="INFO" name="StdOutErrRedirector.StdOut" additivity="false"> <AppenderRef ref="StdOutFileAppender"/> <AppenderRef ref="StdOutErrConsoleAppender"/> </Logger> <Logger level="INFO" name="StdOutErrRedirector.StdErr" additivity="false"> <AppenderRef ref="StdErrFileAppender"/> <AppenderRef ref="StdOutErrConsoleAppender"/> </Logger> {%- for name, level in userConfiguredLoggers -%} <Logger level="{{ level }}" name="{{ name }}"/> {%- endfor -%} <Root level="{{ rootLoggerLogLevel }}"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <AppenderRef ref="SLS"/> </Root> </Loggers> </Configuration>CatatanProperti
namespace,deploymentId,jobId, dandeploymentNamedalam kode adalah variabel Twig. Jangan mengubahnya. Jika tidak, pekerjaan gagal dimulai.Parameter
Deskripsi
YOUR-SLS-PROJECT
Ganti ini dengan nama Proyek SLS Anda.
YOUR-SLS-LOGSTORE
Ganti ini dengan nama Logstore SLS Anda.
YOUR-SLS-ENDPOINT
Ganti ini dengan titik akhir pribadi untuk wilayah layanan SLS Anda. Untuk informasi selengkapnya, lihat Titik akhir layanan.
YOUR-SLS-ACCESSKEYID
Gunakan ID AccessKey dan rahasia AccessKey untuk akun SLS Anda. Untuk informasi selengkapnya tentang cara mendapatkannya, lihat Dapatkan pasangan Kunci Akses.
Untuk menghindari paparan kredensial dalam teks biasa, contoh ini menggunakan variabel namespace untuk menentukan nilai AccessKey. Untuk informasi selengkapnya, lihat Variabel namespace.
CatatanJika layanan SLS dan Realtime Compute for Apache Flink Anda berada di akun yang berbeda, Anda harus memberikan izin tulis akun Flink ke SLS. Untuk informasi selengkapnya, lihat Buat kebijakan RAM kustom. Gunakan salah satu kebijakan berikut:
-
Cakupan SLS tanpa batasan
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:Get*", "log:PostLogStoreLogs" ], "Resource": "*" } ] } -
Dibatasi ke sumber daya SLS tertentu. Contoh:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "log:PostLogStoreLogs", "log:GetLogStore" ], "Resource": "acs:log:cn-beijing:152940222687****:project/test-vvp-sls/logstore/test-ltest" } ] }
YOUR-SLS-ACCESSKEYSECRET
flushIntervalSeconds
Interval saat data log ditulis ke destinasi penyimpanan, dalam detik.
flushIntervalEventCount
Jumlah entri log yang disangga sebelum data ditulis ke destinasi.
CatatanJika
flushIntervalSecondsdanflushIntervalEventCountkeduanya dikonfigurasi, operasi penulisan dipicu ketika salah satu ambang batas tercapai.CatatanDalam pekerjaan JAR, kode bisnis dimuat oleh class loader terpisah yang berbeda dari class loader sistem logging Flink. Secara default, plug-in logging memvalidasi class loader secara ketat (
isInitStrictlydefault-nyatrue), sehingga log tersebut dilewati dan tidak diekspor ke SLS. Untuk mengumpulkan log yang dicetak oleh kode bisnis dalam pekerjaan JAR, tambahkan konfigurasi berikut ke Appender SLS:<Property name="isInitStrictly">false</Property>Kafka
CatatanOtentikasi Kerberos untuk kluster Kafka saat ini tidak didukung.
-
Prasyarat
Realtime Compute for Apache Flink menyediakan plug-in logging KafkaAppender. Karena Flink memuat plug-in ini menggunakan class loader plug-in, Anda harus secara eksplisit menentukan path paketnya agar aplikasi Anda dapat memuatnya dengan sukses. Anda dapat melakukannya dengan salah satu cara berikut:
-
Konfigurasikan templat pekerjaan (mempengaruhi semua penerapan di ruang kerja ini)
Pada halaman Configurations konsol, tambahkan kode berikut ke bidang other configuration.
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender -
Konfigurasikan penerapan tunggal (hanya mempengaruhi penerapan saat ini)
Pada halaman Deployments, klik nama penerapan target. Pada tab Deployment Details, di bagian Parameters, tambahkan kode berikut ke bidang other configuration.
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
-
-
Konfigurasi logging
<?xml version="1.0" encoding="UTF-8"?> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" packages="com.ververica.platform.logging.appender" status="WARN"> <Appenders> <Appender name="StdOut" type="Console"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout"/> </Appender> <Appender name="RollingFile" type="RollingFile" fileName="${sys:log.file}" filePattern="${sys:log.file}.%i"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout"/> <Policies> <SizeBasedTriggeringPolicy size="20 MB"/> </Policies> <DefaultRolloverStrategy max="4"/> </Appender> <Appender type="KafkaVVP" name="KafkaVVPAppender" topic="YOUR-TOPIC-NAME"> <Layout type="PatternLayout" pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n"/> <Property name="bootstrap.servers">YOUR-KAFKA-BOOTSTRAP-SERVERS</Property> <Property name="acks">YOUR-ACKS-VALUE</Property> <Property name="buffer.memory">YOUR-BUFFER-MEMORY-SIZE</Property> <Property name="retries">YOUR-RETRIES-NUMBER</Property> <Property name="compression.type">YOUR-COMPRESSION-TYPE</Property> </Appender> <Appender type="Async" name="AsyncAppender"> <AppenderRef ref="KafkaVVPAppender"/> </Appender> </Appenders> <Loggers> <Logger level="INFO" name="org.apache.hadoop"/> <Logger level="INFO" name="org.apache.kafka"/> <Logger level="INFO" name="org.apache.zookeeper"/> <Logger level="INFO" name="akka"/> <Logger level="ERROR" name="org.jboss.netty.channel.DefaultChannelPipeline"/> <Logger level="OFF" name="org.apache.flink.runtime.rest.handler.job.JobDetailsHandler"/> {%- for name, level in userConfiguredLoggers -%} <Logger level="{{ level }}" name="{{ name }}"/> {%- endfor -%} <Root level="{{ rootLoggerLogLevel }}"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <AppenderRef ref="AsyncAppender"/> </Root> </Loggers> </Configuration>Parameter
Deskripsi
YOUR-TOPIC-NAME
Nama topik Kafka tujuan.
YOUR-KAFKA-BOOTSTRAP-SERVERS
Alamat broker Kafka tujuan.
YOUR-ACKS-VALUE
Jumlah replika partisi yang harus mengakui pesan sebelum produsen menganggap penulisan berhasil. Untuk informasi selengkapnya, lihat acks.
YOUR-BUFFER-MEMORY-SIZE
Ukuran buffer produsen, dalam byte.
YOUR-RETRIES-NUMBER
Jumlah percobaan ulang setelah kegagalan pengiriman.
YOUR-COMPRESSION-TYPE
Jenis kompresi yang digunakan produsen untuk pesan. Nilai yang valid termasuk none, gzip, snappy, lz4, dan zstd.
-
-
Klik Save.
-
Klik Start di bagian atas halaman.
Konfigurasikan ekspor log untuk namespace
Anda dapat menggunakan templat untuk mengonfigurasi destinasi ekspor log default ke OSS, SLS, atau Kafka untuk semua pekerjaan dalam suatu namespace.
-
Setelah Anda mengonfigurasi templat ini, log dari semua pekerjaan baru di namespace ini akan diekspor ke OSS, SLS, atau Kafka.
-
Class loader plug-in Flink memuat plug-in log KafkaAppender yang disediakan oleh Realtime Compute for Apache Flink. Sebelum Anda dapat menggunakan plug-in ini, Anda harus menentukan path class-nya agar aplikasi Flink Anda dapat memuatnya. Untuk melakukannya, di Konsol pengembangan Realtime Compute for Apache Flink, buka halaman Configurations dan tambahkan kode berikut ke bagian Other Configuration.
plugin.classloader.parent-first-patterns.additional: com.ververica.platform.logging.appender
-
Buka halaman konfigurasi templat log pekerjaan.
-
Masuk ke Konsol Realtime Compute for Apache Flink.
-
Pada kolom Actions ruang kerja target, klik Console. Di Konsol pengembangan Realtime Compute for Apache Flink, pilih namespace target dari bagian atas halaman.
-
Di panel navigasi sebelah kiri, klik .
-
Pada tab Deployment Defaults, pilih jenis pekerjaan.
-
Di bagian Logging, atur Logging Profile menjadi Custom Template.
-
-
Konfigurasikan destinasi ekspor log untuk semua pekerjaan di namespace.
Untuk kode yang diperlukan, lihat Konfigurasikan ekspor log untuk pekerjaan tunggal (XML).
-
Klik save changes.
Konfigurasikan output log berbasis tingkat
Anda dapat menggunakan ThresholdFilter Log4j2 untuk mengonfigurasi aturan pemfilteran berbeda untuk setiap appender berdasarkan tingkat log. Konfigurasi ini menawarkan beberapa keunggulan:
-
Fleksibilitas: Anda dapat mengatur tingkat log berbeda untuk destinasi penyimpanan eksternal berbeda.
-
Efisiensi: Mengurangi pemrosesan dan transfer log yang tidak perlu, meningkatkan kinerja sistem.
-
Kejelasan: Konfigurasi terpisah memperjelas alur log dan menyederhanakan manajemen tingkat.
Ikuti langkah-langkah berikut:
-
Di bagian logging, atur Logging Profile menjadi Custom Template.
-
Konfigurasikan output log.
Contoh berikut menunjukkan cara mengonfigurasi sistem untuk mengirim log tingkat INFO dan lebih tinggi ke Konsol pengembangan Realtime Compute for Apache Flink, sementara hanya mengirim log tingkat ERROR dan lebih tinggi ke Simple Log Service (SLS).
<?xml version="1.0" encoding="UTF-8"?> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config" strict="true" status="WARN"> <Appenders> <!-- Console Appender configured to output logs of INFO level and higher --> <Appender name="StdOut" type="Console"> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <Layout type="PatternLayout" pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" charset="UTF-8"/> </Appender> <!-- RollingFile Appender logs messages at the root logger's level (INFO) and higher --> <Appender name="RollingFile" type="RollingFile"> <!-- Configuration remains unchanged --> <!-- ... --> </Appender> <!-- SLS Appender configured to output only ERROR level and above logs --> <Appender name="SLS" type="SLS"> <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/> <Layout type="PatternLayout" pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" charset="UTF-8"/> <!-- SLS specific properties --> <Property name="namespace">YOUR_NAMESPACE</Property> <Property name="project">YOUR_SLS_PROJECT</Property> <Property name="logStore">YOUR_SLS_LOGSTORE</Property> <Property name="endpoint">YOUR_SLS_ENDPOINT</Property> <!-- Access credentials and other properties --> <!-- ... --> </Appender> <!-- Other Appenders definitions remain unchanged --> <!-- ... --> </Appenders> <Loggers> <!-- Define specific loggers that use the StdOut and SLS appenders --> <Logger name="StdOutLogger" level="INFO" additivity="false"> <AppenderRef ref="StdOut"/> </Logger> <Logger name="SLSLogger" level="ERROR" additivity="false"> <AppenderRef ref="SLS"/> </Logger> <!-- Other Loggers definitions with their specific configurations --> <!-- ... --> <!-- The Root logger sends output to StdOut and RollingFile, but not SLS, to avoid duplicate logs. --> <Root level="INFO"> <AppenderRef ref="StdOut"/> <AppenderRef ref="RollingFile"/> <!-- Exclude SLS from Root to prevent duplicate logging in case of other loggers --> </Root> </Loggers> </Configuration>Dalam konfigurasi ini:
-
Console Appender: Menggunakan ThresholdFilter untuk memastikan bahwa log tingkat INFO atau lebih tinggi diekspor ke konsol pengembangan.
-
Appender SLS menggunakan
ThresholdFilteruntuk mengirim hanya log tingkat ERROR dan lebih tinggi ke SLS. Untuk detail properti Appender SLS, lihat Konfigurasikan Output ke SLS. Ganti placeholder sepertiYOUR_NAMESPACEdanYOUR_SLS_PROJECTdengan informasi proyek SLS aktual Anda.CatatanJika jenis Appender SLS bukan SLS tetapi appender kustom, pastikan Anda menggunakan jenis yang benar dan class appender memiliki logika yang diperlukan untuk terhubung ke SLS.
-
StdOutLogger dan SLSLogger: Masing-masing hanya mengirim log ke Appender StdOut dan Appender SLS, serta memiliki pembatasan tingkat log sendiri-sendiri.
-
Root Logger: Logger ini dikonfigurasi dengan Appender StdOut dan Appender RollingFile, tetapi tidak menyertakan Appender SLS. Hal ini untuk menghindari pengiriman log duplikat ke SLS jika logger tertentu sudah dikonfigurasi untuk melakukannya.
Untuk informasi selengkapnya tentang parameter konfigurasi Log4j, lihat Apache Log4j.
-
Topik terkait
-
Pekerjaan gagal dimulai setelah Anda mengonfigurasi logging ke SLS
-
Untuk melihat log pekerjaan, lihat Lihat log startup dan waktu proses.
-
Jika pekerjaan gagal dimulai atau berjalan tidak normal, lihat Lihat log exception.
-
Jika log tingkat
INFOtidak cukup untuk troubleshooting, lihat Ubah secara dinamis tingkat log pekerjaan yang sedang berjalan. -
Untuk melihat event audit Flink dengan ActionTrail, lihat Lihat event audit Flink.