У меня установлен стек ELK на докерах (каждый из них находится в разных контейнерах в одной сети и использует официальные образы elk).Вот как я настроил elk:
1. sudo docker network create somenetwork
2.
sudo docker pull elasticsearch:6.6.1
sudo docker run -dit --name elasticsearch -h elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.6.1
3.
sudo docker pull kibana:6.6.1
sudo docker run -dit --name kibana -h kibana --net somenetwork -p 5601:5601 kibana:6.6.1
4. RUN logstash
sudo docker pull logstash:6.6.1
sudo docker run -it --name logstash -h logstash --net somenetwork -p 5044:5044 -v $(pwd)/pipeline/:/usr/share/logstash/pipeline -v $(pwd)/config/logstash.yml:/usr/share/logstash/config/logstash.yml logstash:6.6.1 logstash -f /usr/share/logstash/pipeline/logstash.conf
У меня также есть контейнер приложения, в котором выполняется filebeat, в котором есть файл журнала «log.out».это "filebeat.yml":
filebeat.prospectors:
- input_type: log
enabled: true
paths:
- /home/log.out
output.logstash:
hosts: ["logstash:5044"]
файл конфигурации logstash, logstash.conf:
input
{
beats {
port => 5044
host => "0.0.0.0"
}
}
output{
elasticsearch { hosts => ["elasticsearch:9200"] }
}
- Я могу подключиться через telnet ($ telnet logstash 5044)из контейнера приложения.
- Если я просто использую stdin из logstash (без получения журналов из filebeat), я могу видеть журналы в Kibana.
Я почти уверенЯ скучаю по чему-то простому.Я новичок с лосем.Спасибо