Поэтому я развернул кластер Amazon Elasticsearch с двумя экземплярами.
Я установил плагин logstash-output-amazon_es. Это мой файл конфигурации logstash:
input {
file {
path => "/Users/user/Desktop/user/logs/*"
}
}
filter {
grok {
match => {
"message" => '%{COMMONAPACHELOG} %{QS}%{QS}'
}
}
date {
match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ]
locale => en
}
useragent {
source => "agent"
target => "useragent"
}
}
output {
amazon_es {
hosts => ["foo.us-east-1.es.amazonaws.com"]
region => "us-east-1"
index => "apache_elk_example"
template => "./apache_template.json"
template_name => "apache_elk_example"
template_overwrite => true
}
}
Теперь я запускаю это со своего терминала:
/usr/local/opt/logstash/bin/logstash -f apache_logstash.conf
Я получаю сообщение об ошибке:
Failed to install template: undefined method `credentials' for nil:NilClass {:level=>:error}
Я думаю, что у меня что-то совсем не так. По сути, я просто хочу передать некоторые фиктивные входные данные журнала в мой кластер amazon elasticsearch через logstash. Как мне поступить?
Изменить Тип хранилища — Экземпляр, а политика доступа настроена на доступность для всех.
Изменить
output {
elasticsearch {
hosts => ["foo.us-east-1.es.amazonaws.com"]
ssl => true
index => "apache_elk_example"
template => "./apache_template.json"
template_name => "apache_elk_example"
template_overwrite => true
}
}