对于Knative日志记录,按照此处的说明https://github.com/knative/docs/blob/master/serving/installing-logging-metrics-traces.md#elasticsearch-kibana-prometheus--grafana-setup,我尝试使用Kibana UI(Elasticsearch的可视化工具)对日志进行可视化,但是在配置索引模式时遇到以下错误error- ”无法获取映射。您有与模式匹配的索引吗?” logstash
有没有解决方法或解决方法?
中的建议发出cURL GET请求时看到的内容答案 0 :(得分:1)
此版本https://github.com/knative/serving/issues/2218中已记录了KNative的最新版本中的错误。 您已经在https://github.com/knative/serving/pull/2560上看到了已经批准但尚未合并的PR。
简而言之,问题在于fluentd
窗格使用system-node-critical
优先级类,该优先级类在kube-system
命名空间之外不再受支持。
结果,fluentd
容器未创建,因此不会将任何日志发送到Elasticsearch,因此在Kibana中没有显示logstash
索引。
作为KNative v0.2.2的变通办法,您可以在此处从发行文件下载和删除行1909
:
https://github.com/knative/serving/releases/download/v0.2.2/release.yaml。
然后可以安装修补程序版本:
kubectl apply -f release.yaml
如果您不想下载和编辑,则可以获取已经安装的patched version of release 0.2.2 here:
kubectl apply -f https://github.com/gevou/knative-blueprint/blob/master/knative-serving-release-0.2.2-patched.yaml
您可以对以前的版本进行类似的操作。
答案 1 :(得分:0)
以下是我必须执行的一些附加步骤,以使其完全起作用。在此处发布信息,这样可以帮助面临相同问题并寻找答案的人
以下是步骤, 运行以下命令以应用补丁以修复未显示问题的fluentd-ds pod
kubectl apply -f https://raw.githubusercontent.com/gevou/knative-blueprint/master/knative-serving-release-0.2.2-patched.yaml
验证您的每个节点都具有beta.kubernetes.io/fluentd-ds-ready=true标签:
kubectl get nodes --selector beta.kubernetes.io/fluentd-ds-ready=true
如果收到“找不到资源”答复: 运行以下命令以确保Fluentd DaemonSet在所有节点上运行:
kubectl label nodes — all beta.kubernetes.io/fluentd-ds-ready=”true”
运行以下命令,以确保fluentd-ds守护程序集已在至少一个节点上就绪:
kubectl get daemonset fluentd-ds --namespace knative-monitoring
等待一会儿并运行此命令
kubectl proxy
导航到Kibana UI。代理可能需要花费几分钟的时间。
在“配置索引模式”页面中,将logstash- *输入到索引模式,然后从“时间过滤器”字段名称中选择@timestamp,然后单击“创建”按钮。
要创建第二个索引,请选择页面左上方的“创建索引模式”按钮。在索引模式中输入zipkin *,然后从“时间过滤器”字段名称中选择timestamp_millis,然后单击“创建”按钮。
如果问题仍然存在,请按照上面的评论中的建议修复错误
GET _cat/indices?v
添加了端到端调查结果here