Chef ERB template with Logstash Grok pattern issues -
i have logstash config file need convert chef erb template (mainly filters section). however, keep running issues due format of grok patterns. below example of grok pattern.
grok { match => ["message", "<%{posint:seqnum1}>%{posint:seqnum2}: (\d*: |\.|\*)*%{syslogtimestamp:timestamp} %{word:tz}: \%%{word:facility_label}-(%{word:switch_id}-)*%{int:severity}-%{word:program}: %{greedydata:message}"]
here issue. shortly after need have interpolation fill in ip address etc. wont because <%
starts interpolation of own.
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 of values above processed string of <%= @sentry_... %>
.
is there way around this? have tried escape method of <%%{posint:seqnum1}>%{posint:seqnum2}:%>
seen here. still puts closing %>
in. other ways escape characters/strings in erb?
thanks! josh
you don't want put %>
in text. <%%
becomes literal <%
, doesn't need paired ending tag.
edit example of erb -x
:
$ echo '<%% foo <%= asdf %> bar <%= baz %>' | erb -x #coding:ascii-8bit _erbout = ''; _erbout.concat "<% foo "; _erbout.concat(( asdf ).to_s); _erbout.concat " bar "; _erbout.concat(( baz ).to_s); _erbout.concat "\n" ; _erbout.force_encoding(__encoding__)
Comments
Post a Comment