Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memecahkan masalah ActiveMQ di Amazon MQ
Gunakan informasi di bagian ini untuk membantu Anda mendiagnosis dan menyelesaikan masalah umum yang mungkin Anda temui saat bekerja dengan ActiveMQ di broker Amazon MQ.
Daftar Isi
Saya tidak dapat melihat log umum atau audit untuk broker saya di CloudWatch Log meskipun saya telah mengaktifkan logging.
Jika Anda tidak dapat melihat log untuk broker Anda di CloudWatch Log, lakukan hal berikut.
-
Periksa apakah pengguna yang membuat atau me-reboot broker memiliki
logs:CreateLogGroupizin. Jika Anda tidak menambahkanCreateLogGroupizin ke pengguna sebelum pengguna membuat atau me-reboot broker, Amazon MQ tidak akan membuat grup log. -
Periksa apakah Anda telah mengonfigurasi kebijakan berbasis sumber daya untuk mengizinkan Amazon MQ menerbitkan log ke Log. CloudWatch Untuk mengizinkan Amazon MQ menerbitkan log ke grup CloudWatch log Log Anda, konfigurasikan kebijakan berbasis sumber daya untuk memberikan akses Amazon MQ ke tindakan Logs API berikut: CloudWatch
-
CreateLogStream- Membuat aliran CloudWatch log log untuk grup log yang ditentukan. -
PutLogEvents— Mengirimkan peristiwa ke aliran CloudWatch log log yang ditentukan.
-
Untuk informasi selengkapnya tentang mengonfigurasi ActiveMQ di Amazon MQ untuk menerbitkan CloudWatch log ke Log, lihat Mengonfigurasi logging.
Setelah broker restart atau jendela pemeliharaan, saya tidak dapat terhubung ke broker saya meskipun statusnya BERJALAN. Kenapa?
Anda mungkin mengalami masalah koneksi setelah broker memulai ulang yang Anda mulai, setelah jendela pemeliharaan terjadwal selesai, atau dalam peristiwa kegagalan, di mana instance standby diaktifkan. Dalam kedua kasus tersebut, masalah koneksi setelah restart broker kemungkinan besar disebabkan oleh jumlah pesan yang luar biasa besar yang bertahan di volume penyimpanan Amazon EFS atau Amazon EBS broker Anda. Selama restart, Amazon MQ memindahkan pesan yang bertahan dari penyimpanan ke memori broker. Untuk mengkonfirmasi diagnosis ini, Anda dapat memantau metrik berikut untuk broker Amazon MQ CloudWatch untuk ActiveMQ Anda:
-
StoragePercentUsagePersentase besar pada atau mendekati 100 persen dapat menyebabkan broker menolak koneksi. -
JournalFilesForFullRecovery— Menunjukkan jumlah file jurnal yang akan diputar ulang setelah shutdown dan restart yang tidak bersih. Nilai yang meningkat, atau secara konsisten lebih tinggi dari satu, menunjukkan transaksi yang belum terselesaikan yang dapat menyebabkan masalah koneksi setelah restart. -
OpenTransactionCount— Angka yang lebih besar dari nol setelah restart menunjukkan bahwa broker akan mencoba untuk menyimpan pesan yang sebelumnya dikonsumsi, yang menyebabkan masalah koneksi.
Untuk mengatasi masalah ini, sebaiknya selesaikan transaksi XA Anda dengan a rollback() atau acommit(). Untuk informasi selengkapnya, dan untuk melihat contoh kode penyelesaian transaksi XA menggunakanrollback(), lihat memulihkan transaksi XA.
Saya melihat beberapa klien saya terhubung ke broker, sementara yang lain tidak dapat terhubung.
Jika broker Anda dalam RUNNING status dan beberapa klien dapat terhubung ke broker dengan sukses, sementara yang lain tidak dapat melakukannya, Anda mungkin telah mencapai batas koneksi untuk broker. Untuk broker ActiveMQ, ini adalah batas koneksi tingkat kabel. Untuk broker RabbitMQ, ini adalah batas koneksi per node yang ditentukan oleh jenis instance broker (lihat). Amazon MQ untuk pedoman ukuran RabbitMQ Untuk memverifikasi bahwa Anda telah mencapai batas koneksi, lakukan hal berikut:
-
ActiveMQ: Per iksa log broker umum untuk broker ActiveMQ Anda di Amazon MQ di Log. CloudWatch Jika batas telah tercapai, Anda akan melihat
Reached Maximum Connectionsdi log broker. Untuk informasi lebih lanjut tentang CloudWatch Log untuk ActiveMQ di broker Amazon MQ, lihat. Memahami struktur logging di CloudWatch Log -
RabbitMQ: Per iksa
ConnectionCountCloudWatch metrik untuk broker Anda. Jika nilainya sama dengan koneksi maksimum untuk jenis instans Anda, batasnya telah tercapai. Anda juga dapat memeriksa halaman Koneksi konsol web RabbitMQ untuk melihat jumlah koneksi saat ini per node.
Setelah batas koneksi tingkat kabel tercapai, broker akan secara aktif menolak koneksi masuk tambahan. Untuk mengatasi masalah ini, sebaiknya tingkatkan jenis instans broker Anda. Untuk informasi selengkapnya tentang memilih jenis instans terbaik untuk beban kerja Anda, lihatBroker instance types.
Jika Anda telah mengonfirmasi bahwa jumlah koneksi tingkat kabel Anda kurang dari batas koneksi broker, masalahnya mungkin terkait dengan me-reboot klien. Periksa log broker Anda untuk entri yang banyak dan sering... Inactive for longer than 600000 ms - removing .... Entri log menunjukkan me-reboot klien atau masalah konektivitas. Efek ini lebih jelas ketika klien terhubung ke broker melalui Network Load Balancer (NLB) dengan klien yang sering memutuskan sambungan dan terhubung kembali ke broker. Ini lebih sering diamati pada klien berbasis kontainer.
Periksa log sisi klien Anda untuk detail lebih lanjut. Broker akan membersihkan koneksi TCP yang tidak aktif setelah 600000 ms, dan membebaskan soket koneksi.
Saya melihat pengecualian org.apache.jasper. JasperException: Pengecualian terjadi memproses halaman JSP di konsol ActiveMQ saat melakukan operasi.
Jika Anda menggunakan otentikasi sederhana dan mengonfigurasi AuthorizationPlugin untuk otorisasi antrian dan topik, pastikan untuk menggunakan AuthorizationEntries elemen dalam file konfigurasi XML Anda, dan izinkan izin activemq-webconsole grup untuk semua antrian dan topik. Ini memastikan bahwa konsol web ActiveMQ dapat berkomunikasi dengan broker ActiveMQ.
Contoh berikut memberikan AuthorizationEntry izin baca dan tulis untuk semua antrian dan topik ke activemq-webconsole grup.
<authorizationEntries> <authorizationEntry admin="activemq-webconsole,admins,users" topic=">" read="activemq-webconsole,admins,users" write="activemq-webconsole,admins,users" /> <authorizationEntry admin="activemq-webconsole,admins,users" queue=">" read="activemq-webconsole,admins,users" write="activemq-webconsole,admins,users" /> </authorizationEntries>
Demikian pula saat mengintegrasikan broker Anda dengan LDAP, pastikan untuk memberikan izin untuk amazonmq-console-admins grup. Untuk informasi selengkapnya tentang integrasi LDAP, lihatCara kerja integrasi LDAP.