【发布时间】:2019-05-01 02:15:15
【问题描述】:
我正在通过部署规范将 splunk 通用转发器设置为我的应用程序的 sidecar。 splunk 通用转发器设置为不同的 docker 映像,我通过 docker COPY 复制自定义的 inputs.conf 和 outputs.conf(如下所示)。
实际上,当我部署我的应用程序时,sidecar 正在启动。当前状态下,indexer配置在output.conf中,并且正在生效。
*问题来了:我想根据环境动态更改索引器服务器主机和端口。 *
这是我的 splunk 通用转发器的 dockerfile 内容。
FROM splunk/universalforwarder:latest
COPY configs/*.conf /opt/splunkforwarder/etc/system/local/
构建名称为 splunk-universal-forwarder:demo 的 docker 映像 configs 文件夹包含两个文件 inputs.conf 和 outputs.conf。
outputs.conf的内容是
[tcpout]
defaultGroup = default-lb-group
[tcpout:default-lb-group]
server = ${SPLUNK_BASE_HOST}
[tcpout-server://host1:9997]
我想通过 sidecar 部署传递 SPLUNK_BASE_HOST 环境变量,如下所示。
- name: universalforwarder
image: splunk-universal-forwarder:demo
imagePullPolicy: Always
env:
- name: SPLUNK_START_ARGS
value: "--accept-license --answer-yes"
- name: SPLUNK_BASE_HOST
value: 123.456.789.000:9997
- name: SPLUNK_USER
valueFrom:
secretKeyRef:
name: credentials
key: splunk.username
- name: SPLUNK_PASSWORD
valueFrom:
secretKeyRef:
name: credentials
key: splunk.password
volumeMounts:
- name: container-logs
mountPath: /var/log/splunk-fwd-myapp
每个环境(dev、stage、uat、qa、prod)我都有一个单独的 deployment.yaml,我应该能够传递不同的索引器主机和端口 SPLUNK_BASE_HOST基于这些环境。如果我在 output.conf 中对索引器主机和端口进行硬编码,它将在所有环境中采用相同的值,但我不希望这种情况发生。
outputs.conf 中的环境变量 ${SPLUNK_BASE_HOST} 没有引用部署 yaml 文件中提供的值。
【问题讨论】:
标签: kubernetes splunk