Logstash не импортирует файлы из-за ошибки отсутствия индекса

Мне трудно заставить комбинацию Logstash, Elasticsearch и Kibana работать в моей среде Windows 7.

Я настроил все 3, и все они работают нормально, Logstash и Elasticsearch работают как службы Windows, а Kibana — как веб-сайт в IIS.

Logstash работает с http://localhost:9200

У меня есть веб-приложение, создающее файлы журнала в формате .txt в формате:

Дата и время = [Дата и время], значение = [xxx]

Файлы журнала создаются в этом каталоге:

D:\wwwroot\Журналы\Ошибки\

Мой файл logstash.conf выглядит так:

input {

  file {
    format => ["plain"]
    path => ["D:\wwwroot\Logs\Errors\*.txt"]
    type => "testlog"
   }
}


output {
  elasticsearch {
        embedded => true
    }
}

Мой файл config.js Kibana выглядит так:

define(['settings'],
function (Settings) {


return new Settings({

elasticsearch: "http://localhost:9200",

kibana_index: "kibana-int",

panel_names: [
  'histogram',
  'map',
  'pie',
  'table',
  'filtering',
  'timepicker',
  'text',
  'fields',
  'hits',
  'dashcontrol',
  'column',
  'derivequeries',
  'trends',
  'bettermap',
  'query',
  'terms'
]
});
});

Когда я просматриваю Kibana, я вижу ошибку:

Индекс не найден в http://localhost:9200/_all/_mapping. Создайте хотя бы один индекс. Если вы используете прокси-сервер, убедитесь, что он правильно настроен.

Я понятия не имею, как создать индекс, поэтому, если кто-нибудь может пролить свет на то, что я делаю неправильно, это было бы здорово.


person Nanz    schedule 29.10.2013    source источник
comment
Похоже, в elasticsearch нет данных? Вы начали индексировать материал с помощью logstash? Появляется ли материал в файле журнала, на который указывает logstash?   -  person javanna    schedule 30.10.2013
comment
Вы запускаете logstash в централизованной или автономной версии в Windows? Потому что я пытаюсь найти способ использовать централизованную опцию в Windows, но не могу. Если вы сделали это, любая помощь будет очень ценна для меня. stackoverflow.com/questions/23907747/   -  person foc    schedule 04.06.2014


Ответы (1)


Кажется, что в настоящее время ничего не доходит до elasticsearch.

Для текущей версии es (0.90.5) мне пришлось использовать вывод elasticsearch_http. Выходные данные elasticsearch казались слишком тесно связанными с 0.90.3.

например: вот как моя конфигурация для формата log4j для эластичного поиска

input {
  file {
    path => "/srv/wso2/wso2am-1.4.0/repository/logs/wso2carbon.log"
    path => "/srv/wso2/wso2as-5.1.0/repository/logs/wso2carbon.log"
    path => "/srv/wso2/wso2is-4.1.0/repository/logs/wso2carbon.log"
    type => "log4j"
  }
}

output {
  stdout { debug => true debug_format => "ruby"}

  elasticsearch_http {
    host => "localhost"
    port => 9200    
  }
}

Для моего формата файла у меня также есть фильтр grok - чтобы правильно его проанализировать.

filter {
      if [message] !~ "^[ \t\n]+$" {
        # if the line is a log4j type
        if [type] == "log4j" {
          # parse out fields from log4j line
          grok {
            match => [ "message", "TID:%{SPACE}\[%{BASE10NUM:thread_name}\]%{SPACE}\[%{WORD:component}\]%{SPACE}\[%{TIMESTAMP_ISO8601:timestamp}\]%{SPACE}%{LOGLEVEL:level}%{SPACE}{%{JAVACLASS:java_file}}%{SPACE}-%{SPACE}%{GREEDYDATA:log_message}" ]
            add_tag => ["test"]
          }

          if "_grokparsefailure" not in [tags] {
            mutate {
              replace => ["message", " "]
            }
          } 
          multiline {
            pattern => "^TID|^ $"
            negate => true
            what => "previous"
            add_field => {"additional_log" => "%{message}"}
            remove_field => ["message"]
            remove_tag => ["_grokparsefailure"]
          }
          mutate {
            strip => ["additional_log"]
            remove_tag => ["test"]
            remove_field => ["message"]
          }

        }
      } else {
        drop {}
      }
    }

Кроме того, я бы получил плагин для головы elasticsearch для мониторинга вашего контента в elasticsearch, чтобы легко проверять данные и указывать, где они находятся.

person Tim    schedule 30.10.2013
comment
Спасибо за это, я собираюсь попробовать использовать elasticsearch_http и тот же формат, что и ваш файл logstash.conf. Дам вам знать, как я поживаю. - person Nanz; 01.11.2013
comment
@ Тим, в чем разница между elasticsearch и elasticsearch_http? - person Rahul Patil; 03.06.2014
comment
С выводом elasticsearch logstash присоединится к кластеру elasticsearch. С elasticsearch_http вывод будет осуществляться через http. - person itsafire; 15.10.2014