Syslog çıktılarından Graylog içerisinde kullanılabilecek numerik veriler çıkrama

Graylog içerisinde topladığımız syslog mesajlarından bazılarını özellikle json şekliden alıyorsak bazı Key:Value değerlerinde sadece Value kısmını kullanmak isteyebiliriz.

Benim senaryomda problem tespiti için 5 saniye üzerinde tamamlanan nginx işlemlerinin görüntülenmesine ihtiyaç vardı. aşağıdaki detayda da görebileceğiniz üzere request_time değeri aslında bu sonucu veriyor fakat bir integer değer olmadığından büyüktür küçüktür operasyonu yapamıyordum.

Bu sıkıntıyı çözmek için full message store opsiyonunu seçtikten sonra bu yazının en altında görebileceğiniz regex ile bir store_field işlemi yaptım.

Burda önemli bir not normal regex tester siteleri javascript, python ve pcre syntaxı test edebiliyor fakat bize lazım olan plain java.

Ben araştırmalarımda

https://www.freeformatter.com/java-regex-tester.html#ad-output

sitesini buldum yine daha önce yazdığım gibi yukarıdaki site aşağıdaki detayı veriyor ve doğru çalışan bir regex yazmamızı sağlıyor.

regexhttps://www.freeformatter.com/java-regex-tester.html#ad-output

——
Nov 20 11:41:15 localhost.localdomain nginx: { “timestamp”: “2018-11-20T11:41:15+03:00”, “remote_addr”: “10.25.26.245”, “remote_user”: “”, “body_bytes_sent”: 1136, “request_time”: 0.157, “status”: 200, “request”: “POST /arvatowebservices/warehouseservice.asmx HTTP/1.1”, “request_method”: “POST”, “host”: “ws2.arvatoscm.com.tr”,”upstream_cache_status”: “”,”upstream_addr”: “10.27.80.13:80″,”http_x_forwarded_for”: “”,”http_referrer”: “”, “http_user_agent”: “Apache-HttpClient/4.2.6 (java 1.5)” }
——

regex
(?i)(?:request_time”:.([^,]+))

 

Sonuç itibarı ile bir servis için aşağıdaki dashboard’u görüntüler hale geliyoruz.

graylog printscreen