我有一个logstash配置文件,我需要将其转换为主厨erb模板(主要是过滤器部分)。但是,由于grok模式的格式,我一直在遇到问题。 以下是grok模式的示例。
<%
这是问题所在。在此之后不久,我需要在IP地址等中填充一些插值。但它不会因为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 %>"
}
}
开始自己的插值。
<%= @sentry_... %>
因此,上述所有值都将作为<%%{POSINT:seqnum1}>%{POSINT:seqnum2}:%>
。
有没有办法解决这个问题?我尝试了%>
here的转义方法。但它仍然将结束{{1}}放进去。还有其他方法来转义ERB中的字符/字符串吗?
谢谢! 约什
答案 0 :(得分:0)
您不想在文本中加入%>
。 <%%
成为文字<%
,并且不需要配对的结尾标记。
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__)