Рейтинг:0

Graylog не получает журналы от Docker Swarm Services

флаг ro
xXx

Я новичок в Graylog и пытаюсь использовать Graylog в контейнере Docker, но журналы из других контейнеров не поступают в Graylog, и в веб-интерфейсе Graylog ничего не отображается.

Что делать, чтобы логи контейнеров поступали на Graylog?

Ниже я описываю свою попытку:

На одном хосте работает docker swarm только с одним узлом (собственным).

Локальный IP-адрес этого хоста: 10.0.0.5.

Внутри папки у меня есть несколько файлов:

  • докер-compose.yml
  • greylog.js

Содержание моего докер-compose.yml является:

версия: "3.3"
сети:
  окружающий:
    внешний: правда
Сервисы:
  # МОНГО
  монго:
    изображение: монго: 4.2
    сети: 
      - эмбиент
    среда:
      - MONGO_INITDB_ROOT_USERNAME=корень
      - MONGO_INITDB_ROOT_PASSWORD=drUqGGCMh
    тома:
      - ./graylog.js:/docker-entrypoint-initdb.d/graylog.js:ro      
  # ЭЛАСТИЧНЫЙ ПОИСК
  эластичный поиск:
    изображение: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
    среда:
      - "http.хост=0.0.0.0"
      - "discovery.type=одноузел"
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
    сети: 
      - эмбиент
  # СЕРЫЙ ЛОГ
  серый журнал:
    изображение: серый журнал / серый журнал: 4.1.0
    среда:
      - GRAYLOG_HTTP_EXTERNAL_URI=http://10.0.0.5:9000/
      # Пароль "admin"
      - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
      - GRAYLOG_ELASTICSEARCH_DISCOVERY_ENABLED=истина
      - GRAYLOG_MONGODB_URI=mongodb://graylog:vWGzncmBe9@mongo:27017/graylog
      - GRAYLOG_MESSAGE_JOURNAL_ENABLED=ложь      
    зависит от:
      - монго
      - эластичный поиск
    порты:
      - "9000:9000"
      - "12201:12201"
      - "1514:1514"
    сети: 
      - эмбиент

greylog.js содержание:

Graylog = db.getSiblingDB («серый журнал»);
Graylog.createUser(
  {
    пользователь: "graylog",
    пароль: "vWGzncmBe9",
    роли: [
      { роль: "dbOwner", БД: "серый журнал"}
    ]
  }
);

На HOST я создал файл /etc/докер/daemon.json с содержанием:

{
  "метрический адрес": "10.0.0.5:9323", 
  «экспериментальный»: правда, 
  "драйвер журнала": "gelf",
  "журнал-опций": {
    "gelf-адрес": "udp://10.0.0.5:12201"
  }
}

После создания файла я перезапустил службу докеров и проверил этот статус:

перезапуск сервисного докера
статус сервисного докера

Статус службы докеров АКТИВЕН:

 Активно: активно (работает) с сб 2021-06-26 16:58:31 -03; 1 мин 2 с назад

Затем я создал сеть Docker:

сеть docker создать -d оверлей окружающий

И затем я деполировал стек:

стек докеров развернуть Graylog -c docker-compose.yml 

При запущенном Graylog из веб-интерфейса System/Input я создал глобальный ввод, например:

адрес_привязки: 0.0.0.0
decompress_size_limit: 8388608
число_воркер_потоков: 12
override_source: порт: 12201
recv_buffer_size: 262144

Спасибо за любую помощь!

Рейтинг:0
флаг ro
xXx

Я только что нашел ответ после долгого времени в Google!

Публикация этого ответа здесь, чтобы помочь всем, у кого были такие же трудности, как и у меня.

Проблема была на докер-compose.yml файл на серых портах, из-за того, что я использовал протокол UDP:

До (не работает), потому что порты докера по умолчанию используют протокол TCP:

  порты:
      - "9000:9000"
      - "12201:12201"
      - "1514:1514"

Теперь (работает), порты докера работают по протоколам TCP и UDP:

  порты:
      - "9000:9000"
      - "12201:12201"
      - "12201:12201/удп"
      - "1514:1514"
      - "1514:1514/udp"

Тестирование из любого контейнера:

echo -n '{ "версия": "1.1", "host": "example.org", "short_message": "еще раз короткое сообщение", "level": 5, "_some_info": "foo" }' | нк -w1 -у 10.0.0.5 12201

и в веб-интерфейсе Graylog появляется сообщение:

2021-06-27 18:27:48.185 +00:00 example.org Короткое сообщение!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.