Saat dilimini değiştirme MySQL tablosundan veri almada logstash var. Veriler, MySQL DB'nin saat dilimi içinde kaydedilmiş bir zaman damgası alanı içerir, bu UTC'dir. Bu yüzden, "10:27:15" uygulamasını uygulamamdan zaman olarak kaydedersem, DB'deki satır "08: 27: 15Z" içeriyor, çünkü Avrupa/Roma'da 2 saat dengeleniyor.
MySQL eklentisi ile logstash/es içine aldığımda, kayıt tekrar "de-zoned" olur ve verilerim "06: 27: 15Z" içeriyor.
Verilerime doğru TZ'yi uygulamaya çalışıyorum, böylece ES'de "08: 27: 15Z" olsun. Convert timestamp timezone in Logstash for output index name'u denedim, bu bir alanı kopyalayıp tekrar TZ'yi uygulayarak yeniden ayrıştırıyor.
sorun Doğru biçimidir
match => ["tztstamp", "ISO8601"]
kullanılarak
"tztstamp" => "2016-03-31T06:17:47.000Z"
ayrıştırmada bir "_dateparsefailure" elde ediyoruz. Ayrıca amaç için inşa edilen diğer formatları da denemedim.
Sunucu Avrupa/Roma saat dilimi ile çalışır. "@timezone" alanı otomatik olarak doğru UTC zamanı ile doldurulur (şimdi-2 saattir).
Zamanımın nasıl doğru bir şekilde ES'ye gireceğine dair bir fikriniz var mı?
i logstash "Europe/Rome" ile makinede çalışan anlamak gibi bir şeyLogstash
Q
Logstash
0
A
cevap
0
yapmazsak zaman dilimi
Logstash olur
MySQL DB, bu bir "görsel" örneği eklemek için . Örneğinizde tstamp
(2016-03-31 08:17:47) alanında TimeZone Bilgisi yok, bu yüzden logstash bunu "Avrupa/Roma" da düşünüyor. Logstash Eğer date
filtre için timezone
seçeneğini belirtmek gerekir, doğru zaman dilimi hakkında bilgi vermek için:
date {
match => [ "tstamp", "yyyy-MM-dd HH:mm:ss"]
timezone => "UTC"
}
Ayrıca, ISO8601 biçimde değil çünkü
tstamp
ait
_dateparsefailure
alıyorsanız.
"2016-03-31T06: 17: 47.000Z" aslında ISO8601'dir. Ekran görüntüsü phpmyadmin'den. –