ПриватБанк специалист по компьютерным системам и телекоммуникациям
навыки:
MongoDB, TokuMX, Logstash, elasticsearch, GLPI. Администрирование CIsco
Контакты

Наибольший вклад в теги

Все теги (1)

Лучшие ответы пользователя

Все ответы (2)
  • Как в фильтрах Logstash осуществить выборку определенных полей?

    Neolithik
    @Neolithik Автор вопроса
    Системный администратор
    И по традиции отвечу сам )
    для себя выбрал такой механизм, может кому понадобится
    input {  
        file {
            codec => plain  #сначала получаем логи как они есть 
    #       codec => multiline {
    #       pattern => "T" ##создаем патерны (теги) по которым будет разбираться простыня
    #       negate => true
    #       what => "previous" ##определяет положение сшивающего тега(в данном случае в начале листа тег и инфа до следующего указаного в патерне)если ставить "next" то патерн попадает в предыдущий лист
    #       }
            path => "/home/kab/logs/*.log"
            start_position => "beginning" 
            type => "syslog"
            }
    }
    filter {
    
    ##############################WORK BLOCK#######################################
        mutate { # избавляемся от ненужных символов
            type => "syslog"
            gsub => ["message","\]|\["," "] # delete from log symbol"[]"
            gsub => ["message","\|"," "] # delete from log symbol "|"
        }
        grok { # обрабатываем поступающее сообщение (шапку) так как она +- стандартна, остальное пройдет через фильтр неизменным
            type => "syslog"
            pattern => "%{SYSLOGPROG:timing_level}   %{HOST:app_name}%{NOTSPACE:IDsession}   %{WORD:jpkg_name}   %{NOTSPACE:date} %{TIME:app_timestamp}   %{PROG:method}"
            }
       multiline { #ну а теперь сшиваем все 
            type => "syslog"
            pattern => "^(T0_)|(T1_)"
            negate => true
            what => "previous"
            }
    ###############################################################################
       mutate { # избавляемся от ненужных данных
            type => "syslog"
            remove => [tags]
            remove => [program]
            }
    }
    output { # и передаем на выход
       stdout {
            codec => "rubydebug"
            }
       elasticsearch {
            host => "localhost"
            }
    }


    Как то так
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (2)