Memantau data Azure Cache for Redis menggunakan pengaturan diagnostik
Artikel
Pengaturan diagnostik di Azure digunakan untuk mengumpulkan log sumber daya. Sumber daya Azure memancarkan log sumber daya dan menyediakan data yang kaya dan sering tentang pengoperasian sumber daya tersebut. Log ini diambil per permintaan dan juga disebut sebagai "log sarana data". Lihat pengaturan diagnostik di Azure Monitor untuk gambaran umum fungsionalitas yang direkomendasikan di Azure. Isi log ini bervariasi menurut jenis sumber daya. Di Azure Cache for Redis, dua opsi tersedia untuk dicatat:
Koneksi ion Logs mencatat koneksi ke cache untuk tujuan keamanan dan diagnostik.
Cakupan ketersediaan
Tingkat
Dasar, Standar, dan Premium
Enterprise dan Enterprise Flash
Metrik Cache
Ya
Ya
Log Koneksi ion
Ya
Ya
Metrik Cache
Azure Cache for Redis memancarkan banyak metrik seperti Beban Server dan Koneksi ion per Detik yang berguna untuk dicatat. Memilih opsi AllMetrics memungkinkan metrik ini dan cache lainnya dicatat. Anda dapat mengonfigurasi berapa lama metrik dipertahankan. Lihat di sini untuk contoh mengekspor metrik cache ke akun penyimpanan.
Log Koneksi ion
Azure Cache for Redis menggunakan pengaturan diagnostik Azure untuk mencatat informasi tentang koneksi klien ke cache Anda. Mencatat lalu menganalisis pengaturan diagnostik ini membantu Anda memahami siapa yang terhubung ke cache Anda dan memberi tanda waktu koneksi tersebut. Data log dapat digunakan untuk mengidentifikasi cakupan pelanggaran keamanan dan untuk tujuan audit keamanan.
Perbedaan Antara Tingkat Azure Cache for Redis
Implementasi log koneksi sedikit berbeda antara tingkatan:
Cache tingkat Dasar, Standar, dan Premium melakukan polling koneksi klien berdasarkan alamat IP, termasuk jumlah koneksi yang berasal dari setiap alamat IP unik. Log ini tidak kumulatif. Log mewakili rekam jepret point-in-time yang diambil dalam interval 10 detik. Peristiwa autentikasi (berhasil dan gagal) dan peristiwa pemutusan tidak dicatat di tingkat ini.
Cache Enterprise dan Enterprise Flash-tier menggunakan fungsionalitas peristiwa koneksi audit bawaan Redis Enterprise. Peristiwa koneksi audit memungkinkan setiap peristiwa koneksi, pemutusan, dan autentikasi dicatat, termasuk peristiwa autentikasi yang gagal.
Log koneksi yang dihasilkan terlihat mirip di antara tingkatan, tetapi memiliki beberapa perbedaan. Dua format ditampilkan secara lebih rinci nanti di artikel.
Penting
Pengelogan koneksi di tingkat Dasar, Standar, dan Premium melakukan polling koneksi klien saat ini di cache. Alamat IP klien yang sama muncul berulang kali. Pengelogan di tingkat Enterprise dan Enterprise Flash difokuskan pada setiap peristiwa koneksi. Log hanya terjadi ketika peristiwa aktual terjadi untuk pertama kalinya.
Prasyarat/Batasan Pengelogan Koneksi ion
Tingkat Dasar, Standar, dan Premium
Karena log koneksi di tingkat ini terdiri dari rekam jepret titik waktu yang diambil setiap 10 detik, koneksi yang dibuat dan dihapus dalam interval antara 10 detik tidak dicatat.
Peristiwa autentikasi tidak dicatat.
Semua pengaturan diagnostik mungkin memerlukan waktu hingga 90 menit untuk mulai mengalir ke tujuan yang Anda pilih.
Mengaktifkan log koneksi dapat menyebabkan penurunan performa kecil ke instans cache.
Hanya paket harga Log Analitik yang didukung saat streaming log ke Azure Log Analytics. Untuk informasi selengkapnya, lihat Harga Azure Monitor.
Tingkatan Enterprise dan Enterprise Flash
Saat Anda menggunakan Kebijakan Kluster OSS, log dipancarkan dari setiap simpul data. Saat Anda menggunakan Kebijakan Kluster Perusahaan, hanya simpul yang digunakan sebagai proksi yang memancarkan log. Kedua versi masih mencakup semua koneksi ke cache. Ini hanyalah perbedaan arsitektur.
Kehilangan data (yaitu, kehilangan peristiwa koneksi) jarang terjadi, tetapi mungkin. Kehilangan data biasanya disebabkan oleh masalah jaringan.
Log pemutusan belum sepenuhnya stabil dan peristiwa mungkin terlewatkan.
Karena log koneksi di tingkat Perusahaan berbasis peristiwa, berhati-hatilah terhadap kebijakan retensi Anda. Misalnya, jika retensi diatur ke 10 hari, dan peristiwa koneksi terjadi 15 hari yang lalu, koneksi tersebut mungkin masih ada, tetapi log untuk koneksi tersebut tidak dipertahankan.
Jika menggunakan replikasi geografis aktif, pengelogan harus dikonfigurasi untuk setiap instans cache dalam grup replikasi geografis satu per satu.
Semua pengaturan diagnostik mungkin memerlukan waktu hingga 90 menit untuk mulai mengalir ke tujuan yang Anda pilih.
Mengaktifkan log koneksi dapat menyebabkan penurunan performa kecil ke instans cache.
Saat memilih log, Anda dapat memilih grup Kategori atau Kategori tertentu, yang merupakan pengelompokan log yang telah ditentukan sebelumnya di seluruh layanan Azure. Saat menggunakan grup Kategori, Anda tidak dapat lagi mengonfigurasi pengaturan retensi. Jika Anda perlu menentukan durasi retensi untuk log koneksi Anda, pilih item di bagian Kategori sebagai gantinya.
Tujuan Log
Anda dapat mengaktifkan pengaturan diagnostik untuk instans Azure Cache for Redis dan mengirim log sumber daya ke tujuan berikut:
Ruang kerja Log Analytics - tidak perlu berada di wilayah yang sama dengan sumber daya yang dipantau.
Hub kejadian - pengaturan diagnostik tidak dapat mengakses sumber daya hub kejadian saat jaringan virtual diaktifkan. Aktifkan pengaturan Izinkan layanan Microsoft tepercaya untuk melewati firewall ini? di hub kejadian untuk memberikan akses ke sumber daya hub kejadian. Hub kejadian harus berada di wilayah yang sama dengan cache.
Solusi Mitra - daftar solusi pengelogan mitra potensial dapat ditemukan di sini
Untuk informasi selengkapnya tentang persyaratan diagnostik, lihat pengaturan diagnostik.
Anda dikenakan tarif data normal untuk akun penyimpanan dan penggunaan hub peristiwa saat mengirim log diagnostik ke salah satu tujuan. Anda ditagih di bawah Azure Monitor, bukan Azure Cache for Redis. Saat mengirim log ke Log Analytics, Anda hanya dikenakan biaya untuk penyerapan data Log Analytics.
Menavigasikan ke akun Azure Cache for Redis. Buka panel Pengaturan diagnostik di bawah bagian Pemantauan di sisi kiri. Kemudian pilih Tambahkan pengaturan diagnostik.
Di panel Pengaturan diagnostik, pilih Koneksi edClientList dari Kategori.
Untuk detail selengkapnya tentang data yang dicatat, lihat di bawah Konten Log Koneksi ion.
Setelah Anda memilih Koneksi edClientList, kirim log Anda ke tujuan pilihan Anda. Pilih informasi di panel kerja.
Menavigasikan ke akun Azure Cache for Redis. Buka panel Diagnostik Pengaturan - Audit di bawah bagian Pemantauan di sebelah kiri. Kemudian pilih Tambahkan pengaturan diagnostik.
Di panel Pengaturan Diagnostik - Audit, pilih peristiwaKoneksi dari Kategori.
Untuk detail selengkapnya tentang data yang dicatat, lihat di bawah Konten Log Koneksi ion.
Setelah Anda memilih peristiwa Koneksi ion, kirim log Anda ke tujuan pilihan Anda. Pilih informasi di panel kerja.
Mengaktifkan pengelogan koneksi menggunakan REST API
Gunakan Azure Monitor REST API untuk membuat pengaturan diagnostik melalui konsol interaktif. Untuk informasi selengkapnya, lihat Membuat atau memperbarui.
Permintaan
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview
Gunakan Azure Monitor REST API untuk membuat pengaturan diagnostik melalui konsol interaktif. Untuk informasi selengkapnya, lihat Membuat atau memperbarui.
Permintaan
PUT https://management.azure.com/{resourceUri}/providers/Microsoft.Insights/diagnosticSettings/{name}?api-version=2017-05-01-preview
az monitor diagnostic-settings create Gunakan perintah untuk membuat pengaturan diagnostik dengan Azure CLI. Untuk informasi selengkapnya tentang deskripsi perintah dan parameter, lihat Membuat pengaturan diagnostik untuk mengirim log dan metrik platform ke tujuan yang berbeda. Contoh ini menunjukkan cara menggunakan Azure CLI untuk mengalirkan data ke empat titik akhir yang berbeda:
az monitor diagnostic-settings create Gunakan perintah untuk membuat pengaturan diagnostik dengan Azure CLI. Untuk informasi selengkapnya tentang deskripsi perintah dan parameter, lihat Membuat pengaturan diagnostik untuk mengirim log dan metrik platform ke tujuan yang berbeda. Contoh ini menunjukkan cara menggunakan Azure CLI untuk mengalirkan data ke empat titik akhir yang berbeda:
Bidang dan properti ini muncul dalam kategori log ConnectedClientList. Di Azure Monitor, log dikumpulkan dalam tabel ACRConnectedClientList di bawah nama penyedia sumber daya MICROSOFT.CACHE.
Bidang atau properti Penyimpanan Azure
Solusi log Azure Monitor
Deskripsi
time
TimeGenerated
Tanda waktu dalam UTC pada saat log dihasilkan.
location
Location
Lokasi (wilayah) tempat instans Azure Cache for Redis diakses.
category
n/a
Kategori log yang tersedia: ConnectedClientList.
resourceId
_ResourceId
Sumber daya Azure Cache for Redis tempat log diaktifkan.
operationName
OperationName
Operasi Redis yang dikaitkan dengan catatan log.
properties
n/a
Konten bidang ini dijelaskan dalam baris berikut.
tenant
CacheName
Nama instans Azure Cache for Redis.
roleInstance
RoleInstance
Instans peran yang mencatat daftar klien.
connectedClients.ip
ClientIp
Alamat IP klien Redis.
connectedClients.privateLinkIpv6
PrivateLinkIpv6
Alamat IPv6 tautan privat klien Redis (jika ada).
connectedClients.count
ClientCount
Jumlah koneksi klien Redis dari alamat IP yang dikaitkan.
Sampel log akun penyimpanan
Jika Anda mengirim log ke akun penyimpanan, konten log akan terlihat seperti ini.
Bidang dan properti ini muncul dalam kategori log ConnectionEvents. Di Azure Monitor, log dikumpulkan dalam tabel REDConnectionEvents di bawah nama penyedia sumber daya MICROSOFT.CACHE.
Bidang atau properti Penyimpanan Azure
Solusi log Azure Monitor
Deskripsi
time
TimeGenerated
Tanda waktu (UTC) ketika log peristiwa diambil.
location
Location
Lokasi (wilayah) tempat instans Azure Cache for Redis diakses.
category
n/a
Kategori log yang tersedia: ConnectionEvents.
resourceId
_ResourceId
Sumber daya Azure Cache for Redis tempat log diaktifkan.
operationName
OperationName
Operasi Redis yang dikaitkan dengan catatan log.
properties
n/a
Konten bidang ini dijelaskan dalam baris berikut.
eventEpochTime
EventEpochTime
Tanda waktu UNIX (jumlah detik sejak 1 Januari 1970) ketika peristiwa terjadi di UTC. Tanda waktu dapat dikonversi ke format tanggalwaktu menggunakan fungsi unixtime_seconds_todatetime di ruang kerja analitik log.
clientIP
ClientIP
Alamat IP klien Redis. Jika menggunakan penyimpanan Azure, alamat IP adalah format IPv4 atau IPv6 tautan privat berdasarkan jenis cache. Jika menggunakan Analitik Log, hasilnya selalu ada di IPv4, karena bidang IPv6 terpisah disediakan.
n/a
PrivateLinkIPv6
Alamat IPv6 tautan privat klien Redis (hanya dipancarkan jika menggunakan Private Link dan analitik log).
id
ConnectionId
ID koneksi unik yang ditetapkan oleh Redis.
eventType
EventType
Jenis peristiwa koneksi (new_conn, auth, atau close_conn).
eventStatus
EventStatus
Hasil permintaan autentikasi sebagai kode status (hanya berlaku untuk peristiwa autentikasi).
Catatan
Jika tautan privat digunakan, hanya alamat IPv6 yang akan dicatat (kecuali Anda mengalirkan data ke analitik log). Anda dapat mengonversi alamat IPv6 ke alamat IPv4 yang setara dengan melihat empat byte data terakhir di alamat IPv6. Misalnya, dalam alamat IPv6 tautan privat "fd40:8913:31:6810:6c31:200:a01:104", empat byte terakhir dalam heksadesimal adalah "0a", "01", "01", dan "04". (Perhatikan bahwa nol di depan dihilangkan setelah setiap titik dua.) Ini sesuai dengan "10", "1", "1", dan "4" dalam desimal, memberi kita alamat IPv4 "10.1.1.4".
Sampel log akun penyimpanan
Jika Anda mengirim log ke akun penyimpanan, log untuk peristiwa koneksi terlihat seperti ini:
Untuk tutorial tentang cara menggunakan Azure Log Analytics, lihat Gambaran Umum Analitik Log di Azure Monitor. Ingatlah bahwa mungkin perlu waktu hingga 90 menit sebelum log muncul di Log Analtyics.
Berikut adalah beberapa kueri dasar untuk digunakan sebagai model.
Koneksi klien Azure Cache for Redis per jam dalam rentang alamat IP yang ditentukan:
let IpRange = "10.1.1.0/24";
ACRConnectedClientList
// For particular datetime filtering, add '| where TimeGenerated between (StartTime .. EndTime)'
| where ipv4_is_in_range(ClientIp, IpRange)
| summarize ConnectionCount = sum(ClientCount) by TimeRange = bin(TimeGenerated, 1h)
Alamat IP klien Redis unik yang telah terhubung ke cache:
ACRConnectedClientList
| summarize count() by ClientIp
Koneksi Azure Cache for Redis per jam dalam rentang alamat IP yang ditentukan:
REDConnectionEvents
// For particular datetime filtering, add '| where EventTime between (StartTime .. EndTime)'
// For particular IP range filtering, add '| where ipv4_is_in_range(ClientIp, IpRange)'
// IP range can be defined like this 'let IpRange = "10.1.1.0/24";' at the top of query.
| extend EventTime = unixtime_seconds_todatetime(EventEpochTime)
| where EventType == "new_conn"
| summarize ConnectionCount = count() by TimeRange = bin(EventTime, 1h)
Permintaan autentikasi Azure Cache for Redis per jam dalam rentang alamat IP yang ditentukan:
REDConnectionEvents
| extend EventTime = unixtime_seconds_todatetime(EventEpochTime)
// For particular datetime filtering, add '| where EventTime between (StartTime .. EndTime)'
// For particular IP range filtering, add '| where ipv4_is_in_range(ClientIp, IpRange)'
// IP range can be defined like this 'let IpRange = "10.1.1.0/24";' at the top of query.
| where EventType == "auth"
| summarize AuthencationRequestsCount = count() by TimeRange = bin(EventTime, 1h)
Alamat IP klien Redis unik yang telah terhubung ke cache:
REDConnectionEvents
// https://docs.redis.com/latest/rs/security/audit-events/#status-result-codes
// EventStatus :
// 0 AUTHENTICATION_FAILED - Invalid username and/or password.
// 1 AUTHENTICATION_FAILED_TOO_LONG - Username or password are too long.
// 2 AUTHENTICATION_NOT_REQUIRED - Client tried to authenticate, but authentication isn’t necessary.
// 3 AUTHENTICATION_DIRECTORY_PENDING - Attempting to receive authentication info from the directory in async mode.
// 4 AUTHENTICATION_DIRECTORY_ERROR - Authentication attempt failed because there was a directory connection error.
// 5 AUTHENTICATION_SYNCER_IN_PROGRESS - Syncer SASL handshake. Return SASL response and wait for the next request.
// 6 AUTHENTICATION_SYNCER_FAILED - Syncer SASL handshake. Returned SASL response and closed the connection.
// 7 AUTHENTICATION_SYNCER_OK - Syncer authenticated. Returned SASL response.
// 8 AUTHENTICATION_OK - Client successfully authenticated.
| where EventType == "auth" and EventStatus == 2 or EventStatus == 8 or EventStatus == 7
| summarize count() by ClientIp
Upaya autentikasi yang tidak berhasil ke cache
REDConnectionEvents
// https://docs.redis.com/latest/rs/security/audit-events/#status-result-codes
// EventStatus :
// 0 AUTHENTICATION_FAILED - Invalid username and/or password.
// 1 AUTHENTICATION_FAILED_TOO_LONG - Username or password are too long.
// 2 AUTHENTICATION_NOT_REQUIRED - Client tried to authenticate, but authentication isn’t necessary.
// 3 AUTHENTICATION_DIRECTORY_PENDING - Attempting to receive authentication info from the directory in async mode.
// 4 AUTHENTICATION_DIRECTORY_ERROR - Authentication attempt failed because there was a directory connection error.
// 5 AUTHENTICATION_SYNCER_IN_PROGRESS - Syncer SASL handshake. Return SASL response and wait for the next request.
// 6 AUTHENTICATION_SYNCER_FAILED - Syncer SASL handshake. Returned SASL response and closed the connection.
// 7 AUTHENTICATION_SYNCER_OK - Syncer authenticated. Returned SASL response.
// 8 AUTHENTICATION_OK - Client successfully authenticated.
| where EventType == "auth" and EventStatus != 2 and EventStatus != 8 and EventStatus != 7
| project ClientIp, EventStatus, ConnectionId