*Kural örnek yapılandırma dosyasında ilgili yerlerde değişiklik yapıp, eklenmesi gerekenler eklenmiştir.
Any ( Verilen herhangi bir filtreleme ile eşleştiğinde alert oluşur. )
…
name: log_any
type: any
..
filter:
- query:
query_string:
query: "version:1"
version alanı 1 olan tüm sorgular için alert oluşturur.
Frequency( Belli bir zaman diliminde olayların en az belli bir sayıda eşleşme olduğunda alert oluşur.)
name: log_error
type: frequency
num_events: 1
timeframe:
minutes: 1
filter:
- query:
query_string:
query: "level:ERROR"
Eğer bir dakikada log seviyesi Error olan bir log varsa alert oluşturur.
Flatline ( Belli bir zamanda eşleşen sorgu sayısının verilen eşik değerinden az olmasıyla alert oluşturur. )
name: log_flatline
type: flatline
threshold: 5 // ‘den fazla olunca eşleşmiyor.
timeframe:
minute: 1
filter:
- query:
query_string:
query: "version:1"
version değeri 1 olan sorgular 1 dakikadan 5 den az ise alert oluşturur.
Blaclist ( liste’de var ise alert oluşturur. )
name: log_blacklist
type: blacklist //içerirse eşleşir.
blacklist:
“message” //aranacak kelime
compare_key: message //aranacak yer
Eğer message kelimesi logların message alanında geçiyorsa alert oluşturur.
Whitelist ( Verilen değer listedeki alanla eşleşmiyorsa alert oluşturur. )
name: log_whitelist
type: whitelist
whitelist:
“infoowl” //liste bunu içermiyorsa eşleşir
compare_key: message
ignore_null: True olduğunda compare_key olanı olmadan eşleşme yapmıyor
Eğer infoowl kelimesi logların message alanında geçmiyorsa alert oluşturur.
Cardinality ( Belli bir zamanda belirli alandaki benzersiz değerlerin sayısı verilen eşik değerinden düşükse alert oluşturur. )
name: log_cardinality
type: cardinality
cardinality_field: “host”
min_cardinality: 5
timeframe:
minutes: 1
loglardaki host alanında oluşan benzersiz değerler bir dakikada 5’den düşükse alert oluşturur.
Change ( Bir alan bir süre içerisinde iki farklı değere sahip olduğunda alert oluşturulur. )
name: log_change
type: change
compare_key: message //değişikliğin kontrol edileceği alan
ignore_null: True olduğunda compare_key olanı olmadan eşleşme yapmıyor
query_key: host (kontrol edilmiş olayların hepsinde bu alan olmalı)
timeframe:
minutes: 1
1 dakika da Host alanı olan ve message alanında değişiklik olduğunda alert oluşturuyor.
Örnekler
Örnek 1
Alerti thread_name alanında değişiklik olursa
name: log_error
type: change
index: logstash-*
compare_key: thread_name
ignore_null: True
query_key: host
Çıktıda hem yeni hem eski değerini çıktı olarak vermektedir:
level: ERROR
level_value: 40000
logger_name: com.example.DemoApplication$$EnhancerBySpringCGLIB$$2bec2634
message: New Error
new_value: http-nio-8080-exec-6
old_value: http-nio-8080-exec-5
thread_name: http-nio-8080-exec-6
type: syslog
Örnek 2
Mesaj kısmında Yıldız geçip ay geçmeyen loglar
type: blacklist
blacklist:
- "Yıldız"
compare_key: message
filter:
- not:
term:
message: "ay"
Örnek 3
Mesajda a ve b olup c ve d olmaması. Eğer terms: message: [“a”,”b”] yazarsak sadece a ya da b olduğunda da eşleşme oluyor.
type: frequency
filter:
- term:
message: "a"
- and:
- term:
message: "b"
- and:
- not:
terms:
message: ["c","d"]
Any ( Verilen herhangi bir filtreleme ile eşleştiğinde alert oluşur. )
…
name: log_any
type: any
..
filter:
- query:
query_string:
query: "version:1"
version alanı 1 olan tüm sorgular için alert oluşturur.
Frequency( Belli bir zaman diliminde olayların en az belli bir sayıda eşleşme olduğunda alert oluşur.)
name: log_error
type: frequency
num_events: 1
timeframe:
minutes: 1
filter:
- query:
query_string:
query: "level:ERROR"
Eğer bir dakikada log seviyesi Error olan bir log varsa alert oluşturur.
Flatline ( Belli bir zamanda eşleşen sorgu sayısının verilen eşik değerinden az olmasıyla alert oluşturur. )
name: log_flatline
type: flatline
threshold: 5 // ‘den fazla olunca eşleşmiyor.
timeframe:
minute: 1
filter:
- query:
query_string:
query: "version:1"
version değeri 1 olan sorgular 1 dakikadan 5 den az ise alert oluşturur.
Blaclist ( liste’de var ise alert oluşturur. )
name: log_blacklist
type: blacklist //içerirse eşleşir.
blacklist:
“message” //aranacak kelime
compare_key: message //aranacak yer
Eğer message kelimesi logların message alanında geçiyorsa alert oluşturur.
Whitelist ( Verilen değer listedeki alanla eşleşmiyorsa alert oluşturur. )
name: log_whitelist
type: whitelist
whitelist:
“infoowl” //liste bunu içermiyorsa eşleşir
compare_key: message
ignore_null: True olduğunda compare_key olanı olmadan eşleşme yapmıyor
Eğer infoowl kelimesi logların message alanında geçmiyorsa alert oluşturur.
Cardinality ( Belli bir zamanda belirli alandaki benzersiz değerlerin sayısı verilen eşik değerinden düşükse alert oluşturur. )
name: log_cardinality
type: cardinality
cardinality_field: “host”
min_cardinality: 5
timeframe:
minutes: 1
loglardaki host alanında oluşan benzersiz değerler bir dakikada 5’den düşükse alert oluşturur.
Change ( Bir alan bir süre içerisinde iki farklı değere sahip olduğunda alert oluşturulur. )
name: log_change
type: change
compare_key: message //değişikliğin kontrol edileceği alan
ignore_null: True olduğunda compare_key olanı olmadan eşleşme yapmıyor
query_key: host (kontrol edilmiş olayların hepsinde bu alan olmalı)
timeframe:
minutes: 1
1 dakika da Host alanı olan ve message alanında değişiklik olduğunda alert oluşturuyor.
Örnekler
Örnek 1
Alerti thread_name alanında değişiklik olursa
name: log_error
type: change
index: logstash-*
compare_key: thread_name
ignore_null: True
query_key: host
Çıktıda hem yeni hem eski değerini çıktı olarak vermektedir:
level: ERROR
level_value: 40000
logger_name: com.example.DemoApplication$$EnhancerBySpringCGLIB$$2bec2634
message: New Error
new_value: http-nio-8080-exec-6
old_value: http-nio-8080-exec-5
thread_name: http-nio-8080-exec-6
type: syslog
Örnek 2
Mesaj kısmında Yıldız geçip ay geçmeyen loglar
type: blacklist
blacklist:
- "Yıldız"
compare_key: message
filter:
- not:
term:
message: "ay"
Örnek 3
Mesajda a ve b olup c ve d olmaması. Eğer terms: message: [“a”,”b”] yazarsak sadece a ya da b olduğunda da eşleşme oluyor.
type: frequency
filter:
- term:
message: "a"
- and:
- term:
message: "b"
- and:
- not:
terms:
message: ["c","d"]
Hiç yorum yok:
Yorum Gönder