1. JSON Logging2. Add Logging for dev-coffeeshop Namespace3. 在Kibana中检查结构化日志
3.1 Open Kibana Route3.2 建立索引模式3.3 使用Kibana查询Elasticsearch 4. 清理日志查询,方便故障处理
- Red Hat OpenShift 4.8 环境集群搭建openshift 如何输出json日志openshfit Vertical Pod Autoscaler 实践openshift Certified Helm Charts 实践openshift 创建一个Serverless应用程序openshift gitops 实践openshift Tekton pipeline 实践
1. JSON Logging
Red Hat®OpenShift®容器平台的4.8版包含了JSON日志记录支持,现在这又回到了日志解决方案中。
客户现在可以精确地控制哪些容器日志是json格式的。他们可以标记通用的JSON模式,以便日志管理系统(Red Hat管理的Elasticsearch系统或第三方系统)确切地知道如何处理这些日志。
当一个parse: json字段被添加到ClusterLogForwarder自定义资源的管道中时,顶级字段被添加并以structured作为前缀。
当使用它们在集成的Elasticsearch集群中存储日志数据时,将为每个新的管道创建新的Elasticsearch索引。进入翻译页面
集群的本地Elasticsearch服务器在创建每一个新索引时都会面临显著的性能影响
实现目标:
演示结构化JSON日志记录检查一个为dev-咖啡店项目定制的ClusterLogging资源使用Kibana显示结构化日志说明如何将结构化日志发送到其他日志采集器 2. Add Logging for dev-coffeeshop Namespace
对于本练习,您将使用以下ClusterLogForwarder配置,该配置已经部署在您的集群中。
要查看ClusterLogForwarder配置,请执行以下操作:
在OpenShift容器平台web控制台中,选择“Project: All Projects”。
使用透视图切换器切换到Administrator透视图并单击Search。
在“Resources”下拉列表中,选择“ClusterLogForwarder”。
单击CLFinstance,然后在出现的页面上单击YAML。
查看这个配置,看看创建JSON日志时的新特性:
apiVersion: logging.openshift.io/v1
kind: ClusterLogForwarder
metadata:
name: instance
namespace: openshift-logging
spec:
inputs:
- application:
namespaces:
- dev-coffeeshop
name: dev-coffeeshop-input-example
outputDefaults:
elasticsearch:
structuredTypeKey: kubernetes.namespace_name
# OR
structuredTypeName: dev-coffeeshop-index-name
pipelines:
- inputRefs:
- dev-coffeeshop-input-example
name: pipeline-dev-coffeeshop
outputRefs:
- default
parse: json
- inputRefs:
- infrastructure
- application
- audit
outputRefs:
- default
从dev-coffeeshop名称空间引导日志的定制输入。默认输出是集群的Elasticsearch,而不是远程服务器。这将基于名称空间在Elasticsearch中设置一个结构化日志索引。一个用户定义的字符串,它命名了索引,如果存在的话,前面会有一个structuredTypeKey。启用JSON解析的管道。没有JSON解析的所有公共输入的管道。
每个用于Elasticsearch的新JSON日志管道都会在Elasticsearch中创建一个新索引。从命令行,你可以得到一个ES索引的快速列表:oc exec $es_pod -c elasticsearch -- indices
稍后,我们将在dev- coffeshop名称空间中看到咖啡馆应用程序可用的结构化日志。
在Kibana中写一个查询,只从structured.message中获取日志消息。
3. 在Kibana中检查结构化日志在这个练习中,您通过openshift-logging命名空间中的Kibana路由访问Kibana web控制台,并查询结构化日志。
3.1 Open Kibana Route1.从OpenShift容器平台web控制台Administrator 的角度找到Kibana URL作为路由,并确保选中了Project: OpenShift -logging。
2.在导航菜单中,导航到“Network → Routes”。
期待看到Kibana服务的位置。
3.单击该位置以打开它。
- In the Kibana web console, click Management.Click Index Patterns.Click Create index pattern.In the Index pattern field, enter app-dev-coffeeshop-*, then click Next Step.In the Time Filter field, select @timestamp.Click Create index pattern.
Click Discover.如果还没有选中app-dev-coffeeshop-*,请使用左侧的下拉列表选择app-dev-coffeeshop-*。在找到的第一个日志条目上,单击右箭头▶查看日志详细信息。在列表的底部,找到structured的条目。 elements, including structured.hostName
structured.message, and structured.level
每种具有不同JSON格式的日志输入类型都在Elasticsearch数据库中创建一个新索引,以处理不同的structured.*数据。通过“Apache”、“Google”等标准JSON格式组织日志来节约资源。
应用程序不断地发出消息,因此您需要一种方法来清除混乱,只查看对您的情况有意义的消息和查询结果。结构化JSON日志记录使这变得更容易。
首先,查看一个杂乱的消息,其中的数据不明显,无法搜索:
在Available Field下找到*t* message并单击add。观察日志输出如何更容易阅读,但是消息仍然很模糊——这是查看任何输出时的典型情况
整理的信息:
Under Selected fields find *t* message and click remove.Under Available fields find and click add for *t* structured.message, *t* structured.origin, and *t* structured.type注意,这里只显示了您做决策所需的关键数据
如果有某种类型的orderID,可以将起源和类型的Order Details与FINISHED和COLLECTED的Order Status关联起来,那就太好了。为了实现这个目标,你会要求开发人员进行哪些代码更改?
在本课程的后面,您将把prod- coffeshop名称空间添加到这个日志管道中,并更新查询。
现在,我们来看看OpenShift容器平台4.8的另一个重要功能:Certified Helm Charts。



