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 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. |
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 | Çı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