Я установил кластер Elasticsearch с одним выделенным главным узлом, двумя соответствующими ведущими узлами данных и одним координирующим узлом. Количество реплик установлено равным 1.
В Logstash есть два конвейера, каждый из которых получает сообщения системного журнала от брандмауэра, преобразует их в JSON и передает их на любой из узлов данных. Я не генерирую UUID для документов явно.
Grafana подключена к координирующему узлу для получения данных из кластера.
Пока все хорошо. Но я заметил, что в Grafana я вижу каждый документ дважды. Я предполагаю, что это неверно, но я понятия не имею, в чем может быть проблема.
Я проверил вывод Logstash и не обнаружил копий, поэтому я предполагаю, что дублирование происходит в кластере. Кто-нибудь может мне здесь намекнуть? Нужно ли мне добавлять идентификатор к документам перед индексированием?
Спасибо, Генри
оказалось, что я неправильно понял, как работает Logstash.
Помещение двух конфигурационных файлов в директорию logstash "conf.d" [1], содержащую "input {}", "filter {}", и "output{} sections" означает, что не, а
Вместо этого Logstash объединил все файлы в этой директории и теперь нашёл два отдельных эластичных выходных модуля. Поэтому он записал все документы на оба моих узла ES. Когда я тестировал ранее, я смотрел только на один из выходов, поэтому не видел дубликатов.
Просто добавление явного идентификатора документа было не решением, а только очень плохим решением, так как каждый документ хранился и сразу же перезаписывался базой данных, что приводило к огромному расходу ресурсов.
Теперь я использую только один конфигурационный файл с двумя двумя входами, одним фильтром и одним выходом ES, который имеет оба узла в параметре хоста.
Надеюсь, это поможет другим, у кого есть схожие проблемы.
Regards, Henry
[1] .deb packet
.