28 Temmuz 2016 Perşembe

Elastalert Kural Yapılandırma Dosyası

Elasticsearch, Logstash ve Kibana giderek artan log ve verileri yönetmek için kullanılıyor. Kibana görselleştirme için iyi fakat biz verilerdeki değişikliklerde, tutarsızlıklarda uyarıcı bir araca ihtiyac duyuyoruz.


Elasticsearch’deki verilerin belli desenlerle eşleştiğinde uyarılmasını istiyorsak, Elastalert bu işi yapmak için kullanılan bir araçtır.

İki türlü birleşeni birleştirerek çalıştırılır; kural tipleri ve alertler. Elasticsearch belirlenen kural tipine göre periyodik olarak sorgulanır. Eşleşme olduğunda uyarı gönderilir.

Elastalert de çok sayıda kural türü bulunur:

  • Belli bir zamanda olayların eşleşmesi ( frequency )
  • Eşleşme hacminin artması veya azalması ( spike )
  • Belli zaman da eşleşmeler daha az olduğunda ( flatline )
  • Belli bir alan liste ile eşleştiğinde( whitelist ya da blacklist )
  • Verilmiş herhangi bir filtre ile eşleştiğinde ( any )
  • Bir alan bir süre içinde iki farklı değerlere sahip olduğunda ( change )

Alert türler şimdilik bunlara destek vermektedir:

  • Command
  • Email
  • JIRA
  • OpsGenie
  • SNS
  • HipChat
  • Slack
  • Telegram
  • Debug ( Konsola eşleşen loglarla ilgili bilgileri dönderir. )


Kural Yapılandırması


Varsayılan olarak çalışma prensibi her dosya sonu .yaml ile bitmeli, rule dizininin içinde olmalıdır.

Gerekli Alanlar

es_host: Kuralın sorgulanacağı makine adı(Elasticserch makine adı).

es_port:  es_host a ulaşmak için kullanılan port.

index: Arama yapılacak dizin adıdır. Özel karakterleri burada kullanabiliriz. Örneğin index: my-index-* , my-index-2014-10-5 ile eşleşir. Format string içeriği %Y yıl, %m ay, %d gün içerir. Bunu kullanmak için use_strftime_index true olmalıdır.

name: Kural adı, eşsiz olmalıdır.

type: Kullanmak için seçtiğimiz kural adını yazıyoruz.

alert: Kullanmak istediğimiz alert tiplerini yazıyoruz.

Şeçenek Olan Alanlar

es_username , es_password Elasticsearch makinesi ile otomatik bağlantı sağlamak için kullanılır.

es_send_get_body_as : Elasticsearch sorgusu için kullanılan metod. Varsayılan olarak GET’dir.

use_strftime_index: Eğer True ise ElastAlert index için tarih zaman kullanılır.

aggregation: Çoklu eşleşmelerde bir alert göndermek için kullanılır. Eşleşmeyi bulduğunda aggregation periyodunu tamamlamayı bekler. Cron sözdizimini kullanır, hakkında. ( hours, minute, days )

buffer_time: config.yaml da genel ayarlanmış tanımlamaların üzerine yazmak için kullanılır. (Formatı zamandır.)

max_query_size: Tek sorguda Elasticsearch de indirilebilecek maksimum dosya sayısı. (int) Varsayılan olarak genel max_query_size’dır(10.000) )
use_kibana4_dashboard: Kibana4 dashboard’a bağlamak için kullanılır. Örneğin “ https://kibana.example.com/#/dashboard/My-Dashboard” gibi.
timeframe: Belli kural türlerinde minimum süre geçmesi gerektirir onu belirler.
filter: Sorguları filtrelemek için kullanılan alan.

Örnek rule.yaml

es_host: elk-elasticsearch
es_port: 9200
name: log_error
type: frequency
index: logstash-*
# link to a kibana dashboard with correct time settings
use_kibana4_dashboard:"http://elk-elasticsearch:5601/app/kibana#/dashboard/monitoring dashboard"
num_events: 1
max_query_size: 10000
run_every:
 minutes: 1
buffer_time:
 minutes: 15
timeframe:
 minutes: 1
filter:
 - query:
     query_string:
         query: "level:ERROR"
alert:
 - "debug"
 - "email"
email:
 - "error@example.net"


Hiç yorum yok:

Yorum Gönder