Splunk Universal Forwarder作为kubernetes的边车

问题描述 投票:0回答:1

我通过部署规范将我的应用程序设置为splunk通用转发器作为边车。 splunk通用转发器设置为不同的docker镜像,我通过docker COPY复制自定义inputs.conf和outputs.conf(如下所示)。

有效地,当我部署我的应用程序时,边车正在启动。在当前状态下,索引器配置在output.conf中,并且生效。

*问题出现在这里:我想根据环境动态更改索引器服务器主机和端口。 *

这是我的splunk通用转发器的dockerfile内容。

FROM splunk/universalforwarder:latest

COPY configs/*.conf /opt/splunkforwarder/etc/system/local/

使用名称splunk-universal-forwarder构建docker镜像:demo configs文件夹包含inputs.conf和outputs.conf文件。

outputs.conf的内容是

[tcpout]
defaultGroup = default-lb-group

[tcpout:default-lb-group]
server = ${SPLUNK_BASE_HOST}

[tcpout-server://host1:9997]

我想通过下面的边车部署传递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

我有一个单独的deployment.yaml每个环境(dev,stage,uat,qa,prod),我应该能够根据这些环境传递不同的索引器主机和端口SPLUNK_BASE_HOST。如果我在outputs.conf中对索引器主机和端口进行硬编码,它将在所有环境中采用相同的值,但我不希望这种情况发生。

outputs.conf中的环境变量$ {SPLUNK_BASE_HOST}不是指部署yaml文件中提供的值。

kubernetes splunk
1个回答
0
投票

您需要创建一个init脚本,该脚本应该从环境变量中获取主机名,并使用sed命令在output.conf中更新相同的内容。最后推出了slunk转发器

© www.soinside.com 2019 - 2024. All rights reserved.