我正试图弄清楚如何将所有数据/日志从OpenShift ETCD发送到stdout,这样我就可以看到现实生活中的数据/日志。我知道我们可以在OpenShift Prometheus中看到一些图表,但我想看看实际的数据。一旦数据被发送到stdout,它就会自动发送到Splunk。我想不出最好的路线。。。我考虑部署一个带有脚本的映像,该脚本包括一个while循环,每隔60秒将数据/日志发送到stdout。没有导出或发送数据的etcdctl命令。有人有什么想法或以前完成过这个吗?
启动
oc project <etcd project>
# etcd=true is a label.
oc get pods -l etcd=true | head -n 2 | tail -n 1 | awk '{ print $1 }' | xargs -I PODNAME oc exec PODNAME -- bash -c 'curl https://localhost:<port you set>/metrics -k --cert <path to secret.crt> --key <path to secret .key>'
有一个名为SCK(用于Kubernetes的Splunk Connect(的专用项目https://github.com/splunk/splunk-connect-for-kubernetes/releases
对于日志记录部分,它将在所有节点上部署一个守护进程集,fluentd将在写入容器日志的物理节点上监视路径/var/log/containers/*.log
。然后,使用HEC(http事件收集器(将事件发送到Splunk
特别是对于etcd用例,请注意chart-splunk-kubernetes日志记录包含用于正确设置etcd容器日志时间格式的配置:
etcd:
from:
pod: etcd-server
container: etcd-container
timestampExtraction:
regexp: (?<time>d{4}-d{2}-d{2} [0-2]d:[0-5]d:[0-5]d.d{6})
format: "%Y-%m-%d %H:%M:%S.%N"
etcd-minikube:
from:
pod: etcd-minikube
container: etcd
timestampExtraction:
regexp: (?<time>d{4}-d{2}-d{2} [0-2]d:[0-5]d:[0-5]d.d{6})
format: "%Y-%m-%d %H:%M:%S.%N"
etcd-events:
from:
pod: etcd-server-events
container: etcd-container
timestampExtraction:
regexp: (?<time>d{4}-[0-1]d-[0-3]d [0-2]d:[0-5]d:[0-5]d.d{6})
format: "%Y-%m-%d %H:%M:%S.%N"