Ich habe eine Logstash Config-Datei, die ich in eine Vorlage von Chef erb konvertieren muss (vor allem die Filter-Sektion). Aufgrund des Formats der Grok Pattern laufe ich jedoch immer wieder auf Probleme ein. Unten ist ein Beispiel für das Grok-Muster.Chef ERB Vorlage mit Logstash Grok Muster Probleme
grok {
match => ["message", "<%{POSINT:seqnum1}>%{POSINT:seqnum2}: (\d*: |\.|\*)*%{SYSLOGTIMESTAMP:timestamp} %{WORD:tz}: \%%{WORD:facility_label}-(%{WORD:switch_id}-)*%{INT:severity}-%{WORD:program}: %{GREEDYDATA:message}"]
Hier ist das Problem. Kurz danach muss ich eine Interpolation ausfüllen eine IP-Adresse usw. Aber es wird nicht, weil die <%
startet eine eigene Interpolation.
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 %>"
}
}
So alle oben genannten Werte werden als Folge von <%= @sentry_... %>
verarbeitet.
Gibt es eine Möglichkeit, dies zu umgehen? Ich habe die Escape-Methode von <%%{POSINT:seqnum1}>%{POSINT:seqnum2}:%>
gesehen here versucht. Aber es setzt immer noch den schließenden %>
in. Irgendwelche anderen Möglichkeiten, um Zeichen/Strings in ERB zu entkommen?
Danke! Josh
Vielen Dank für so schnell auf das zu sein! Aber wenn ich das <%% interpoliere, interpoliert es nichts bis zum Abschluss/Ende "%>" NACH dem "@sentry_host [: ipaddress]" \t '" [@metadata] [sentry] [host] "=>" <% = @sentry_host [: ipaddress]%> " " [@metadata] [sentry] [pid] "=>" <% = @sentry_host [: ipadresse]%> "' endet als '\t" [@metadata] [ sentry] [host] "=>" <% = @sentry_host [: ipadresse]%> " \t" [@metadata] [sentry] [pid] "=>" 10.100.100.100 "' –
Es ist ein bisschen schwer zu folgen dies in einem Kommentar, aber Sie können immer ein Schnipsel von Erb nach Erb-x pipen, um den generierten Ruby-Code zu sehen, der Ihnen eine Vorstellung von dem geben sollte, was vor sich geht :) – coderanger