Задача
Я пытаюсь узнать logsta sh и разбираю grok с условным оператором. Журналы успешно проанализированы вне оператора if, но внутри оператора ничего не проанализировано. Похоже, Грок не читает выражение.
target
[2020-01-09 08:32:46] VERBOSE [18962] [C -0000ceae] pbx. c: Выполнение [s@macro-dialout-trunk : 26] N oOp ("PJSIP / 3513-0001108e", "По какой-то причине произошел сбой набора с DIALSTATUS = BUSY и HANGUPCAUSE = 19") в новом стеке
filter
{
grok
{
match =>
{
"message" => "\[%{TIMESTAMP_ISO8601:log_timestamp}\] +(?<log_level>(?i)(?:debug|notice|warning|error|verbose|dtmf|fax|security)(?-i))\[%{INT:thread_id}\](?:\[%{DATA:call_thread_id}\])? %{DATA:module_name}\: %{WORD:action}\s\[%{DATA:TARGET}@%{DATA:dialplan_context}:%{DATA:dialplan_priority}\]\s%{GREEDYDATA:log_message}"
}
add_field => ["receiver_timestamp", "%{@timestamp}"]
add_field => ["process_name","asterisk_failed"]
}
if [action] == "Executing" and [dialplan_priority]=="1"{
grok
{
match =>
{
"log_message"=>"%{DATA:asterisk_app}\(\"%{DATA:protocol}\/%{DATA:EXT}\-%{DATA:channel}\"\,\s\"%{DATA:problem1}\-\s%{DATA:problem2}\"\)\s%{GREEDYDATA:all}"
}
}
}
if [action] == "Executing" and [dialplan_priority]=="26"{
grok
{
match =>
{
"log_message"=>"%{DATA:asterisk_app}\(\"%{DATA:protocol}\/%{DATA:EXT}\-%{DATA:channel}\"\,\s\"%{DATA:problem1}\sand\s%{DATA:problem2}\"\)\s%{GREEDYDATA:all}"
}
}
}
}
У меня есть проверил (сам) мой фильтр Грок и он работает хорошо. Есть ли какие-то вещи, которые нужно было импортировать, чтобы я мог использовать условное выражение?