İzleme yoluyla Simple Log Service hizmetine iletilen olayları sorgulamak veya analiz etmek için gelişmiş olay sorgularında SQL deyimlerini kullanabilirsiniz.
Analitik deyimlerde dize kullanmak istiyorsanız dizeleri tek tırnak işareti ('') içine almanız gerekir. Tırnak içinde olmayan veya çift tırnak ("") içine alınan dizeler, alan adlarını veya sütun adlarını belirtir. Örneğin, 'status' ifadesi durum dizesini; status veya "status" ifadesi ise durum günlük alanını belirtir.
Örnekler
-
Tam metin sorgusu
Alan adı veya alan değeri gibi bir anahtar kelime belirtin.
Örnek:
DescribeInstancesanahtar kelimesini içeren olayları sorgulayın.DescribeInstances -
Özellik tabanlı tam eşleşme
Olay özelliğini
[Olay özelliği adı]:[Olay özelliği değeri]biçiminde belirtin. Adı ve değeri tam olarak girmelisiniz. Olay özellikleri hakkında daha fazla bilgi için bu konudaki Olay özellikleri bölümüne bakın.Örnek:
event.eventSourcedeğeriactiontrail.cn-hangzhou.aliyuncs.comolan olayları sorgulayın.event.eventSource: actiontrail.cn-hangzhou.aliyuncs.com -
Öznitelik tabanlı bulanık eşleşme
Olay özelliğini
[Olay özelliği adı]:[Olay özelliği değeri]biçiminde belirtin. Adı tam olarak girmelisiniz. Değer için birden fazla karakterle eşleşmek üzere yıldız işareti (*) veya tek bir karakterle eşleşmek üzere soru işareti (?) ekleyebilirsiniz.-
Örnek 1: Anahtar çifti tabanlı tüm erişim olaylarını sorgulayın.
event.userIdentity.accessKeyId: * -
Örnek 2:
event.eventSourcedeğeriactiontrailile başlayan olayları sorgulayın.event.eventSource: actiontrail*
-
-
Çok koşullu sorgu
Çok koşullu sorgu yapmak için parantezleri (
()) veANDya daORmantıksal operatörlerini kullanın.-
Örnek 1: Anahtar çifti tabanlı erişim hatalarına ilişkin tüm olayları sorgulayın.
event.errorCode: * AND event.userIdentity.accessKeyId: * -
Örnek 2:
event.eventNamedeğeriCreate,CreateInstanceveyaRunInstancesolan olayları sorgulayın.event.eventName: Create OR event.eventName: CreateInstance OR event.eventName: RunInstances -
Örnek 3:
event.serviceNamedeğerikafkave eventName değeriCreate,CreateInstanceveyaRunInstancesolan olayları sorgulayın.(event.serviceName: AliKafka AND ( event.eventName: Create OR event.eventName: CreateInstance OR event.eventName: RunInstances )
-
-
Toplama sorgusu
Simple Log Service hizmetinin toplama sorgusu sözdizimini kullanarak olaylar üzerinde toplama istatistikleri oluşturabilirsiniz. Örneğin, belirli alanlar üzerinde toplama istatistikleri oluşturmak için
GROUP BYyan tümcesini kullanabilirsiniz.-
Örnek 1: Bulut hizmeti bazında toplanan olay sayılarını sorgulayın.
* | SELECT "event.serviceName" AS service, COUNT(*) AS count FROM log GROUP BY "event.serviceName" -
Örnek 2: Kullanıcı ve bulut hizmeti bazında toplanan olay sayılarını sorgulayın.
* | SELECT "event.userIdentity.principalId" AS principalId, "event.serviceName" AS service, COUNT(*) AS count FROM log GROUP BY principalId,service
-
Olay özellikleri
Aşağıdaki tabloda ActionTrail tarafından desteklenen olay öznitelikleri açıklanmaktadır.
|
Kategori |
Olay özelliği adı |
Açıklama |
|
Operatör |
|
Alibaba Cloud hesap kimliği. |
|
|
Anahtar kimliği. |
|
|
|
İstekte bulunanın kimliği. |
|
|
|
Hesap türü. |
|
|
|
Kullanıcı adı. |
|
|
Eylem |
|
Hizmet adı. |
|
|
Okuma/yazma türü. |
|
|
|
Olay adı. |
|
|
|
Sürüm bilgileri. |
|
|
|
Hata mesajı. |
|
|
|
Hata kodu. |
|
|
İlişkili kaynak |
|
Kaynak türü. |
|
|
Kaynak adı. |
|
|
Konum |
|
Bölge. |
|
|
Olay kaynağı. |
|
|
|
Kaynak IP adresi. |
|
|
Diğerleri |
|
İstek kimliği. |
|
|
Olay kimliği. |
Toplama işlevleri
Aşağıdaki tabloda ActionTrail tarafından desteklenen toplama işlevleri açıklanmaktadır.
Parametre | Sözdizimi | Açıklama | SQL desteği | SPL desteği |
arbitrary(x) | x değerinden rastgele bir NULL olmayan değer döndürür. | √ | × | |
avg(x) | x değerinin aritmetik ortalamasını hesaplar. | √ | × | |
bitwise_and_agg(x) | x içindeki tüm değerlerin bitsel VE sonucunu döndürür. | √ | × | |
bitwise_or_agg(x) | x içindeki tüm değerlerin bitsel VEYA sonucunu döndürür. | √ | × | |
bool_and(boolean expression) | Tüm günlükler koşulu karşılıyorsa true döndürür.
| √ | × | |
bool_or(boolean expression) | En az bir günlük koşulu karşılıyorsa true döndürür. | √ | × | |
checksum(x) | x değerinin sağlama toplamını hesaplar. | √ | × | |
count(*) | Toplam günlük sayısını döndürür. | √ | × | |
count(1) |
| √ | × | |
count(x) | x değerinin NULL olmadığı günlük sayısını döndürür. | √ | × | |
count_if(boolean expression) | Belirtilen koşulu karşılayan günlük sayısını döndürür. | √ | × | |
every(boolean expression) | Tüm günlükler koşulu karşılıyorsa true döndürür.
| √ | × | |
geometric_mean(x) | x değerinin geometrik ortalamasını hesaplar. | √ | × | |
kurtosis(x) | x değerinin basıklığını hesaplar. | √ | × | |
map_union(x) | Bir sütundaki haritaların birleşimini döndürür. Bir anahtar birden fazla haritada varsa o anahtar için rastgele bir değer seçilir. | √ | × | |
max(x) | x içindeki maksimum değeri döndürür. | √ | × | |
max(x, n) | x içindeki en büyük n değeri bir dizi olarak döndürür. | √ | × | |
max_by(x, y) | y değerinin maksimum değeriyle ilişkili olan x değerini döndürür. | √ | × | |
max_by(x, y, n) | y değerinin en büyük n değerine karşılık gelen x değerlerinden oluşan bir dizi döndürür. | √ | × | |
min(x) | x içindeki minimum değeri döndürür. | √ | × | |
min(x, n) | x içindeki en küçük n değeri bir dizi olarak döndürür. | √ | × | |
min_by(x, y) | y değerinin minimum değeriyle ilişkili olan x değerini döndürür. | √ | × | |
min_by(x, y, n) | y değerinin en küçük n değerine karşılık gelen x değerlerinden oluşan bir dizi döndürür. | √ | × | |
skewness(x) | x değerinin çarpıklığını hesaplar. | √ | × | |
sum(x) | x değerinin toplamını hesaplar. | √ | × |
Ayrılmış sözcükler
Aşağıdaki kod bloğunda SQL deyimlerinde kullanılan tüm ayrılmış sözcükler gösterilmektedir:
AND
AS
BETWEEN
BY
CASE
CAST
CROSS
CUBE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
DISTINCT
ELSE
END
ESCAPE
EXCEPT
EXISTS
FROM
GROUP
GROUPING
HAVING
IN
INNER
INSERT
INTERSECT
INTO
IS
JOIN
LEFT
LIKE
LIMIT
LOCALTIME
LOCALTIMESTAMP
NATURAL
NOT
NULL
ON
OR
ORDER
OUTER
RIGHT
ROLLUP
SELECT
THEN
TRUE
UNION
UNNEST
VALUES
WHEN
WHERE
WITH