【发布时间】:2023-09-09 21:50:01
【问题描述】:
我在 Kubernetes 上使用this Splunk 映像(使用 minikube 在本地测试)。
应用下面的代码后,我遇到了以下错误:
错误:无法读取“/opt/splunk/etc/splunk-launch.conf”——也许 $SPLUNK_HOME 或 $SPLUNK_ETC 设置错误?
我的 Splunk 部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: splunk
labels:
app: splunk-app
tier: splunk
spec:
selector:
matchLabels:
app: splunk-app
track: stable
replicas: 1
template:
metadata:
labels:
app: splunk-app
tier: splunk
track: stable
spec:
volumes:
- name: configmap-inputs
configMap:
name: splunk-config
containers:
- name: splunk-client
image: splunk/splunk:latest
imagePullPolicy: Always
env:
- name: SPLUNK_START_ARGS
value: --accept-license --answer-yes
- name: SPLUNK_USER
value: root
- name: SPLUNK_PASSWORD
value: changeme
- name: SPLUNK_FORWARD_SERVER
value: splunk-receiver:9997
ports:
- name: incoming-logs
containerPort: 514
volumeMounts:
- name: configmap-inputs
mountPath: /opt/splunk/etc/system/local/inputs.conf
subPath: "inputs.conf"
---
apiVersion: v1
kind: ConfigMap
metadata:
name: splunk-config
data:
inputs.conf: |
[monitor:///opt/splunk/var/log/syslog-logs]
disabled = 0
index=my-index
我也尝试添加这个环境变量 - 没有成功:
- name: SPLUNK_HOME
value: /opt/splunk
- name: SPLUNK_ETC
value: /opt/splunk/etc
我已经使用以下 docker 配置测试了映像 - 它运行成功:
version: '3.2'
services:
splunk-forwarder:
hostname: splunk-client
image: splunk/splunk:latest
environment:
SPLUNK_START_ARGS: --accept-license --answer-yes
SPLUNK_USER: root
SPLUNK_PASSWORD: changeme
ports:
- "8089:8089"
- "9997:9997"
在 Splunk 论坛上看到 this,但答案对我没有帮助。
有什么想法吗?
编辑#1:
Minikube 版本:从v0.33.1 升级到v1.2.0。
完整的错误日志:
$kubectl logs -l tier=splunk
splunk_common : Set first run fact -------------------------------------- 0.04s
splunk_common : Set privilege escalation user --------------------------- 0.04s
splunk_common : Set current version fact -------------------------------- 0.04s
splunk_common : Set splunk install fact --------------------------------- 0.04s
splunk_common : Set docker fact ----------------------------------------- 0.04s
Execute pre-setup playbooks --------------------------------------------- 0.04s
splunk_common : Setting upgrade fact ------------------------------------ 0.04s
splunk_common : Set target version fact --------------------------------- 0.04s
Determine captaincy ----------------------------------------------------- 0.04s
ERROR: Couldn't read "/opt/splunk/etc/splunk-launch.conf" -- maybe $SPLUNK_HOME or $SPLUNK_ETC is set wrong?
编辑#2:将配置映射添加到代码中(为简洁起见,已从原始问题中删除)。 这是失败的原因。
【问题讨论】:
-
你能添加一个错误吗,因为我运行了这个部署并且它有效?
-
我在
minikube version: v1.2.0上尝试了您提供的部署 YAML,它运行良好。我没有设置那些环境变量,但我可以执行到容器中,看到$SPLUNK_HOMEenv var 设置为/opt/splunk,$SPLUNK_ETCenv var 没有设置,我可以成功地找出/opt/splunk/etc/splunk-launch.conf.错误消息并不意味着这些环境变量设置错误,它们似乎暗示如果您未设置,默认情况下将在/opt/splunk/etc/splunk-launch.conf中查找 conf 文件,并且由于某种原因它无法读取,. .. -
... 并且猜测您可能将 conf 文件放在其他地方而忘记设置
$SPLUNK_XXX环境变量以告诉 splunk 到其他地方查看。但是我假设您只想使用默认值,而不是更改任何内容,这是我尝试过的,并且有效。你在跑什么minikube version? -
@Rotemya,它不是 minikube 版本。它是 kubectl 版本。
minikube version命令的结果呢?我还在 minikube v1.2.0 上对其进行了测试,并且效果很好。您能否在此处发布运行设置 Splunk 的 ansible playbook 后显示的摘要?有没有错误? -
你可以通过运行
kubectl logs <pod_name>来检查它。
标签: docker kubernetes splunk