Ma c OS X, Docker: получение журналов контейнеров из Docker для виртуальной машины Ma c в стек ELK в том же Docker для Mac - PullRequest
0 голосов
/ 28 апреля 2020

Проблема:
- стек ELK (7.6.2) работает в Docker для Ма c (2.2.0.5)
- Извлеченный из Docker файл журнала контейнера не найден на Ма c что журналы контейнеров на Ma c хранятся в Docker для Ma c VM.

Вопрос:
Как я могу получить (некоторые из) журналы контейнеров - непрерывно - из виртуальной машины в стек ELK, который работает на том же Docker для Ма c.

Да, я знаю, что в Linux это будет намного проще. Но в настоящее время у меня есть только моя Ma c.
Да, я знаю, что могу скопировать файлы с некоторым Ma c magi c из ВМ в обычную Ma c FS и затем выбросить ее в стек ELK. Но я хочу избежать этого ручного шага, если это возможно. Да, я знаю, что могу сделать работу cron, которая делает это автоматически, но я тоже хочу этого избежать.

Так есть идеи, как этого добиться?

Спасибо, Алекс

1 Ответ

0 голосов
/ 30 апреля 2020

Хорошо, после дополнительных исследований и некоторых попыток и ошибок, вот мое решение, которое может быть не лучшим, но оно работает.

Шаги:
1) Создать сеть:

docker network create elastic  

2) Выполнить es:

docker run -d --name elasticsearch  --network elastic --restart unless-stopped -v /Data/elastic:/usr/share/elasticsearch/data -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2  

3) Выполнить kibana:

docker run -d --name kibana --network elastic --restart unless-stopped -p 5601:5601 kibana:7.6.2

4) Создать logsta sh .conf:

input {
  syslog {
    port => 9500
    type => "docker"
  }
}

filter {
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
    index => "docker_logs"
  }
}

5) Запустить logsta sh:

docker run -d --rm -v $PWD/config/syslog.conf:/usr/share/logstash/config/logstash.conf -p 9500:9500 --name logstash --network elastic logstash:7.6.2 bin/logstash -f /usr/share/logstash/config/logstash.conf

6) Запустить контейнер:

docker run --log-driver syslog --log-opt syslog-address=tcp://1.2.3.4:9500 alpine echo hello world

Будучи 1.2.3.4 ip хоста docker.

7) Открытая кибана:

open http://1.2.3.4:5601

8) Делать кибану я хотел узнать

Хорошо, это мое решение ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...