Я новичок в ELK и хочу настроить сквозной ELK для log4j, исходящего из TCP / UDP.
Я хочу извлечь информацию о сообщении из журнала. следовательно, используя фильтр GROK, но не может быть достигнуто. эти журналы отображаются в Кибане с тегом: grokfailure.
Как мне использовать фильтр grok для журналов log4j.
Вот пример журнала
<log4j:event logger="MI.Colos.Modules.Toolkit.UI.App" level="INFO" timestamp="1561561913712" thread="1"><log4j:message>Application shut down</log4j:message><log4j:properties><log4j:data name="log4japp" value="CoLOSApplicationToolkit.exe(6532)" /><log4j:data name="log4jmachinename" value="L5CG80809C0" /></log4j:properties></log4j:event>
Я пробовал с упомянутым конфигом logstash. но сообщение о том, что в Кибане не извлекается.
input {
tcp {
port => 9999
type => syslog
}
udp {
port => 9999
type => syslog
}
}
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "colos_local_log-%{+YYYY.MM.dd}"
}
}
Ошибка Кибана Грока
Я ожидаю фильтра сообщения, которое подано как
УРОВЕНЬ:
РЕГИСТРАТОР:
ВЕДУЩИЙ:
ДАННЫЕ: