@jolomo

Как правильно распарсить логи с файла Linux?

Имеется сервер linux, в crontab которого запланирована задача: выполнение скрипта (допустим скрипт отправляет команду df -h), результат(лог) выполнения данного скрипта сохраняется в отдельный файл cron.log

crontab -e:
*/5 * * * * /script/df.sh > /etc/logs/cron.log
В cron.log появляется соответствующая информация.
/dev/sdb1 1t
/dev/sda1 2t и т.д

Информация с этого файла отправляется через filebeat прямиком на 5044 порт Logstash`a:
Далее logstash принимает этот файл и отправляет его в elasticsearch.
В кибане получается так, что каждая строка парсится в отдельный message,
spoiler
65d38f057ab46831181206.png

а нужно, чтобы в одном message содержалась ВСЯ информация из лога

Конфиг logstash`a:

input {
  beats {
     port => 5044
 }
}

filter{
}


}


output {
  else if [type] == "serv1" {
       elasticsearch {
       hosts   => "https://es:9200"
       index   => "log-%{+YYYY.MM.dd}"
       user    => "elastic"
       password => "pass"
       ssl => true
       ssl_certificate_verification => false
       }
   }

}
  • Вопрос задан
  • 177 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
в filter укажи multiline, пример вот
p.s. а читать и искать потом как ты собираешься по этим логам?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы