Örnekler
Fluent Bit
Observability Hizmetimiz için Fluent-bit kullanmanızı öneririz çünkü Fluent-bit'in yapılandırılması daha kolaydır ve birden fazla log türünü destekler.
Fluent Bit yapılandırma dosyaları, her biri Fluent Bit'in log verilerini nasıl aldığını, işlediğini ve ilettiğini tanımlamada belirli bir amaca hizmet eden üç veya dört ana bölümden oluşur.
Yapılandırmaların açıklaması aşağıdadır:
-
İlk bölümde [
SERVICE
], logların gönderilebilmesi için sistemin başlangıç konfigürasyonunu ayarladık. -
Bundan sonra
inputs
'larımız var,inputs
kaynaklarımızdan veri toplama şeklimizdir. Her birinin kendi yapılandırması olduğu için birden fazla [INPUT
] öğesi olabilir. Birden fazla girdi türü vardır, bu örnekteTail
veSystemd
kullanıyoruz. -
Son olarak [
OUTPUT
] bölümümüz var, burada loglarımızı nereye almak istediğimizi, verilerin gideceği hedefi yapılandırıyoruz, bizim durumumuzda logları almak için<>
arasındaki yer tutucuları doldurmamız yeterli olacaktır. -
Not:
OPENSEARCH_HOST
,USERNAME
,PASSWORD
veALIAS_NAME
gibi yer tutucuları karşılık gelen değerlerle değiştirmeniz gerekecektir.
Fluent Bit Nasıl Çalışır?
-
Inputs: Fluent Bit, eklentileri kullanarak çeşitli kaynaklardan logları toplar.
-
Parsers: Parsers, ham log verilerini daha kolay analiz edilebilecek yapılandırılmış bir biçime dönüştürür.
-
Filtreler: Filtreler belirli logları seçmenize, dönüştürmenize veya kaldırmanıza olanak tanır.
-
Outputs: İşlenen loglar hedeflere gönderilir.
Fluent Bit Nasıl Kurulur
Ubuntu'da Fluent Bit Kurulumu:
- İlk adım, imzalı paketlerimizi alabilmenizi sağlamak için sunucu GPG anahtarımızı anahtarlığınıza eklemektir.
curl https://packages.fluentbit.io/fluentbit.key | gpg --dearmor > /usr/share/keyrings/fluentbit-keyring.gpg
- Ubuntu'da, APT sunucu girişini kaynak listelerinize eklemeniz gerekir; lütfen
/etc/apt/sources.list
dosyanızın en altına aşağıdaki içeriği ekleyin - CODENAME'i kendi Ubuntu sürüm adınıza ayarladığınızdan emin olun.
deb [signed-by=/usr/share/keyrings/fluentbit-keyring.gpg] https://packages.fluentbit.io/ubuntu/${CODENAME} ${CODENAME} main
-
Şimdi sisteminizin apt veritabanını güncellemesine izin verin:
sudo apt-get update
-
Aşağıdaki apt-get komutunu kullanarak artık en son fluent-bit sürümünü kurabilirsiniz:
sudo apt-get install fluent-bit
-
Şimdi yapmanız gereken systemd'ye hizmeti etkinleştirmesi talimatını vermek:
sudo systemctl start fluent-bit
- Daha fazla bilgi ve kurulum seçenekleri için FluentBit adresini ziyaret edin.
Örnek 1: Konteyner Loglarının Gönderilmesi
Bu durumda 0.0.0.0 adresini dinleyen ve Tail giriş türünü kullanarak bir veya birden fazla metin dosyasını izlemeye izin veren bir servis yapılandırıyoruz. Ayrıca Linux ortamlarında Journald daemon'dan log mesajları toplamaya izin veren systemd
girişini kullanır. Daha sonra çıktı yapılandırılmış observability servisine gönderilir.
config:
service: |
[SERVICE]
Daemon Off
Flush {{ .Values.flush }}
Log_Level {{ .Values.logLevel }}
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port {{ .Values.metricsPort }}
Health_Check On
inputs: |
[INPUT]
Name tail
Path /var/log/containers/*.log
multiline.parser docker, cri
Tag kube.*
Mem_Buf_Limit 5MB
Skip_Long_Lines On
[INPUT]
Name systemd
Tag host.*
Systemd_Filter _SYSTEMD_UNIT=kubelet.service
Read_From_Tail On
outputs: |
[OUTPUT]
Name dtcloud
Match *
Host <OPENSEARCH_HOST>
Port 443
Path /backend/_bulk
HTTP_User <USERNAME>
HTTP_Passwd <PASSWORD>
Index <ALIAS_NAME>
Type _doc
Suppress_Type_Name On
tls On
Örnek 2: CPU Ölçümlerini Gönderme
Bu basit yapılandırmada, çıkış verilerini yapılandırılmış observability servisimize her 5 saniyede bir gönderecek olan flush
5'i kullandığımızı görüyoruz. Sanal Makine'nin CPU'sunun genel kullanımını izler.
[SERVICE]
Flush 5
Daemon off
Log_Level info
[INPUT]
Name cpu
Tag cpu
[OUTPUT]
Name dtcloud
Match *
Host <OPENSEARCH_HOST>
Port 443
Path /backend/_bulk
HTTP_User <USERNAME>
HTTP_Passwd <PASSWORD>
Index <ALIAS_NAME>
Type _doc
Suppress_Type_Name On
tls On
Örnek 3: Syslog Loglarını Gönderme
Bu örnekte, parserslerin tanımlandığı bir yapılandırma dosyasını içe aktarmamızı sağlayan Parsers_File
anahtarını kullandığımızı görüyoruz. Syslog mesajlarını bir Unix soket sunucusu (UDP veya TCP) veya TCP veya UDP kullanarak ağ üzerinden toplamamızı sağlayan girişini kullanıyoruz. Syslog'dan alınan verileri yapılandırılmış Observability hizmetimize gönderiyoruz.
Daha fazla bilgi için bu sayfayı ziyaret edebilirsiniz.
[SERVICE]
Flush 5
Daemon off
Log_Level info
[INPUT]
Name syslog
Path /tmp/in_syslog
Buffer_Chunk_Size 32000
Buffer_Max_Size 64000
Receive_Buffer_Size 512000
[OUTPUT]
Name dtcloud
Match *
Host <OPENSEARCH_HOST>
Port 443
Path /backend/_bulk
HTTP_User <USERNAME>
HTTP_Passwd <PASSWORD>
Index <ALIAS_NAME>
Type _doc
Suppress_Type_Name On
tls On
Example 4: Logları, Log veya Txt Dosyasından Doğrudan Gönderme
Bu örnekte, log'u herhangi bir metin dosyasıyla doğrudan makinenizden gönderebilirsiniz. Sadece parsers.conf
dosyasına doğru yapılandırmayı vermeniz gerektiğini unutmayın.
Parser.conf
dosyanızdaki regex
'iniz şu şekilde görünmelidir:
[PARSER]
Name simple
Format regex
Regex ^(?<time>[^,]+), (?<message>[^,]+), (?<TEST>.+)$
Time_Key time
Time_Format %Y-%m-%dT%H:%M:%S.%L%z
Log dosyasının virgülle bölündüğünü ve her bir parçanın zaman, mesaj, detay vb. gibi log gruplarını içerdiğini söylüyor.
Son olarak fluent-bit.conf
dosyası şu şekilde görünmelidir:
[SERVICE]
Parsers_File /path/to/parsers.conf
[INPUT]
Name tail
Parser Parser name
Path /path/to/local/logfile.log
Read_from_Head True (it can be false if you want to read from tail)
[OUTPUT]
Name dtcloud
Match *
Host <OPENSEARCH_HOST>
Port 443
Path /backend/_bulk
HTTP_User <USERNAME>
HTTP_Passwd <PASSWORD>
Index <ALIAS_NAME>
Type _doc
Suppress_Type_Name On
tls On
FluentBit için Başlatma, Durdurma ve Yeniden Başlatma Komutları:
Bu bölümde Fluent Bit servisinin systemd kullanılarak kontrol edilmesine ilişkin talimatlar verilmektedir.
- Durdurma
sudo systemctl stop fluent-bit
Bu, Fluent Bit'i zarif bir şekilde durduracak ve kapanmadan önce bekleyen olayların işlenmesini tamamlamasına olanak tanıyacaktır.
- Başlat
systemctl start fluent-bit
Bu, Fluent Bit hizmetini başlatacak ve logları yapılandırmasına göre işlemeye başlamasını sağlayacaktır.
- Yeniden Başlat
systemctl restart fluent-bit
Bu, çalışan Fluent Bit hizmetini durduracak, yapılandırmasını yeniden yükleyecek ve ardından yeniden başlatacaktır.