Logstash - Eklentiler

Logstash, ardışık düzeninin üç aşaması (Giriş, Filtre ve Çıkış) için çeşitli eklentiler sunar. Bu eklentiler, kullanıcının Web Sunucuları, Veritabanları, Ağ Üzerinden Protokoller gibi çeşitli kaynaklardan günlükleri yakalamasına yardımcı olur.

Yakaladıktan sonra Logstash, verileri ayrıştırabilir ve kullanıcının istediği şekilde anlamlı bilgilere dönüştürebilir. Son olarak, Logstash bu anlamlı bilgileri Elasticsearch, AWS Cloudwatch vb. Gibi çeşitli hedef kaynaklara gönderebilir veya depolayabilir.

Giriş Eklentileri

Logstash'taki giriş eklentileri, kullanıcının çeşitli kaynaklardan günlükleri çıkarmasına ve almasına yardımcı olur. Giriş eklentisini kullanmak için sözdizimi aşağıdaki gibidir -

Input {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Aşağıdaki komutu kullanarak giriş eklentisini indirebilirsiniz -

>Logstash-plugin install Logstash-input-<plugin name>

Logstash eklentisi yardımcı programı, bin folderLogstash kurulum dizininin. Aşağıdaki tabloda, Logstash tarafından sunulan giriş eklentilerinin bir listesi bulunmaktadır.

Sr.No. Eklenti adı ve Açıklaması
1

beats

Günlük verilerini veya olayları elastik atım çerçevesinden almak için.

2

cloudwatch

Amazon Web Services tarafından sunulan bir API teklifi olan CloudWatch'tan olayları ayıklamak için.

3

couchdb_changes

Bu eklenti kullanılarak gönderilen couchdb'nin _chages URI'sindeki etkinlikler.

4

drupal_dblog

Etkinleştirilmiş DBLog ile drupal'ın bekçi köpeği günlük verilerini çıkarmak için.

5

Elasticsearch

Elasticsearch kümesinde gerçekleştirilen sorguların sonuçlarını almak için.

6

eventlog

Windows olay günlüğünden olayları almak için.

7

exec

Logstash'ta girdi olarak kabuk komut çıktısını almak için.

8

file

Olayları bir giriş dosyasından almak için. Bu, Logstash giriş kaynağı ile yerel olarak yüklendiğinde ve giriş kaynağı günlüklerine erişim sağladığında kullanışlıdır.

9

generator

Rastgele olaylar oluşturan test amaçlı kullanılır.

10

github

GitHub web kancasından olayları yakalar.

11

graphite

Grafit izleme aracından ölçüm verilerini almak için.

12

heartbeat

Ayrıca test için kullanılır ve kalp atışı benzeri olaylar üretir

13

http

Günlük olaylarını iki ağ protokolü üzerinden toplamak için ve bunlar http ve https'dir.

14

http_poller

HTTP API çıktısının kodunu bir olaya çözmek için kullanılır.

15

jdbc

JDBC işlemlerini Logstash'ta bir olaya dönüştürür.

16

jmx

JMX kullanarak uzak java uygulamalarından ölçümleri çıkarmak için.

17

log4j

TCP soketi üzerinden Log4j'nin socketAppender nesnesinden olayları yakalayın.

18

rss

Logstash'ta bir girdi olayı olarak komut satırı araçlarının çıktısına.

19

tcp

TCP soketi üzerinden olayları yakalar.

20

twitter

Twitter akış API'sinden olayları toplayın.

21

unix

UNIX soketi üzerinden olayları toplayın.

22

websocket

Olayları websocket protokolü üzerinden yakalayın.

23

xmpp

Jabber / xmpp protokolleri üzerinden olayları okur.

Eklenti Ayarları

Tüm eklentilerin, bir eklentide Bağlantı Noktası, Yol vb. Gibi önemli alanları belirlemeye yardımcı olan belirli ayarları vardır. Bazı giriş eklentilerinin ayarlarını tartışacağız.

Dosya

Bu giriş eklentisi, olayları doğrudan giriş kaynağında bulunan günlük veya metin dosyalarından çıkarmak için kullanılır. UNIX'teki tail komutuna benzer şekilde çalışır ve son okunan imleci kaydeder ve giriş dosyasından sadece eklenen yeni verileri okur, ancak yıldız_konum ayarı kullanılarak değiştirilebilir. Bu giriş eklentisinin ayarları aşağıdadır.

Ayar Adı Varsayılan değer Açıklama
alan ekle {} Giriş olayına yeni bir alan ekleyin.
close_older 3600 Son okuma süresi (saniye cinsinden) bu eklentide belirtilenden fazla olan dosyalar kapatılır.
codec bileşeni "sade" Logstash ardışık düzenine girmeden önce verilerin kodunu çözmek için kullanılır.
sınırlayıcı "\ N" Yeni bir satır sınırlayıcı belirtmek için kullanılır.
Discover_interval 15 Belirtilen yoldaki yeni dosyaların keşfedilmesi arasındaki zaman aralığıdır (saniye cinsinden).
enable_metric doğru Belirtilen eklenti için raporlamayı ve ölçüm toplamasını etkinleştirmek veya devre dışı bırakmak için kullanılır.
hariç tutmak Giriş eklentisinden çıkarılması gereken dosya adını veya kalıplarını belirtmek için kullanılır.
İD Bu eklenti örneği için benzersiz bir kimlik belirlemek için.
max_open_files Herhangi bir zamanda Logstash tarafından maksimum girdi dosyası sayısını belirtir.
yol Dosyaların yolunu belirtin ve dosya adı kalıplarını içerebilir.
başlangıç ​​konumu "son" İsterseniz "başlangıç" olarak değiştirebilirsiniz; Başlangıçta Logstash, dosyaları yalnızca yeni günlük olayını değil, başlangıçtan itibaren okumaya başlamalıdır.
başlangıç_aralığı 1 Zaman aralığını saniye cinsinden belirtir ve ardından Logstash değiştirilen dosyaları kontrol eder.
etiketleri Logstash gibi herhangi bir ek bilgi eklemek için, herhangi bir günlük olayı belirtilen grok filtresine uymadığında etiketlere "_grokparsefailure" ekler.
tip Bu, bir girdi olayına ekleyebileceğiniz özel bir alandır ve filtrelerde ve kibanada kullanışlıdır.

Elasticsearch

Bu belirli eklenti, bir Elasticsearch kümesindeki arama sorgularının sonuçlarını okumak için kullanılır. Aşağıdakiler bu eklentide kullanılan ayarlara sahiptir -

Ayar Adı Varsayılan değer Açıklama
alan ekle {} Dosya eklentisinde olduğu gibi, girdi olayına bir alan eklemek için kullanılır.
ca_file SSL sertifika Yetki dosyasının yolunu belirtmek için kullanılır.
codec bileşeni "sade" Logstash ardışık düzenine girmeden önce Elasticsearch'teki giriş olaylarının kodunu çözmek için kullanılır.
belge bilgisi "yanlış" Elasticsearch motorundan dizin, tür ve kimlik gibi ek bilgileri çıkarmak istiyorsanız, bunu doğru olarak değiştirebilirsiniz.
docinfo_fields ["_index", "_type", "_id"] Logstash girişinizde istemediğiniz herhangi bir alanı eleyebilirsiniz.
enable_metric doğru Bu eklenti örneği için raporlamayı ve ölçüm toplamasını etkinleştirmek veya devre dışı bırakmak için kullanılır.
ana bilgisayarlar O Logstash örneğinin giriş kaynağı olacak tüm elasticsearch motorlarının adreslerini belirtmek için kullanılır. Sözdizimi host: port veya IP: port şeklindedir.
İD Bu belirli giriş eklentisi örneğine benzersiz bir kimlik numarası vermek için kullanılır.
indeks "logstash- *" Logstash'ın giriş için Logstash tarafından izleyeceği indeks adını veya modeli belirtmek için kullanılır.
parola Kimlik doğrulama amacıyla.
sorgu "{\" sırala \ ": [\" _ doc \ "]}" Yürütme için sorgu.
ssl yanlış Güvenli yuva katmanını etkinleştirin veya devre dışı bırakın.
etiketleri Giriş olaylarına herhangi bir ek bilgi eklemek için.
tip Giriş formlarını sınıflandırmak için kullanılır, böylece tüm giriş olaylarını sonraki aşamalarda aramak kolay olacaktır.
kullanıcı Gerçek amaçlar için.

Olay günlüğü

Bu giriş eklentisi, Windows sunucularının win32 API'sinden verileri okur. Bu eklentinin ayarları aşağıdadır -

Ayar Adı Varsayılan değer Açıklama
alan ekle {} Dosya eklentisinde olduğu gibi, girdi olayına bir alan eklemek için kullanılır
codec bileşeni "sade" Pencerelerden giriş olaylarının kodunu çözmek için kullanılır; Logstash ardışık düzenine girmeden önce
log dosyası ["Uygulama", "Güvenlik", "Sistem"] Giriş günlük dosyasında gerekli olaylar
Aralık 1000 Milisaniye cinsindendir ve yeni olay günlüklerinin iki ardışık kontrolü arasındaki aralığı tanımlar
etiketleri Giriş olaylarına herhangi bir ek bilgi eklemek için
tip Girdiyi belirli bir eklenti biçimine göre sınıflandırmak için kullanılır, böylece sonraki aşamalarda tüm girdi olaylarını aramak kolay olacaktır.

Twitter

Bu giriş eklentisi, Twitter akışını Akış API'sinden toplamak için kullanılır. Aşağıdaki tablo bu eklentinin ayarlarını açıklamaktadır.

Ayar Adı Varsayılan değer Açıklama
alan ekle {} Dosya eklentisinde olduğu gibi, girdi olayına bir alan eklemek için kullanılır
codec bileşeni "sade" Pencerelerden giriş olaylarının kodunu çözmek için kullanılır; Logstash ardışık düzenine girmeden önce
tüketici anahtarı Twitter uygulamasının tüketici anahtarını içerir. Daha fazla bilgi için ziyaret edinhttps://dev.twitter.com/apps/new
tüketici mahremiyeti Twitter uygulamasının tüketici gizli anahtarını içerir. Daha fazla bilgi için ziyaret edinhttps://dev.twitter.com/apps/new
enable_metric doğru Bu eklenti örneği için raporlamayı ve ölçüm toplamayı etkinleştirmek veya devre dışı bırakmak için kullanılır.
takip eder

Virgülle ayrılmış kullanıcı kimliklerini belirtir ve LogStash, bu kullanıcıların Twitter'daki durumunu kontrol eder.

Daha fazla bilgi için ziyaret edin

https://dev.twitter.com

full_tweet yanlış Logstash'ın twitter API'den tam nesne dönüşünü okumasını istiyorsanız bunu true olarak değiştirebilirsiniz.
İD Bu belirli giriş eklentisi örneğine benzersiz bir kimlik numarası vermek için kullanılır.
ignore_retweets Yanlış Giriş twitter beslemesinde retweetleri yok saymak için bunu true olarak değiştirebilirsin
anahtar kelimeler Bu, twitters giriş feed'inde izlenmesi gereken bir anahtar kelimeler dizisidir.
dil LogStash tarafından giriş twitter beslemesinden ihtiyaç duyulan tweetlerin dilini tanımlar. Bu, twitter'da belirli bir dili tanımlayan bir tanımlayıcı dizisidir.
yerler Girdi beslemesinden tweetleri belirtilen konuma göre filtrelemek için. Bu, konumun enlem ve boylamını içeren bir dizidir
oauth_token Kullanıcı oauth belirtecini içeren zorunlu bir dosyadır. Daha fazla bilgi için lütfen aşağıdaki bağlantıyı ziyaret edinhttps://dev.twitter.com/apps
oauth_token_secret Kullanıcı oauth gizli belirtecini içeren zorunlu bir dosyadır. Daha fazla bilgi için lütfen aşağıdaki bağlantıyı ziyaret edinhttps://dev.twitter.com/apps
etiketleri Giriş olaylarına herhangi bir ek bilgi eklemek için
tip Girdiyi belirli bir eklenti biçimine göre sınıflandırmak için kullanılır, böylece sonraki aşamalarda tüm girdi olaylarını aramak kolay olacaktır.

TCP

TCP, olayları TCP soketi üzerinden almak için kullanılır; mod ayarında belirtilen kullanıcı bağlantılarından veya sunucudan okuyabilir. Aşağıdaki tablo bu eklentinin ayarlarını açıklamaktadır -

Ayar Adı Varsayılan değer Açıklama
alan ekle {} Dosya eklentisinde olduğu gibi, girdi olayına bir alan eklemek için kullanılır
codec bileşeni "sade" Pencerelerden giriş olaylarının kodunu çözmek için kullanılır; Logstash ardışık düzenine girmeden önce
enable_metric doğru Bu eklenti örneği için raporlamayı ve ölçüm toplamayı etkinleştirmek veya devre dışı bırakmak için kullanılır.
ev sahibi "0.0.0.0" İstemcinin bağlı olduğu sunucu işletim sisteminin adresi
İD Twitter uygulamasının tüketici anahtarını içerir
mod "Sunucu" Giriş kaynağının sunucu veya istemci olduğunu belirtmek için kullanılır.
Liman Bağlantı noktası numarasını tanımlar
ssl_cert SSL sertifikasının yolunu belirtmek için kullanılır.
ssl_enable yanlış SSL'yi etkinleştirin veya devre dışı bırakın
ssl_key SSL anahtar dosyasının yolunu belirtmek için
etiketleri Giriş olaylarına herhangi bir ek bilgi eklemek için
tip Girdiyi belirli bir eklenti biçimine göre sınıflandırmak için kullanılır, böylece sonraki aşamalarda tüm girdi olaylarını aramak kolay olacaktır.

Logstash - Çıktı Eklentileri

Logstash, çeşitli çıktı kaynaklarını ve Veritabanı, Dosya, E-posta, Standart Çıktı vb. Gibi farklı teknolojileri destekler.

Çıktı eklentisini kullanmak için sözdizimi aşağıdaki gibidir -

output {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Aşağıdaki komutu kullanarak çıktı eklentisini indirebilirsiniz -

>logstash-plugin install logstash-output-<plugin name>

Logstash-plugin utilityLogstash kurulum dizininin bin klasöründe bulunur. Aşağıdaki tablo, Logstash tarafından sunulan çıktı eklentilerini açıklamaktadır.

Sr.No. Eklenti Adı ve Açıklaması
1

CloudWatch

Bu eklenti, toplu ölçüm verilerini Amazon web hizmetlerinin CloudWatch'ına göndermek için kullanılır.

2

csv

Çıkış olaylarını virgülle ayrılmış bir şekilde yazmak için kullanılır.

3

Elasticsearch

Elasticsearch indeksinde çıktı günlüklerini saklamak için kullanılır.

4

email

Çıktı oluşturulduğunda bir bildirim e-postası göndermek için kullanılır. Kullanıcı, e-postadaki çıktı hakkında bilgi ekleyebilir.

5

exec

Çıktı olayıyla eşleşen bir komutu çalıştırmak için kullanılır.

6

ganglia

Metrikleri Gangila'dan gmond'a yazıyor.

7

gelf

Graylog2 için GELF formatında çıktı üretmek için kullanılır.

8

google_bigquery

Olayları Google BigQuery'ye gönderir.

9

google_cloud_storage

Çıktı olaylarını Google Cloud Storage'da depolar.

10

graphite

Çıkış olaylarını Graphite'e depolamak için kullanılır.

11

graphtastic

Windows'ta çıktı ölçütlerini yazmak için kullanılır.

12

hipchat

Çıktı günlüğü olaylarını HipChat'e depolamak için kullanılır.

13

http

Çıktı günlüğü olaylarını http veya https uç noktalarına göndermek için kullanılır.

14

influxdb

Çıkış olayını InfluxDB'de saklamak için kullanılır.

15

irc

Çıkış olaylarını irc'ye yazmak için kullanılır.

16

mongodb

Çıktı verilerini MongoDB'de depolar.

17

nagios

Nagios'a pasif çek sonuçlarını bildirmek için kullanılır.

18

nagios_nsca

NSCA protokolü üzerinden pasif kontrol sonuçlarını Nagios'a bildirmek için kullanılır.

19

opentsdb

Logstash çıktı olaylarını OpenTSDB'ye depolar.

20

pipe

Çıkış olaylarını başka bir programın standart girişine aktarır.

21

rackspace

Çıkış günlüğü olaylarını Rackspace Cloud'un Queue hizmetine göndermek için kullanılır.

22

redis

Çıktı günlük verilerini Redis kuyruğuna göndermek için rpush komutunu kullanır.

23

riak

Çıktı olaylarını Riak dağıtılmış anahtar / değer çiftine depolamak için kullanılır.

24

s3

Çıktı günlük kaydı verilerini Amazon Simple Storage Service'ta depolar.

25

sns

Çıktı olaylarını Amazon'un Basit Bildirim Hizmetine göndermek için kullanılır.

26

solr_http

Çıkış günlük verilerini indeksler ve Solr'da depolar.

27

sps

Olayları AWS'nin Simple Queue Service'e göndermek için kullanılır.

28

statsd

Metrik verilerini istatistik ağ arka plan programına göndermek için kullanılır.

29

stdout

Komut istemi benzeri CLI'nin standart çıktısındaki çıktı olaylarını göstermek için kullanılır.

30

syslog

Çıktı olaylarını syslog sunucusuna göndermek için kullanılır.

31

tcp

Çıkış olaylarını TCP soketine göndermek için kullanılır.

32

udp

Çıkış olaylarını UDP üzerinden göndermek için kullanılır.

33

websocket

Çıkış olaylarını WebSocket protokolü üzerinden göndermek için kullanılır.

34

xmpp

Çıktı olaylarını XMPP protokolü üzerinden göndermek için kullanılır.

Tüm eklentilerin, bir eklentide Bağlantı Noktası, Yol vb. Gibi önemli alanları belirlemeye yardımcı olan belirli ayarları vardır. Bazı çıktı eklentilerinin ayarlarını tartışacağız.

Elasticsearch

Elasticsearch çıktı eklentisi, Logstash'ın çıktıyı Elasticsearch motorunun belirli kümelerinde depolamasını sağlar. Bu, ELK Stack paketinde yer aldığı ve bu nedenle Devops için uçtan-uca çözümler sağladığı için, kullanıcıların ünlü tercihlerinden biridir. Aşağıdaki tablo, bu çıktı eklentisinin ayarlarını açıklamaktadır.

Ayar Adı Varsayılan değer Açıklama
aksiyon indeks Elasticsearch motorunda gerçekleştirilen eylemi tanımlamak için kullanılır. Bu ayarların diğer değerleri silme, oluşturma, güncelleme vb.
Cacert Sunucunun sertifika doğrulaması için .cer veya .pem içeren dosyanın yolunu içerir.
codec bileşeni "sade" Hedef kaynağa göndermeden önce çıktı günlük verilerini kodlamak için kullanılır.
doc_as_upset yanlış Bu ayar, güncelleme eylemi durumunda kullanılır. Belge kimliği çıktı eklentisinde belirtilmemişse, Elasticsearch motorunda bir belge oluşturur.
döküman tipi Aynı tür olayları aynı belge türünde depolamak için kullanılır. Belirtilmezse, olay türü aynı şekilde kullanılır.
flush_size 500 Bu, Elasticsearch'te toplu yüklemenin performansını artırmak için kullanılır
ana bilgisayarlar [“127.0.0.1”] Çıkış günlük verileri için bir hedef adresler dizisidir
idle_flush_time 1 İki yıkama arasındaki zaman sınırını (saniye) tanımlar, Logstash bu ayarda belirtilen süre sınırından sonra yıkamayı zorlar
indeks "logstash -% {+ YYYY.MM.dd}" Elasticsearch motorunun endeksini belirtmek için kullanılır.
manage_temlpate doğru Elasticsearch'te varsayılan şablonu uygulamak için kullanılır
ebeveyn sıfır Elasticsearch'te ana belgenin kimliğini belirtmek için kullanılır
parola Elasticsearch'te güvenli bir kümeye yapılan isteği doğrulamak için kullanılır
yol Elasticsearch'ün HTTP yolunu belirtmek için kullanılır.
boru hattı sıfır Besleme hattını ayarlamak için kullanılır, kullanıcı bir olay için yürütmek ister
vekil HTTP proxy belirtmek için kullanılır
retry_initial_interval 2 Toplu yeniden denemeler arasındaki ilk zaman aralığını (saniye) ayarlamak için kullanılır. Her yeniden denemeden sonra retry_max_interval değerine ulaşana kadar iki katına çıkar
retry_max_interval 64 Retry_initial_interval için maksimum zaman aralığını ayarlamak için kullanılır.
retry_on_conflict 1 Elasticsearch'ün bir belgeyi güncellemek için yaptığı yeniden deneme sayısıdır
ssl Elasticsearch'e güvenli SSL / TLS'yi etkinleştirmek veya devre dışı bırakmak için
şablon Elasticsearch'teki özelleştirilmiş şablonun yolunu içerir
şablon adı "logstash" Bu, Elasticsearch'te şablonu adlandırmak için kullanılır
zaman aşımı 60 Elasticsearch'e ağ istekleri için zaman aşımı
yükseltmek "" Belgeyi günceller veya document_id yoksa, Elasticsearch'te yeni bir belge oluşturur
kullanıcı Güvenli Elasticsearch kümesinde Logstash isteğini doğrulamak için kullanıcıyı içerir

Eposta

E-posta çıktı eklentisi, Logstash çıktı ürettiğinde kullanıcıyı bilgilendirmek için kullanılır. Aşağıdaki tablo, bu eklentinin ayarlarını açıklamaktadır.

Ayar Adı Varsayılan değer Açıklama
adres "Localhost" Posta sunucusunun adresidir
ekler [] Ekli dosyaların adlarını ve konumlarını içerir
vücut "" E-postanın gövdesini içerir ve düz metin olmalıdır
cc E-postanın cc'si için virgülle ayrılmış e-posta adreslerini içerir
codec bileşeni "sade" Hedef kaynağa göndermeden önce çıktı günlük verilerini kodlamak için kullanılır.
içerik türü "text / html; charset = UTF-8" E-postanın içerik türü için kullanılır
hata ayıklama yanlış Posta rölesini hata ayıklama modunda yürütmek için kullanılır.
alan adı "localhost" E-posta mesajlarını göndermek için alanı ayarlamak için kullanılır
itibaren "[email protected]" Gönderenin e-posta adresini belirtmek için kullanılır
htmlbody "" E-postanın gövdesini html biçiminde belirtmek için kullanılır.
parola Posta sunucusuyla kimlik doğrulamak için kullanılır
Liman 25 Posta sunucusuyla iletişim kurmak için bağlantı noktasını tanımlamak için kullanılır.
cevaplamak E-postanın yanıtlama alanı için e-posta kimliğini belirtmek için kullanılır.
konu "" E-postanın konu satırını içerir
use_tls yanlış Posta sunucusuyla iletişim için TSL'yi etkinleştirin veya devre dışı bırakın
Kullanıcı adı Sunucu ile kimlik doğrulama için kullanıcı adını içerir
üzerinden "Smtp" Logstash ile e-posta gönderme yöntemlerini tanımlar

Http

Bu ayar, çıktı olaylarını http üzerinden hedefe göndermek için kullanılır. Bu eklentinin aşağıdaki ayarları vardır -

Ayar Adı Varsayılan değer Açıklama
automatic_retries 1 Logstash tarafından http isteği yeniden deneme sayısını ayarlamak için kullanılır.
Cacert Sunucunun sertifika doğrulaması için dosya yolunu içerir
codec bileşeni "sade" Hedef kaynağa göndermeden önce çıktı günlük verilerini kodlamak için kullanılır.
içerik türü Hedef sunucuya http talebinin içerik türünü belirtiyorum
kurabiye doğru Çerezleri etkinleştirmek veya devre dışı bırakmak için kullanılır
biçim "json" Http istek gövdesinin biçimini ayarlamak için kullanılır
başlıklar Http başlığının bilgilerini içerir
http_method "" Logstash tarafından istekte kullanılan http yöntemini belirtmek için kullanılır ve değerler "put", "post", "patch", "delete", "get", "head" olabilir.
istek zaman aşımına uğradı 60 Posta sunucusuyla kimlik doğrulamak için kullanılır
url Bu eklentinin http veya https uç noktasını belirtmesi gerekli bir ayardır.

standart çıkış

Stdout çıktı eklentisi, çıktı olaylarını komut satırı arayüzünün standart çıktısına yazmak için kullanılır. Windows ve UNIX'teki terminalde komut istemidir. Bu eklenti aşağıdaki ayarlara sahiptir -

Ayar Adı Varsayılan değer Açıklama
codec bileşeni "sade" Hedef kaynağa göndermeden önce çıktı günlük verilerini kodlamak için kullanılır.
işçiler 1 Çıktı için işçi sayısını belirtmek için kullanılır.

istatistikler

Matris verilerini UDP üzerinden hedef arka uç hizmetlerine göndermek için kullanılan bir ağ arka plan programıdır. Windows ve UNIX'teki terminalde komut istemidir. Bu eklentinin aşağıdaki ayarları vardır -

Ayar Adı Varsayılan değer Açıklama
codec bileşeni "sade" Hedef kaynağa göndermeden önce çıktı günlük verilerini kodlamak için kullanılır.
Miktar {} Metriklerde kullanılacak sayımı tanımlamak için kullanılır.
azalma [] Eksiltme metrik adlarını belirtmek için kullanılır
ev sahibi "Localhost" Statsd sunucusunun adresini içerir
artış [] Artış metrik adlarını belirtmek için kullanılır
Liman 8125 Statsd sunucusunun bağlantı noktasını içerir
aynı oran 1 Metrik örnek oranını belirtmek için kullanılır
gönderen "% {Host}" Gönderenin adını belirtir
Ayarlamak {} Ayarlanmış bir metriği belirtmek için kullanılır
zamanlama {} Bir zamanlama ölçüsü belirtmek için kullanılır
işçiler 1 Çıktı için işçi sayısını belirtmek için kullanılır.

Eklentileri Filtrele

Logstash, girdi günlüklerini ayrıştırmak ve daha yapılandırılmış ve sorgulanması kolay bir biçime dönüştürmek için çeşitli filtre eklentilerini destekler.

Filtre eklentisini kullanmak için sözdizimi aşağıdaki gibidir -

filter {
   Plugin name {
      Setting 1……
      Setting 2……..
   }
}

Aşağıdaki komutu kullanarak filtre eklentisini indirebilirsiniz -

>logstash-plugin install logstash-filter-<plugin name>

Logstash eklenti yardımcı programı, Logstash kurulum dizininin bin klasöründe bulunur. Aşağıdaki tablo, Logstash tarafından sunulan çıktı eklentilerini açıklamaktadır.

Sr.No. Eklenti Adı ve Açıklaması
1

aggregate

Bu eklenti, aynı türdeki çeşitli olaylardan verileri toplar veya toplar ve bunları son olayda işler.

2

alter

Kullanıcının, mutasyon filtresinin işlemediği günlük olayları alanını değiştirmesine izin verir.

3

anonymize

Alanların değerlerini tutarlı bir hash ile değiştirmek için kullanılır.

4

cipher

Hedef kaynakta depolamadan önce çıktı olaylarını şifrelemek için kullanılır.

5

clone

Logstash'ta çıktı olaylarının kopyasını oluşturmak için kullanılır.

6

collate

Farklı günlüklerdeki olayları zamanlarına veya sayılarına göre birleştirir

7

csv

Bu eklenti, ayırıcıya göre giriş günlüklerinden verileri ayrıştırır

8

date

Etkinlikteki alanlardan tarihleri ​​ayrıştırır ve bunu etkinlik için bir zaman damgası olarak ayarlar

9

dissect

Bu eklenti, kullanıcının yapılandırılmamış verilerden alanları çıkarmasına yardımcı olur ve market filtresinin bunları doğru şekilde ayrıştırmasını kolaylaştırır.

10

drop

Aynı türdeki veya diğer benzerlikteki tüm olayları kaldırmak için kullanılır.

11

elapsed

Başlangıç ​​ve bitiş olayları arasındaki zamanı hesaplamak için kullanılır

12

Elasticsearch

Elasticsearch'te bulunan önceki günlük olaylarının alanlarını Logstash'taki mevcut olana kopyalamak için kullanılır.

13

extractnumbers

Günlük olaylarındaki dizelerden sayıyı çıkarmak için kullanılır.

14

geoip

Olaya, günlük olayında bulunan IP'nin konumunun enlem ve boylamını içeren bir alan ekler.

15

grok

Alanları almak için olayı ayrıştırmak için yaygın olarak kullanılan filtre eklentisidir.

16

i18n

Günlük olayındaki dosyadan özel karakterleri siler

17

json

Bir olayda veya bir olayın belirli bir alanında yapılandırılmış bir Json nesnesi oluşturmak için kullanılır.

18

kv

Bu eklenti, günlük verilerindeki anahtar değer çiftlerinin ayrıştırılmasında kullanışlıdır

19

metrics

Her olayda süreyi sayma gibi ölçümleri toplamak için kullanılır.

20

multiline

Aynı zamanda, çok satırlı bir günlük verilerini tek bir olaya dönüştürme durumunda kullanıcıya yardımcı olan yaygın olarak kullanılan filtre eklentilerinden biridir.

21

mutate

Bu eklenti, etkinliklerinizdeki alanları yeniden adlandırmak, kaldırmak, değiştirmek ve değiştirmek için kullanılır

22

range

Olaylardaki alanların sayısal değerlerini beklenen bir aralığa ve bir aralık içindeki dizenin uzunluğuna göre kontrol etmek için kullanılır.

23

ruby

Keyfi Ruby kodunu çalıştırmak için kullanılır

24

sleep

Bu, Logstash'ın belirli bir süre uyumasını sağlar

25

split

Bir olayın alanını bölmek ve tüm bölünmüş değerleri o olayın klonlarına yerleştirmek için kullanılır.

26

xml

Günlüklerde bulunan XML verilerini ayrıştırarak olay oluşturmak için kullanılır.

Codec eklentileri

Codec Eklentileri, giriş veya çıkış eklentilerinin bir parçası olabilir. Bu Eklentiler, günlük veri sunumunu değiştirmek veya biçimlendirmek için kullanılır. Logstash, birden fazla codec Eklentisi sunar ve bunlar aşağıdaki gibidir -

Sr.No. Eklenti Adı ve Açıklaması
1

avro

Bu eklenti, Logstash olaylarını avro datumlarına serileştirir veya avro kayıtlarını Logstash olaylarına dönüştürür

2

cloudfront

Bu eklenti, kodlanmış verileri AWS cloudfront'tan okur

3

cloudtrail

Bu eklenti, verileri AWS cloudtrail'den okumak için kullanılır

4

collectd

Bu, verileri UDP üzerinden toplanan adı verilen ikili protokolden okur

5

compress_spooler

Logstash'taki günlük olaylarını biriktirilmiş toplu işlere sıkıştırmak için kullanılır.

6

dots

Bu, her olay için stdout olarak bir nokta belirleyerek performans izlemeyi kullanır.

7

es_bulk

Bu, Elasticsearch'teki toplu verileri Elasticsearch meta verileri dahil olmak üzere Logstash olaylarına dönüştürmek için kullanılır.

8

graphite

Bu kodek, grafitten olaylara veri okur ve olayı grafit formatlı kayıtlara dönüştürür

9

gzip_lines

Bu eklenti, gzip ile kodlanmış verileri işlemek için kullanılır

10

json

Bu, Json dizisindeki tek bir öğeyi tek bir Logstash olayına dönüştürmek için kullanılır

11

json_lines

Json verilerini yeni satır sınırlayıcıyla işlemek için kullanılır

12

line

Eklenti, etkinliği tek bir canlıda okuyacak ve yazacaktır, yani satırsonu sınırlayıcısından sonra yeni bir etkinlik olacaktır.

13

multiline

Çok satırlı günlük verilerini tek bir olaya dönüştürmek için kullanılır

14

netflow

Bu eklenti, nertflow v5 / v9 verilerini logstash olaylarına dönüştürmek için kullanılır

15

nmap

Nmap sonuç verilerini bir XML biçiminde ayrıştırır

16

plain

Bu, metinleri sınırlayıcılar olmadan okur

17

rubydebug

Bu eklenti, Ruby harika yazdırma kitaplığını kullanarak çıktı Logstash olaylarını yazacaktır.

Kendi Eklentinizi Oluşturun

Logstash'ta gereksinimlerinizi karşılayan kendi Eklentilerinizi de oluşturabilirsiniz. Logstash eklenti yardımcı programı, özel Eklentiler oluşturmak için kullanılır. Burada, olaylara özel bir mesaj ekleyecek bir filtre eklentisi oluşturacağız.

Temel Yapıyı Oluşturun

Bir kullanıcı, logstash eklenti yardımcı programının oluştur seçeneğini kullanarak gerekli dosyaları oluşturabilir veya bu, GitHub'da da mevcuttur.

>logstash-plugin generate --type filter --name myfilter --path c:/tpwork/logstash/lib

Buraya, typeseçeneği eklentinin Giriş, Çıkış veya Filtre olduğunu belirtmek için kullanılır. Bu örnekte, adında bir filtre eklentisi oluşturuyoruzmyfilter. Yol seçeneği, eklenti dizininizin oluşturulmasını istediğiniz yolu belirtmek için kullanılır. Yukarıda belirtilen komutu çalıştırdıktan sonra, bir dizin yapısının oluşturulduğunu göreceksiniz.

Eklentiyi geliştirin

Eklentinin kod dosyasını şurada bulabilirsiniz: \lib\logstash\filterseklenti dizinindeki klasör. Dosya uzantısı.rb.

Bizim durumumuzda, kod dosyası aşağıdaki yolun içinde bulunuyordu -

C:\tpwork\logstash\lib\logstash-filter-myfilter\lib\logstash\filters\myfilter.rb

Mesajı - varsayılan olarak değiştiriyoruz ⇒ "Merhaba, Bunu tutorialspoint.com'da öğreniyorsunuz" ve dosyayı kaydediyoruz.

Eklentiyi Kurun

Bu eklentiyi kurmak için, Logstash Gemfile'sinin değiştirilmesi gerekir. Bu dosyayı Logstash kurulum dizininde bulabilirsiniz. Bizim durumumuzda, içinde olacakC:\tpwork\logstash. Bu dosyayı herhangi bir metin düzenleyici kullanarak düzenleyin ve aşağıdaki metni içine ekleyin.

gem "logstash-filter-myfilter",:path => "C:/tpwork/logstash/lib/logstash-filter-myfilter"

Yukarıdaki komutta, eklentinin adını ve kurulum için nerede bulabileceğimizi belirtiyoruz. Ardından, bu eklentiyi yüklemek için Logstash eklenti yardımcı programını çalıştırın.

>logstash-plugin install --no-verify

Test yapmak

İşte ekliyoruz myfilter önceki örneklerden birinde -

logstash.conf

Bu Logstash yapılandırma dosyası, grok filtre eklentisinden sonraki filtre bölümünde myfilter'ı içerir.

input {
   file {
      path => "C:/tpwork/logstash/bin/log/input1.log"
   } 
}
filter {
   grok {
      match => [
         "message", "%{LOGLEVEL:loglevel} - %{NOTSPACE:taskid} -
            %{NOTSPACE:logger} - %{WORD:label}( - %{INT:duration:int})?" ]
   }
   myfilter{}
}
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output1.log"
      codec => rubydebug
   }
}

Run logstash

Aşağıdaki komutu kullanarak Logstash'ı çalıştırabiliriz.

>logstash –f logsatsh.conf

input.log

Aşağıdaki kod bloğu giriş günlük verilerini gösterir.

INFO - 48566 - TRANSACTION_START - start

output.log

Aşağıdaki kod bloğu çıktı günlük verilerini gösterir.

{
   "path" => "C:/tpwork/logstash/bin/log/input.log",
   "@timestamp" => 2017-01-07T06:25:25.484Z,
   "loglevel" => "INFO",
   "logger" => "TRANSACTION_END",
   "@version" => "1",
   "host" => "Dell-PC",
   "label" => "end",
   "message" => "Hi, You are learning this on tutorialspoint.com",
   "taskid" => "48566",
   "tags" => []
}

Logstash'ta yayınlayın

Bir geliştirici ayrıca kendi özel eklentisini github'a yükleyerek ve Elasticsearch Company tarafından tanımlanan standartlaştırılmış adımları izleyerek Logstash'ta yayınlayabilir.

Yayınlama hakkında daha fazla bilgi için lütfen aşağıdaki URL'ye bakın -

https://www.elastic.co/guide/en/logstash/current/contributing-to-logstash.html