Отладка новых фильтров logstash grok перед полным использованием

Я следил за этим руководством:

http://deviantony.wordpress.com/2014/06/04/logstash-debug-configuration/

Надеюсь, это поможет мне протестировать фильтры logstash, чтобы увидеть, получу ли я желаемый результат, прежде чем использовать их на постоянной основе.

Как часть руководства, в нем рассказывается, как настроить ввод и вывод, а затем файл фильтра. ввод вроде работает нормально:

input {
    stdin { }
}

Результат такой:

output {
    stdout {
        codec => json
    }
    file {
        codec => json
        path => /tmp/debug-filters.json
    }
}

Я получаю следующую ошибку, когда пытаюсь запустить процесс logstash (здесь я запустил его с помощью --configtest, поскольку ошибка советует мне попробовать это, но не дает дополнительной информации):

# /opt/logstash/bin/logstash -f /etc/logstash/debug.d -l /var/log/logstash/logstash-debug.log --configtest

Sending logstash logs to /var/log/logstash/logstash-debug.log.
Error: Expected one of #, ", ', -, [, { at line 21, column 17 (byte 288) after output {
    stdout {
        codec => json
    }
    file {
        codec => json
        path =>

Я попытался удалить раздел файла в моем выводе, и я могу запустить процесс logstash, но когда я вставляю свою строку журнала в оболочку, я не вижу, чтобы запись журнала была разбита на компоненты, которые я ожидаю от фильтра grok чтобы разбить его. Все, что я получаю, когда это делаю, это:

Oct 30 08:57:01 VERBOSE[1447] logger.c: == Manager 'sendcron' logged off from 127.0.0.1
{"message":"Oct 30 08:57:01 VERBOSE[1447] logger.c: == Manager 'sendcron' logged off from 127.0.0.1","@version":"1","@timestamp":"2014-10-31T16:09:35.205Z","host":"lumberjack.domain.com"}

Первоначально у меня была проблема с новым фильтром Grok, поэтому я попробовал использовать существующий фильтр, который, как я знаю, работает (как показано выше, это фильтр Asterisk 1.2), и в течение некоторого времени создавал записи в elasticsearch.

Я попытался прикоснуться к json-файлу, упомянутому в выводе, но это не помогло.

Теперь, когда я просматриваю logstash-debug.log, я просто вижу ошибку, которая также записывается в мою оболочку.

Будем признательны за любые предложения по отладке фильтров Grok, если я пропустил что-то ослепляюще очевидное, извините, я работаю с ELK & grok всего пару недель, и, возможно, я не буду делать это самым разумным способом. Я надеялся, что смогу перенести примеры записей журнала в оболочку и получить запись журнала в формате JSON на мою консоль, чтобы я мог видеть, работает ли мой фильтр так, как я надеялся, и пометил их, поскольку они будут отображаться в кибане в конец. Если есть лучший способ сделать это, пожалуйста, дайте мне знать.

Я использую logstash 1.4.2


person Rumbles    schedule 31.10.2014    source источник


Ответы (2)


Что касается отладки фильтра grok, вы можете использовать эту ссылку (http://grokdebug.herokuapp.com/) Он имеет очень обширный детектор образов, который является хорошим началом.

Что касается вывода файла, вам нужно "" вокруг вашего пути. Вот пример, который я использую в производстве. Вот документация по выводу файла http://logstash.net/docs/1.4.2/outputs/file#path

output {
    stdout {
        codec => rubydebug
    }
    file {
        codec => "plain"
        path => "./logs/logs-%{+YYYY-MM-dd}.txt"
    }
}
person user3195649    schedule 31.10.2014
comment
Спасибо! Это настолько очевидно, когда вы указываете на это, теперь я чувствую себя довольно глупо ... Я пробовал сайт раньше и не мог с ним работать, но спасибо, что напомнили мне, я попробовал снова, и это очень помогло ... - person Rumbles; 01.11.2014
comment
Плохо, я автор сообщения в блоге, я только что обновил фрагменты кода! - person Tony; 06.11.2014

Grokconstructor - это отладчик Grok, аналогичный Grokdebug, о котором упоминал @ user3195649. Мне нравятся случайные примеры.

person czerasz    schedule 31.07.2015