[Kullanım dışı] Günlükleri HTTP Veri Toplama API'siyle akışla aktarmak için Logstash kullanma (eski)
Önemli
Birçok gereç ve cihazdan günlük toplama artık Ortak Olay Biçimi (CEF), AMA aracılığıyla Syslog veya Microsoft Sentinel'de AMA veri bağlayıcısı aracılığıyla Özel Günlükler tarafından desteklenmektedir. Daha fazla bilgi için bkz. Microsoft Sentinel veri bağlayıcınızı bulma.
Önemli
Logstash çıkış eklentisi kullanılarak veri alımı şu anda genel önizleme aşamasındadır. Bu özellik bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.
Not
Logstash eklentisinin daha yeni bir sürümü, DCR tabanlı API'yi kullanarak günlükleri dış veri kaynaklarından özel ve standart tablolara iletebilir. Yeni eklenti, sütun adlarının ve türlerinin yapılandırması da dahil olmak üzere çıkış şeması üzerinde tam denetime olanak tanır.
Logstash veri toplama altyapısı için Microsoft Sentinel'in çıkış eklentisini kullanarak, Logstash aracılığıyla istediğiniz günlük türünü doğrudan Microsoft Sentinel'deki Log Analytics çalışma alanınıza gönderebilirsiniz. Günlükleriniz, çıkış eklentisini kullanarak tanımladığınız özel bir tabloya gönderilir. Eklentinin bu sürümü HTTP Veri Toplama API'sini kullanır.
Logstash veri toplama altyapısıyla çalışma hakkında daha fazla bilgi edinmek için bkz . Logstash'i kullanmaya başlama.
Genel bakış
Mimari ve arka plan
Logstash altyapısı üç bileşenden oluşur:
- Giriş eklentileri: Çeşitli kaynaklardan özelleştirilmiş veri koleksiyonu.
- Filtre eklentileri: Verilerin belirtilen ölçütlere göre değiştirilmesi ve normalleştirilmesi.
- Çıkış eklentileri: Toplanan ve işlenen verilerin çeşitli hedeflere özel olarak gönderilmesi.
Not
Microsoft yalnızca burada açıklanan Microsoft Sentinel tarafından sağlanan Logstash çıkış eklentisini destekler. Bu eklentinin geçerli sürümü, 2020-08-25 sürümünde yayımlanan v1.0.0 sürümüdür. Çıkış eklentisiyle ilgili sorunlar için bir destek bileti açabilirsiniz.
Microsoft, Microsoft Sentinel için üçüncü taraf Logstash çıkış eklentilerini veya herhangi bir türde başka logstash eklentisini veya bileşenini desteklemez.
Microsoft Sentinel'in Logstash çıkış eklentisi yalnızca Logstash 7.0 ile 7.17.10 arasındaki sürümleri ve 8.0 ile 8.9 ve 8.11 sürümlerini destekler. Logstash 8 kullanıyorsanız işlem hattında ECS'yi devre dışı bırakmanızı öneririz.
Logstash için Microsoft Sentinel çıkış eklentisi, Log Analytics HTTP Veri Toplayıcı REST API'sini kullanarak JSON biçimli verileri Log Analytics çalışma alanınıza gönderir. Veriler özel günlüklere alınır.
- Log Analytics REST API'si hakkında daha fazla bilgi edinin.
- Özel günlükler hakkında daha fazla bilgi edinin.
Logstash'te Microsoft Sentinel çıkış eklentisini dağıtma
1. Adım: Yükleme
Microsoft Sentinel çıkış eklentisi Logstash koleksiyonunda kullanılabilir.
Microsoft-logstash-output-azure-loganalytics eklentisini yüklemek için Logstash Eklentilerle çalışma belgesindeki yönergeleri izleyin.
Logstash sisteminizin İnternet erişimi yoksa, çevrimdışı eklenti paketi hazırlamak ve kullanmak için Logstash Çevrimdışı Eklenti Yönetimi belgesindeki yönergeleri izleyin. (Bu, İnternet erişimine sahip başka bir Logstash sistemi oluşturmanızı gerektirir.)
2. Adım: Yapılandırma
Bir yapılandırma dosyasının Logstash Yapısı belgesindeki bilgileri kullanın ve aşağıdaki anahtarlar ve değerlerle Microsoft Sentinel çıkış eklentisini yapılandırmaya ekleyin. (Doğru yapılandırma dosyası söz dizimi tablodan sonra gösterilir.)
Alan adı | Veri türü | Açıklama |
---|---|---|
workspace_id |
Dize | Çalışma alanı kimliği GUID'nizi girin (bkz. İpucu). |
workspace_key |
Dize | Çalışma alanı birincil anahtar GUID'nizi girin (bkz. İpucu). |
custom_log_table_name |
Dize | Günlüklerin alınacağı tablonun adını ayarlayın. Çıkış eklentisi başına yalnızca bir tablo adı yapılandırılabilir. Günlük tablosu, Microsoft Sentinel'de Günlükler'in altında, Özel Günlükler kategorisindeki Tablolar'da bir _CL sonekle gösterilir. |
endpoint |
Dize | İsteğe bağlı alan. Bu varsayılan olarak Log Analytics uç noktasıdır. Alternatif bir uç nokta ayarlamak için bu alanı kullanın. |
time_generated_field |
Dize | İsteğe bağlı alan. Bu özellik Log Analytics'te varsayılan TimeGenerated alanını geçersiz kılar. Veri kaynağında zaman damgası alanının adını girin. Alandaki veriler ISO 8601 biçimine (YYYY-MM-DDThh:mm:ssZ ) uygun olmalıdır |
key_names |
dizi | Log Analytics çıkış şeması alanlarının listesini girin. Her liste öğesi tek tırnak içine alınmalı, öğeler virgülle ayrılmalıdır ve listenin tamamı köşeli ayraç içine alınmalıdır. Aşağıdaki örneğe bakın. |
plugin_flush_interval |
Numara | İsteğe bağlı alan. Log Analytics'e ileti iletimleri arasındaki maksimum aralığı (saniye cinsinden) tanımlamak için ayarlayın. Varsayılan 5'dir. |
amount_resizing |
boolean | Doğru veya yanlış. İleti arabelleği boyutunu alınan günlük verilerinin hacmine göre ayarlayan otomatik ölçeklendirme mekanizmasını etkinleştirin veya devre dışı bırakın. |
max_items |
Numara | İsteğe bağlı alan. Yalnızca amount_resizing "false" olarak ayarlandığında uygulanır. İleti arabelleği boyutuna (kayıtlarda) bir üst sınır ayarlamak için kullanın. Varsayılan değer 2000’dir. |
azure_resource_id |
Dize | İsteğe bağlı alan. Verilerin bulunduğu Azure kaynağının kimliğini tanımlar. Kaynak kimliği değeri özellikle yalnızca belirli verilere erişim sağlamak için kaynak bağlamı RBAC kullanıyorsanız kullanışlıdır. |
İpucu
- Çalışma alanı kimliğini ve birincil anahtarı, aracı yönetimi altındaki çalışma alanı kaynağında bulabilirsiniz.
- Ancak, kimlik bilgilerinin ve diğer hassas bilgilerin yapılandırma dosyalarında düz metin olarak depolanması en iyi güvenlik yöntemleriyle uyumlu olmadığından, çalışma alanı kimliğinizi ve çalışma alanı birincil anahtarınızı yapılandırmaya güvenli bir şekilde eklemek için Logstash anahtar deposundan yararlanmanız kesinlikle önerilir. Yönergeler için Elastic'in belgelerine bakın.
Örnek yapılandırmalar
Aşağıda birkaç farklı seçenek kullanan bazı örnek yapılandırmalar verilmiştir.
Filebeat giriş kanalı kullanan temel bir yapılandırma:
input { beats { port => "5044" } } filter { } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<your workspace id>" workspace_key => "<your workspace key>" custom_log_table_name => "tableName" } }
Tcp giriş kanalı kullanan temel bir yapılandırma:
input { tcp { port => "514" type => syslog #optional, will effect log type in table } } filter { } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<your workspace id>" workspace_key => "<your workspace key>" custom_log_table_name => "tableName" } }
Gelişmiş yapılandırma:
input { tcp { port => 514 type => syslog } } filter { grok { match => { "message" => "<%{NUMBER:PRI}>1 (?<TIME_TAG>[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}T[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})[^ ]* (?<HOSTNAME>[^ ]*) %{GREEDYDATA:MSG}" } } } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<WS_ID>" workspace_key => "${WS_KEY}" custom_log_table_name => "logstashCustomTable" key_names => ['PRI','TIME_TAG','HOSTNAME','MSG'] plugin_flush_interval => 5 } }
Yapılandırılmamış metin verilerinden özel bir zaman damgasını ve JSON dizesini ayrıştırmak ve seçilen alan kümesini ayıklanan zaman damgasıyla Log Analytics'te günlüğe kaydetmek için daha gelişmiş bir yapılandırma:
# Example log line below: # Mon Nov 07 20:45:08 2022: { "name":"_custom_time_generated", "origin":"test_microsoft", "sender":"test@microsoft.com", "messages":1337} # take an input input { file { path => "/var/log/test.log" } } filter { # extract the header timestamp and the Json section grok { match => { "message" => ["^(?<timestamp>.{24}):\s(?<json_data>.*)$"] } } # parse the extracted header as a timestamp date { id => 'parse_metric_timestamp' match => [ 'timestamp', 'EEE MMM dd HH:mm:ss yyyy' ] timezone => 'Europe/Rome' target => 'custom_time_generated' } json { source => "json_data" } } # output to a file for debugging (optional) output { file { path => "/tmp/test.txt" codec => line { format => "custom format: %{message} %{custom_time_generated} %{json_data}"} } } # output to the console output for debugging (optional) output { stdout { codec => rubydebug } } # log into Log Analytics output { microsoft-logstash-output-azure-loganalytics { workspace_id => '[REDACTED]' workspace_key => '[REDACTED]' custom_log_table_name => 'RSyslogMetrics' time_generated_field => 'custom_time_generated' key_names => ['custom_time_generated','name','origin','sender','messages'] } }
Not
İç çalışma, yapılandırma ve performans ayarları hakkında daha fazla bilgi edinmek için çıkış eklentisi GitHub deposunu ziyaret edin.
3. Adım: Logstash'ı yeniden başlatma
4. Adım: Microsoft Sentinel'de gelen günlükleri görüntüleme
İletilerin çıkış eklentisine gönderildiğini doğrulayın.
Microsoft Sentinel gezinti menüsünde Günlükler'e tıklayın. Tablolar başlığı altında Özel Günlükler kategorisini genişletin. Yapılandırmada belirttiğiniz tablonun adını (sonekle
_CL
) bulun ve tıklayın.Tablodaki kayıtları görmek için, şema olarak tablo adını kullanarak tabloyu sorgulayın.
Çıkış eklentisi denetim günlüklerini izleme
Microsoft Sentinel çıkış eklentisinin bağlantısını ve etkinliğini izlemek için uygun Logstash günlük dosyasını etkinleştirin. Günlük dosyası konumu için Logstash Dizin Düzeni belgesine bakın.
Bu günlük dosyasında veri görmüyorsanız, çıktı eklentisinin veri aldığından emin olmak için yerel olarak (giriş ve filtre eklentileri aracılığıyla) bazı olayları oluşturun ve gönderin. Microsoft Sentinel yalnızca çıkış eklentisiyle ilgili sorunları destekleyecektir.
Sonraki adımlar
Bu belgede, dış veri kaynaklarını Microsoft Sentinel'e bağlamak için Logstash'i kullanmayı öğrendiniz. Microsoft Sentinel hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın:
- Verilerinize ve olası tehditlere nasıl görünürlük elde etmeyi öğrenin.
- Microsoft Sentinel ile tehditleri algılamaya başlayın.