我正在尝试使用Docker Compose设置本地开发环境,该环境会引导Splunk Enterprise服务器并在应用程序服务器上使用splunk logging driver。
版本:
我的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服务启动并运行之后,但是当我尝试将其用于generate a token with the CLI时,什么也没发生。我没有看到日志中的任何故障,也没有在“设置”>“数据输入”下找到任何令牌。
另一个问题是Splunk需要一些时间来启动,并且在开始监听之前,由于日志记录驱动程序无法连接,因此应用程序服务无法构建。
是否可以做我想做的事情?如果可以,怎么办?
答案 0 :(得分:1)
新映像(7.2.0)的配置表明,您可以使用环境变量https://github.com/splunk/docker-splunk/blob/48d5322bc574792a5bfbfe8f68769aa16e7688b7/documentation/ADVANCED.md#valid-enterprise-environment-variables指定一个HTTP事件收集器令牌
但是在查看https://github.com/splunk/splunk-ansible/search?q=set_as_hec_receiver.yml&unscoped_q=set_as_hec_receiver.yml之后,我认为它不适用于单个实例-似乎该剧本仅适用于重量级转发器和索引器。
或者,如果您查看"legacy"/community supported
图像,则会发现另一种方式。例如,您可以看一下我们在Outcold Solutions用来开发Splunk应用https://github.com/outcoldsolutions/splunk-app-boilerplate的应用样板,其中:
要解决此问题,“另一个问题是Splunk需要一些时间来启动,并且在开始监听之前,由于日志记录驱动程序无法连接,因此应用程序服务无法构建。” -请查看选项splunk-verify-connection
(请参阅https://docs.docker.com/config/containers/logging/splunk/#splunk-options),这样,它将不断尝试重试发送数据,直到HTTP Event Collector可用为止。
作为splunk-verify-connection
的替代方法,您还可以通过Outcold Solutions收集器使用从JSON日志转发容器日志的另一种方法,将日志转发到Splunk。安装https://www.outcoldsolutions.com/docs/monitoring-docker/v5/installation/很容易,您也可以使用应用程序来监视docker环境https://splunkbase.splunk.com/app/3723/