У меня есть установка Raspberry Pi 2 (последняя версия Raspbian по состоянию на апрель 2015 г.), которая на прошлой неделе запускала как ElasticSearch, так и Logstash в тестовой сети (это не простая установка, но она была стабильной более недели!). Я перезагрузил свою машину сегодня, и мне было очень трудно снова запустить ее; ES и LS будут работать независимо, но когда я пытаюсь отправить вывод LS в ES, экземпляр ES умирает без объяснения причин. Моя цель - заставить работать и LS закачивать данные в ES через стандартный плагин вывода.
ElasticSearch [v1.5.0]
Я считаю, что это основная проблема. ES может запускаться через service elasticsearch start
и продолжает работать, доступен через HTTP-запросы на порт 9200, и все признаки жизни казаться здоровым. Как только что-то (что угодно, насколько я могу судить) пытается записывать данные в индекс, процесс умирает, и журналы отладки @ / var / log / elasticsearch / * не содержат ничего, связанного с ошибкой службы. Я пробовал вставлять через logstash (см. Ниже), а также через curl, оба из которых завершают процесс ES. Я выполняю команду curl: curl -XPOST "http://localhost:9200/logstash-2015.04.05/records/" -d "{ \"type\" : \"specialRecord\" }"
.
Logstash [v1.4.2]
В настоящее время я использую эту простую конфигурацию:
input {
stdin { }
}
output {
stdout { codec => rubydebug }
elasticsearch {
host => '127.0.0.1'
cluster => 'elasticsearch'
}
}
Прочие примечания
Некоторые вещи, которые я пробовал:
Я попытался поднять уровни ведения журнала для ElasticSearch до DEBUG / TRACE, и результат оказался на удивление неинтересным. С радостью предоставлю журналы, если это будет полезно.
Я пробовал выделить ES 256 МБ и 512 МБ кучи, что, похоже, ни на что не влияет. Я также наблюдал за использованием памяти во время всего этого, и нехватка памяти, похоже, не является проблемой.
Я попытался отключить многоадресную рассылку, чтобы попытаться отсеять кучу сетевых переменных, но это, похоже, не имело значения.
Я убедился, что в каталоге данных ES достаточно места, разрешений на запись и т. Д. ES создает подкаталоги в path.data
каталог, когда он загружен, но я не верю, что что-то добавляется, поскольку, когда я перезапускаю процесс ES, статистика индекса предполагает, что общее количество документов равно нулю.
Я сейчас довольно озадачен и разочарован тем, что ничего, что мне нужно (или, по крайней мере, я могу найти), не регистрируется. Есть идеи о том, что здесь может происходить?
Ваш raspi может (значительно) не соответствовать вашей рабочей нагрузке.
Я ни в коем случае не эксперт по Elasticstack, но я настроил его в нескольких тестовых сценариях и для ограниченного / легкого производственного использования. По моему опыту, хотя для начальной настройки требуется относительно мало ресурсов, по мере роста количества индексов система генерирует значительно большую нагрузку на дисковый ввод-вывод и загрузку процессора.
Это особенно заметно после перезапуска, когда система восстанавливает шарды. Если ваши индексы не слишком велики, вы можете рассмотреть ежемесячные сегменты вместо дневных сегментов по умолчанию, что, кажется, помогает в этом отношении.