Saya memiliki file konfigurasi logstash yang perlu saya konversi ke template chef erb (terutama bagian filter). Namun, saya terus mengalami masalah karena format pola grok. Dibawah ini adalah contoh pola grok.
grok {
match => ["message", "<%{POSINT:seqnum1}>%{POSINT:seqnum2}: (\d*: |\.|\*)*%{SYSLOGTIMESTAMP:timestamp} %{WORD:tz}: \%%{WORD:facility_label}-(%{WORD:switch_id}-)*%{INT:severity}-%{WORD:program}: %{GREEDYDATA:message}"]
Inilah masalahnya. Tak lama setelah ini saya perlu melakukan interpolasi, mengisi alamat IP, dll. Tapi itu tidak akan terjadi karena <%
memulai interpolasinya sendiri.
mutate {
add_field => {"[@metadata][sentry][msg]" => "%{host}"
"[@metadata][sentry][severity]" => "%{severity}"
"[@metadata][sentry][host]" => "<%= @sentry_host[:ipaddress] %>"
"[@metadata][sentry][pid]" => "<%= @sentry_pid %>"
"[@metadata][sentry][key]" => "<%= @sentry_key %>"
"[@metadata][sentry][secret]" => "<%= @sentry_secret %>"
}
}
Jadi semua nilai di atas diproses sebagai string <%= @sentry_... %>
.
Apakah ada cara untuk menyiasatinya? Saya telah mencoba metode escape <%%{POSINT:seqnum1}>%{POSINT:seqnum2}:%>
yang terlihat di sini. Tapi itu masih memasukkan %>
penutup. Adakah cara lain untuk keluar dari karakter/string di ERB?
Terima kasih! Josh