# Как понять видит ли filebeat логи docker

**URL:** https://discuss.elastic.co/t/filebeat-docker/231704
**Category:** Вопросы на русском языке
**Created:** [May 8, 2020, 11:23am UTC](https://discuss.elastic.co/t/filebeat-docker/231704 "2020-05-08T11:23:16Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 11:23am UTC](https://discuss.elastic.co/t/filebeat-docker/231704/1 "2020-05-08T11:23:16Z")

</div>

Пытаюсь запустить связку filebeat - logstash - elasticsearch -kibana в докер-контейнерах через docker-compose. Само по себе вроде все запускается и работает, но логи не доходят. Такое ощущение, что уже на первом этапе filebeat их не видит, в контейнере filebeat логи вот такого вида:

```auto
2020-05-08T11:11:21.244Z	INFO	[monitoring]	log/log.go:145	Non-zero metrics in the last 30s	{"monitoring": {"metrics": {"beat":{"cpu":{"system":{"ticks":60},"total":{"ticks":680,"time":{"ms":8},"value":680},"user":{"ticks":620,"time":{"ms":8}}},"handles":{"limit":{"hard":1048576,"soft":1048576},"open":6},"info":{"ephemeral_id":"cf33b524-d2ca-46b4-9792-d03c07a71c67","uptime":{"ms":60173}},"memstats":{"gc_next":9001344,"memory_alloc":4867160,"memory_total":13301720},"runtime":{"goroutines":15}},"filebeat":{"harvester":{"open_files":0,"running":0}},"libbeat":{"config":{"module":{"running":0}},"pipeline":{"clients":0,"events":{"active":0}}},"registrar":{"states":{"current":0}},"system":{"load":{"1":5.84,"15":1.17,"5":2.54,"norm":{"1":0.73,"15":0.1463,"5":0.3175}}}}}}

```

Как мне вообще узнать видит ли filebeat логи и в этом ли проблема?

Конфиг тоже приложу сразу:

```auto
filebeat.inputs:
- type: docker
  containers:
    path: "/usr/share/dockerlogs/data"
    ids:
      - "*"

output.logstash:
  hosts: ["logstash:5044"]

```

Путь `/usr/share/dockerlogs/data` пробрасывается в docker-compose c `/var/lib/docker/containers`

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [May 8, 2020, 12:41pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/2 "2020-05-08T12:41:30Z")

</div>

А пользователь filebeat имеет доступ к этим путям?

> Как мне вообще узнать видит ли filebeat логи и в этом ли проблема?

А вы не пробовали запустить ssh в контейнере и посмотерть, что там происходит, что видно, откуда и с какими правами доступа?

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 1:36pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/3 "2020-05-08T13:36:31Z")

</div>

Прав действительно не было. Я поменял права и теперь от пользователя filebeat могу видеть все внутри директории `data`. Но в логах по-прежнему `{"open_files":0,"running":0}`

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [May 8, 2020, 1:52pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/4 "2020-05-08T13:52:29Z")

</div>

> Я поменял права и теперь от пользователя filebeat могу видеть все внутри директории `data` .

Изнутри контейнера или снаружи? Если изнутри, то как выглядит путь?

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 1:55pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/5 "2020-05-08T13:55:57Z")

</div>

Права поменял вне контейнера. В docker-compose директории связаны вот так:

```auto
  filebeat:
    hostname: filebeat
    container_name: filebeat
    build:
      context: .
      dockerfile: filebeat.Dockerfile
    image: docker.elastic.co/beats/filebeat:7.6.2
    restart: always
    volumes:
      - "/var/lib/docker/containers:/usr/share/dockerlogs/data"
    links:
       - logstash

```

После того как я раздал права на чтение папки `/var/lib/docker/containers` для всех, я смог видеть `/usr/share/dockerlogs/data` внутри контейнера.

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 2:28pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/6 "2020-05-08T14:28:52Z")

</div>

Обнаружил, что при перезапуске docker-compose, к новым директориям с логами доступа уже нет. Как это решать - не знаю.

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [May 8, 2020, 2:35pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/7 "2020-05-08T14:35:42Z")

</div>

А если [добавить](https://github.com/elastic/examples/blob/master/Miscellaneous/docker/full_stack_example/docker-compose-linux.yml#L85) `user: root` в compose, работает?

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 2:46pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/8 "2020-05-08T14:46:38Z")

</div>

Да, это помогло. Вот только в логах filebeat все равно `{"open_files":0,"running":0}`. Хотя в контейнерах на хосте логи обновляются.

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [May 8, 2020, 2:55pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/9 "2020-05-08T14:55:13Z")

</div>

А в логах filebeat что-нибудь еще есть?

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 2:59pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/10 "2020-05-08T14:59:16Z")

</div>

Выложил [пример](https://yadi.sk/d/yl9GfOuPDtjOBw) лога

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [May 8, 2020, 3:04pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/11 "2020-05-08T15:04:47Z")

</div>

А можно тоже самое только на уровне [debug](https://www.elastic.co/guide/en/beats/filebeat/current/configuration-logging.html#level)?

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 3:33pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/12 "2020-05-08T15:33:05Z")

</div>

А как сделать такое логгирование в контейнере? Просто доаваить в конфиг `logging.level: debug` не помогает

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [May 8, 2020, 3:51pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/13 "2020-05-08T15:51:19Z")

</div>

А вы где конфиг меняете? У вас с ним volume правильно подцеплин в контейнере? Из контейнера ваши изменения видны?

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 3:54pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/14 "2020-05-08T15:54:34Z")

</div>

Конфиг копируется внутрь контейнера через Dockerfile:

```auto
FROM docker.elastic.co/beats/filebeat:7.6.2
COPY filebeat.yml /usr/share/filebeat/filebeat.yml

```

Но я сейчас заглянул внутрь контейнера, по пути /usr/share/filebeat/filebeat.yml лежит не тот конфиг. Не совсем понимаю как так может быть

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [May 8, 2020, 4:08pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/15 "2020-05-08T16:08:59Z")

</div>

Ну тут много чего может происходить. Не видя полной картины сложно что-то сказать. Вы `docker-compose build` запускали после изменения конфигов?

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 4:55pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/16 "2020-05-08T16:55:14Z")

</div>

Большое спасибо. Я пробросил конфиг без докерфайла через volume и логи стали читаться и даже попадать в logstash. Теперь проблема в том, что они не попадают в elasticsearch 🙂

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [May 8, 2020, 4:56pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/17 "2020-05-08T16:56:59Z")

</div>

Надо смотреть на конфиг и логи logstash 🙂

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 5:16pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/18 "2020-05-08T17:16:49Z")

</div>

Конфиг такой

```auto
input {
  beats {
    port => 5044
  }
}

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

```

А в логи приходит много сообщений, поэтому, я думаю что проблема не в приеме логов, а в их передаче в elasticsearch

---

<div class="post-metadata">

### Author: ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)
#### Post date: [May 8, 2020, 6:12pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/19 "2020-05-08T18:12:01Z")

</div>

А вам logstash тогда нужен? Может вы начнете с прямой передачи из beats в elasticsearch?

---

<div class="post-metadata">

### Author: ![111333](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111333/32/67958_2.png) [@111333](https://discuss.elastic.co/u/111333)
#### Post date: [May 8, 2020, 6:27pm UTC](https://discuss.elastic.co/t/filebeat-docker/231704/20 "2020-05-08T18:27:20Z")

</div>

поменял конфиг beats:

```auto
filebeat.inputs:
- type: docker
  combine_partial: true
  containers:
    path: "/usr/share/dockerlogs/data"
    ids:
      - "*"

output.elasticsearch:
  hosts: ["localhost:9200"]

```

Ничего не изменилось. В логах elasticsearch не видно, чтобы что-то приходило.

[Next page](https://discuss.elastic.co/t/filebeat-docker/231704.md?page=2)
