Data Management (DMS) işlem günlüklerini Simple Log Service'e (SLS) aktarın ve kullanıcı etkinliğini denetlemek için bu günlükleri sorgulayıp analiz edin.
Arka plan bilgileri
DMS işlem günlükleri; kullanıcı ayrıntıları, özellik modülleri, zaman damgaları, işlem türleri ve SQL deyimleri dahil olmak üzere tüm kullanıcı eylemlerinin ardışık kayıtlarıdır. Daha fazla bilgi için bkz. Günlük saklama süresi.
Önkoşullar
Etkinleştirilmiş bir Simple Log Service hesabınız olmalıdır. Daha fazla bilgi için bkz. Simple Log Service'i Etkinleştirme.
Bir Simple Log Service projesi ve Logstore oluşturmuş olmalısınız. Proje oluşturma. Logstore oluşturma.
Hedef Logstore boş olmalı ve tam metin dizini etkinleştirilmelidir. Dizinleri manuel olarak oluşturma.
Faturalandırma
DMS işlem günlüklerinin SLS'ye aktarılması ücretsizdir.
-
Günlükler SLS'de toplandıktan sonra Logstore faturalandırma yöntemine göre ücretlendirilirsiniz:
Logstore Özellik bazlı ödeme faturalandırma yöntemini kullanıyorsa depolama alanı, okuma trafiği, istekler, veri dönüştürme ve veri taşıma için ücretlendirilirsiniz. Daha fazla bilgi için bkz. faturalandırma belgeleri.
Logstore Alınan veri bazlı ödeme faturalandırma yöntemini kullanıyorsa alınan ham veri miktarı için ücretlendirilirsiniz. Daha fazla bilgi için bkz. faturalandırma belgeleri.
Kaynaklar
-
Özel Simple Log Service projeleri ve Logstore'lar
ÖnemliDMS işlem günlükleri için kullanılan SLS projesini ve Logstore'u silmeyin. Aksi takdirde günlük toplama işlemi durur.
Özel Logstore'lar, faturalandırma yöntemine bağlı olarak farklı faturalandırma öğeleri için ücretlendirilir.
-
Özel pano
Kullanılabilir özel bir pano yoktur.
Yordam
Adım 1: Projeyi DMS ile kaydetme
Yönetici olarak DMS konsolu V5.0 adresinde oturum açın.
-
Konsol ana sayfasında, Database Instances alanında
simgesine tıklayın.NotBasit modda DMS konsolunu kullanıyorsanız sol gezinme bölmesinde Database Instances seçeneğine tıklayın. Database Instances bölümünde
simgesine tıklayın. -
Add Instance sayfasında SLS bilgilerini girin.
Kategori
Parametre
Açıklama
Data Source
-
Alibaba Cloud seçin.
Basic Information
File and Log Storage
SLS'yi seçin.
Instance Region
SLS projenizin bulunduğu bölgeyi seçin.
Connection Method
Varsayılan: Bağlantı Dizesi Adresi.
Connection String Address
Bir Instance Region seçtikten sonra otomatik olarak oluşturulur.
Project name
SLS proje adınızı girin.
AccessKey ID
Kimlik doğrulaması için Alibaba Cloud AccessKey ID'nizi girin.
NotAccessKey ID'nin nasıl alınacağı hakkında daha fazla bilgi için bkz. AccessKey oluşturma.
AccessKey Secret
Yukarıdaki AccessKey ID'sine ait AccessKey secret değerini girin.
NotAccessKey secret değerinin nasıl alınacağı hakkında daha fazla bilgi için bkz. AccessKey oluşturma.
Advanced Feature Pack
Desteklenmez. Varsayılan olarak Esnek Yönetim modu kullanılır.
Advanced Information
Environment Type
Bir ortam türü seçin: Dev, Test, Production, Pre-release, SIT, UAT, Stress Testing veya STAG. Örnek ortam türleri.
Instance Name
DMS'deki SLS projesi için özel görünen ad.
NotÖrnek adını daha sonra değiştirebilirsiniz. Örnek bilgilerini düzenleme.
DBA
Örnek için bir DBA seçin. DBA, izin başvuruları gibi sonraki işlemleri yönetir.
Query Timeout (s)
Veritabanını korumak amacıyla sorgu deyimlerinin yürütme süresini kontrol eden bir güvenlik ilkesi.
Export Timeout (s)(s)
Veritabanını korumak amacıyla dışa aktarma deyimlerinin yürütme süresini kontrol eden bir güvenlik ilkesi.
NotTemel bilgileri yapılandırdıktan sonra sayfanın alt kısmındaki Test Connection düğmesine tıklayın ve testin başarılı olmasını bekleyin.
"The execution result of the 'getProject' command is null" hata iletisi görünürse projenin DMS'de oturum açmak için kullandığınız Alibaba Cloud hesabı tarafından oluşturulduğunu onaylayın.
Submit seçeneğine tıklayın.
Adım 2: İşlem günlüklerini dışa aktarmak için DMS içinde görev oluşturma
DMS 5.0 adresinde oturum açın.
-
Sol üst köşedeki
simgesinin üzerine gelin ve seçeneklerini belirleyin.NotNormal modda DMS konsolunu kullanıyorsanız üst gezinme çubuğunda seçeneklerini belirleyin.
Export logs sekmesine tıklayın. Ardından sağ üst köşede New Task seçeneğine tıklayın.
-
New Export Task iletişim kutusunda aşağıdaki parametreleri yapılandırın.
Parametre
Gerekli
Açıklama
Görev Adı
Evet
Dışa aktarma görevinin adı. Kolay tanımlama için açıklayıcı bir ad kullanın.
Destination Log Service
Evet
Günlük depolama için kullanılan bir kaynak yönetim birimi olan Simple Log Service projesi.
SLS Logstore
Evet
Dışa aktarılan DMS işlem günlükleri için Logstore. Giriş kutusuna tıklayın ve hedef Logstore'u seçin.
NotHedef Logstore açılır listede yoksa Sync Dictionary seçeneğine tıklayın ve ardından OK seçeneğine tıklayın. DMS, Logstore'un meta verilerini otomatik olarak toplar.
Feature Module
Evet
Günlüklerini dışa aktarmak istediğiniz DMS özellik modüllerini seçin. Bu modüller, Operation Logs sekmesindeki modüllere karşılık gelir. Modüller arasında örnek yönetimi, kullanıcı yönetimi, izinler ve SQL Penceresi'nde veri sorgulama gibi özellikler bulunur. Varsayılan olarak All Features günlükleri dışa aktarılır.
Scheduling Method
Evet
Görev için bir zamanlama yöntemi seçin.
-
One-time Tasks: Dışa aktarma görevi oluşturulduktan sonra yalnızca bir kez çalıştırılır.
-
Periodic Tasks: Günlükleri döngüsel olarak birden çok kez Logstore'a aktarmak için Day, Week veya Month seçebilirsiniz. Yinelenen bir görev ilk çalıştığında günlük başlangıç zamanından ilk planlanan başlangıç zamanına kadar oluşturulan tüm DMS işlem günlüklerini dışa aktarır. Sonraki çalıştırmalar yalnızca artımlı günlükleri dışa aktarır. Daha fazla bilgi için bkz. Yinelenen zamanlama.
Log Time Range
Hayır
NotBu parametre yalnızca Scheduling Method ayarını One-time Tasks olarak yaptığınızda kullanılabilir.
Günlük dışa aktarma için zaman aralığı. Varsayılan: son üç yıl.
Log Start Time
Hayır
Not-
Bu parametre yalnızca Scheduling Method ayarını Periodic Tasks olarak yaptığınızda kullanılabilir.
-
Periyodik görevlerin bitiş zamanı yoktur.
Günlük kayıtları için başlangıç zamanı. Varsayılan: görev oluşturulmasından üç yıl önce.
-
-
OK seçeneğine tıklayın. Bir günlük dışa aktarma görevi oluşturulur. Sistem ayrıca sonraki veri sorguları ve analizi için Logstore'unuzda dbId, dbName ve dbUser gibi dizin alanları da oluşturur.
-
Tek seferlik bir görev günlükleri yalnızca bir kez dışa aktarır. Görev durumu Successful olduğunda günlükler dışa aktarılmış demektir.
NotLogstore dizini gecikmesi nedeniyle tek seferlik görevler oluşturulduktan yaklaşık 90 saniye sonra başlar.
Periyodik bir görev günlükleri birden çok kez dışa aktarır. Durum, her dışa aktarmadan önce ve sonra Pending Scheduling olarak gösterilir. Bir çalıştırmanın başarılı olup olmadığını kontrol etmek için görev günlüklerini görüntüleyin.
Actions sütununda aşağıdaki işlemleri de yapabilirsiniz:
Query: Query seçeneğine tıklayın. SQL Console sayfasına yönlendirilirsiniz. Query seçeneğine tıklayın. Sayfanın alt kısmındaki yürütme sonucu bölümünde Logstore'a aktarılan günlükleri görüntüleyebilirsiniz.
Task Logs: Görev başlangıç ve bitiş zamanları, teslim edilen günlük sayısı ve görev durumu gibi bilgileri görüntülemek için Task Logs seçeneğine tıklayın.
Pause: Pause seçeneğine tıklayın. Görüntülenen iletişim kutusunda OK seçeneğine tıklayın. Yinelenen görev duraklatılır.
-
Restart: Restart seçeneğine tıklayın. Görüntülenen iletişim kutusunda duraklatılmış periyodik bir görevi yeniden başlatmak için OK seçeneğine tıklayın.
NotYeniden başlatma işlemi tek seferlik görevler için desteklenmez. Ancak diğer işlemler desteklenir.
Sorgulama ve duraklatma gibi tüm işlemler periyodik görevler için desteklenir.
-
Adım 3: Dışa aktarılan DMS işlem günlüklerini SLS konsolunda sorgulama ve analiz etme
Simple Log Service konsolunda oturum açın.
-
Projects bölümünde istediğiniz projeye tıklayın.

-
sekmesinde istediğiniz logstore'a tıklayın.

-
Arama kutusuna bir sorgu ve analiz deyimi girin.
Bir sorgu ve analiz deyimi,
Search statement|Analytic statementbiçiminde bir arama deyimi ve bir analiz deyiminden oluşur. Söz dizimi hakkında daha fazla bilgi için bkz. Arama söz dizimi ve işlevleri ve SQL analiz işlevleri.SLS'de aşağıdaki bilgileri sorgulayabilir ve analiz edebilirsiniz:
Notdmstest Logstore'u örnek olarak kullanılmıştır.
-
Bir veritabanında en sık oturum açma hatası alan kullanıcılar.
__topic__ : DMS_LOG_DELIVERY AND subModule : LOGIN | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest WHERE state = '0' GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10; -
Anormal kaynak IP adresine sahip kullanıcılar. Örnek olarak 127.0.0.1 IP adresi kullanılmıştır.
NotBir örneğin kaynak IP adresi, örneği DMS ile kaydederken kullandığınız yerel IP adresinizdir. Bu adres, örnek erişiminin kaynağını tanımlar.
__topic__ : DMS_LOG_DELIVERY | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest WHERE state = '0' and requestIp in ('127.0.0.1') GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10; -
DMS'e en sık erişen kullanıcı.
__topic__ : DMS_LOG_DELIVERY| SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10; -
Aynı gün içinde birden çok veritabanına erişen ve işlem yapan kullanıcılar.
__topic__: DMS_LOG_DELIVERY | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, date_trunc('day', gmtCreate) time, dbId, COUNT(*) qpd from dmstest GROUP BY time, operUserId, operUserName, dbId ORDER BY time, qpd DESC; -
DMS'de veritabanı işlemlerini gerçekleştiremeyen kullanıcılar.
__topic__ : DMS_LOG_DELIVERY AND moudleName : SQL_CONSOLE | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, actionDesc as sqlStatement, subModule as sqlType, remark as failReason FROM dmstest WHERE state = '-1' order by id; -
Hassas verileri en sık indiren kullanıcılar.
__topic__ : DMS_LOG_DELIVERY AND moudleName : DATA_EXPORT | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest WHERE hasSensitiveData = 'true' GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10; -
Hassas verileri silme ve güncelleme gibi toplu işlemler için çalıştırılan SQL deyimleri.
__topic__ : DMS_LOG_DELIVERY | SELECT subModule, COUNT(*) cnt, COUNT(affectRows) affectRow FROM dmstest WHERE subModule != '' GROUP BY subModule ORDER BY cnt DESC; -
Veri dışa aktarma sırasında veri filigranı özelliğinin etkin olup olmadığı.
__topic__ : DMS_LOG_DELIVERY AND moudleName : DATA_EXPORT | SELECT targetId as orderId, concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest where actionDesc like '%Enable data watermark: false' GROUP BY targetId, operUserId, operUserName ORDER BY cnt DESC LIMIT 10;NotVeri filigranı özelliğini etkinleştiren kullanıcıları sorgulamak için şu deyimi kullanın:
'%Enable data watermark: true'.Veri filigranı özelliğini devre dışı bırakan kullanıcıları sorgulamak için şu deyimi kullanın:
'%Enable data watermark: false'.
-
SQL Console sayfasının yürütme sonucu bölümünden SQL sonuç kümelerini indiren kullanıcılar.
__topic__ : DMS_LOG_DELIVERY AND moudleName : SQL_CONSOLE_EXPORT | SELECT concat(cast(operUserId as varchar), '(', operUserName, ')') user, COUNT(*) cnt FROM dmstest GROUP BY operUserId, operUserName ORDER BY cnt DESC LIMIT 10;
-
(İsteğe bağlı) Adım 4: Yinelenen görevi duraklatma
Adım 2 bölümünde yinelenen bir görev oluşturduysanız (Scheduling Method ayarı Periodic Tasks olarak ayarlanmış) ve DMS işlem günlüklerinin analizini tamamladıysanız görevi duraklatabilirsiniz.
DMS 5.0 adresinde oturum açın.
-
Sol üst köşedeki
simgesinin üzerine gelin ve seçeneklerini belirleyin.NotNormal modda DMS konsolunu kullanıyorsanız üst gezinme çubuğunda seçeneklerini belirleyin.
Export Logs sekmesine tıklayın.
Yinelenen görevin Actions sütununda Pause seçeneğine tıklayın.
Görüntülenen iletişim kutusunda OK seçeneğine tıklayın.
Sonraki adımlar
Dışa aktarma görevi tamamlandığında veya duraklatıldığında SLS projesi otomatik olarak silinmez. Gereksiz ücretlendirmelerden kaçınmak için analizlerinizi tamamladıktan sonra Simple Log Service konsoluna gidin ve günlük dışa aktarma için seçtiğiniz projeyi silin.
SLS'deki ham günlük alanları
SLS'ye aktarılan DMS işlem günlüklerindeki temel alanlar:
|
Alan |
Açıklama |
|
id |
Günlüğün benzersiz kimliği. |
|
gmt_create |
Günlüğün oluşturulma zamanı. |
|
gmt_modified |
Günlüğün değiştirilme zamanı. |
|
oper_user_id |
İşlemi gerçekleştiren kullanıcının kimliği. |
|
oper_user_name |
İşlemi gerçekleştiren kullanıcının adı. |
|
module_name |
Dışa aktarılan özellik modülü:
|
|
sub_module |
Alt özellik modülü. Örneğin, SQL_CONSOLE için alt modül, kullanıcının çalıştırdığı SQL deyiminin türünü ifade eder. |
|
db_id |
İşlemin gerçekleştirildiği veritabanının kimliği. Bu, DMS'deki kimliktir. |
|
db_name |
İşlemin gerçekleştirildiği veritabanının adı. |
|
is_logic_db |
Veritabanının mantıksal bir veritabanı olup olmadığını belirtir. |
|
instance_id |
İşlemin gerçekleştirildiği örneğin kimliği. Bu, DMS'deki kimliktir. |
|
instance_name |
İşlemin gerçekleştirildiği örneğin adı. |
|
action_desc |
İşlemin açıklaması. |
|
remark |
Açıklamalar. |
|
has_sensitive_data |
Günlüğün hassas bilgi içerip içermediğini belirtir. |