Как инициализировать Splunk HTTP Event Collector через Docker Compose и использовать его с драйвером журнала Spunk - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь настроить локальную среду разработки с помощью Docker Compose, который загружает сервер Splunk Enterprise и использует драйвер ведения журнала спанков на сервере приложений.

Версии:

  • Docker Engine: 18.06.1-ce
  • Compose: 1.22.0
  • Compose File: 3.7
  • Splunk Enterprise: 7.2.0

Мой docker-compose.yml файл выглядит следующим образом:

version: "3.7"

services:
  app:
    build: ./app
    command: bash -c "npm run start:docker"
    depends_on:
      - splunk
    environment:
      - NODE_ENV=development
      - SERVER_PORT=8080
    logging:
      driver: splunk
      options:
        splunk-format: "json"
        splunk-insecureskipverify: "true"
        splunk-source: "app"
        splunk-token: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
        splunk-url: "http://splunk:8088"
        tag: "{{.ImageName}}/{{.Name}}/{{.ID}}"
    ports:
      - "80:8080"
    volumes:
      - "./app:/usr/src/app"

  splunk:
    environment:
      - SPLUNK_ENABLE_LISTEN=9997
      - SPLUNK_START_ARGS=--accept-license --no-prompt --answer-yes
      - SPLUNK_USERNAME=admin
      - SPLUNK_PASSWORD=password
    hostname: splunk
    image: splunk/splunk:7.2.0
    ports:
      - "8000:8000"
      - "8088:8088"
      - "9997:9997"
    restart: always

Для того, чтобы это работало как задумано, мне нужно сгенерировать токен HTTP Event Collector и сделать его доступным для приложениякаким-то образом.

Я видел, что вы можете использовать переменную окружения SPLUNK_CMD для запуска команд, предположительно после запуска службы Splunk, но когда я попытался использовать это для , сгенерировать токенс CLI ничего не произошло.Я не обнаружил никаких ошибок в журналах и токена в разделе «Настройки»> «Входные данные».

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

Можно ли сделать то, что я пытаюсь сделать?Если да, то как?

1 Ответ

0 голосов
/ 14 октября 2018

Конфигурация нового образа (7.2.0) говорит, что вы можете указать токен HTTP Event Collector с переменной среды https://github.com/splunk/docker-splunk/blob/48d5322bc574792a5bfbfe8f68769aa16e7688b7/documentation/ADVANCED.md#valid-enterprise-environment-variables

Но я не думаю, что он работает для одного экземпляра после просмотрана https://github.com/splunk/splunk-ansible/search?q=set_as_hec_receiver.yml&unscoped_q=set_as_hec_receiver.yml - похоже, что playbook будет выполняться только для форвардеров и индексаторов с большим весом.

В качестве альтернативы, если вы посмотрите на изображение "legacy"/community supported, вы найдете другой способ сделать это.В качестве примера вы можете взглянуть на шаблон приложения, который мы используем в Outcold Solutions для разработки приложений Splunk https://github.com/outcoldsolutions/splunk-app-boilerplate,, где мы:

  1. Конфигурации карты https://github.com/outcoldsolutions/splunk-app-boilerplate/blob/master/Makefile#L23
  2. Скопируйте его поверх https://github.com/outcoldsolutions/splunk-app-boilerplate/blob/master/Makefile#L26

Для решения этой проблемы «Другая проблема заключается в том, что Splunk требуется некоторое время для запуска, и до начала прослушивания служба приложения не может быть скомпилирована, поскольку драйвер ведения журналаНе удается подключиться."- пожалуйста, обратите внимание на опцию splunk-verify-connection (см. https://docs.docker.com/config/containers/logging/splunk/#splunk-options),, таким образом, он будет повторять попытки повторной отправки данных до тех пор, пока не будет доступен сборщик событий HTTP.

В качестве альтернативыsplunk-verify-connection Вы также можете использовать другой способ пересылки журналов в Splunk, используя коллектор Outcold Solutions, который пересылает журналы контейнеров из журналов JSON. Простую установку https://www.outcoldsolutions.com/docs/monitoring-docker/v5/installation/, и вы сможете использовать приложениеа также для мониторинга среды вашего докера https://splunkbase.splunk.com/app/3723/

...