$ oc auth can-i get pods --subresource log -n <project>
如果您使用的是 Elasticsearch 日志存储,则可以使用 Kibana 控制台可视化收集的日志数据。
使用 Kibana,您可以对数据执行以下操作
使用**发现**选项卡搜索和浏览数据。
使用**可视化**选项卡绘制图表和地图数据。
使用**仪表板**选项卡创建和查看自定义仪表板。
Kibana 界面的使用和配置不在本文档的讨论范围之内。有关使用界面的更多信息,请参阅Kibana 文档。
默认情况下,审核日志不会存储在 AWS Elasticsearch 实例上的内部 Red Hat OpenShift Service 中。要在 Kibana 中查看审核日志,必须使用日志转发 API配置使用 |
索引模式定义要可视化的 Elasticsearch 索引。要浏览和可视化 Kibana 中的数据,必须创建索引模式。
用户必须具有cluster-admin
角色、cluster-reader
角色或同时具有这两个角色才能在 Kibana 中查看infra和audit索引。默认的kubeadmin
用户具有查看这些索引的适当权限。
如果您可以在default
、kube-
和openshift-
项目中查看 Pod 和日志,则应该能够访问这些索引。您可以使用以下命令检查当前用户是否具有相应的权限
$ oc auth can-i get pods --subresource log -n <project>
yes
默认情况下,审核日志不会存储在 AWS Elasticsearch 实例上的内部 Red Hat OpenShift Service 中。要在 Kibana 中查看审核日志,必须使用日志转发 API 配置使用 |
必须先索引 Elasticsearch 文档才能创建索引模式。这是自动完成的,但在新的或更新的集群中可能需要几分钟。
要定义索引模式并在 Kibana 中创建可视化
在 AWS 控制台的 Red Hat OpenShift Service 中,单击应用程序启动器并选择**日志记录**。
通过单击**管理**→**索引模式**→**创建索引模式**来创建 Kibana 索引模式。
第一次登录 Kibana 时,每个用户都必须手动创建索引模式才能查看其项目的日志。用户必须创建一个名为app
的索引模式并使用@timestamp
时间字段来查看其容器日志。
第一次登录 Kibana 时,每个管理员用户都必须为app
、infra
和audit
索引创建索引模式,并使用@timestamp
时间字段。
从新的索引模式创建 Kibana 可视化。
您可以在 Kibana Web 控制台中查看集群日志。在 Kibana 中查看和可视化数据的方法不在本文档的讨论范围之内。有关更多信息,请参阅Kibana 文档。
必须安装 Red Hat OpenShift 日志记录和 Elasticsearch 运算符。
Kibana 索引模式必须存在。
用户必须具有cluster-admin
角色、cluster-reader
角色或同时具有这两个角色才能在 Kibana 中查看infra和audit索引。默认的kubeadmin
用户具有查看这些索引的适当权限。
如果您可以在default
、kube-
和openshift-
项目中查看 Pod 和日志,则应该能够访问这些索引。您可以使用以下命令检查当前用户是否具有相应的权限
$ oc auth can-i get pods --subresource log -n <project>
yes
默认情况下,审核日志不会存储在 AWS Elasticsearch 实例上的内部 Red Hat OpenShift Service 中。要在 Kibana 中查看审核日志,必须使用日志转发 API 配置使用 |
要在 Kibana 中查看日志
在 AWS 控制台的 Red Hat OpenShift Service 中,单击应用程序启动器并选择**日志记录**。
使用与登录 AWS 控制台的 Red Hat OpenShift Service 相同的凭据登录。
Kibana 界面启动。
在 Kibana 中,单击**发现**。
从左上角的下拉菜单中选择您创建的索引模式:app、audit或infra。
日志数据显示为带时间戳的文档。
展开其中一个带时间戳的文档。
单击**JSON**选项卡以显示该文档的日志条目。
{
"_index": "infra-000001",
"_type": "_doc",
"_id": "YmJmYTBlNDkZTRmLTliMGQtMjE3NmFiOGUyOWM3",
"_version": 1,
"_score": null,
"_source": {
"docker": {
"container_id": "f85fa55bbef7bb783f041066be1e7c267a6b88c4603dfce213e32c1"
},
"kubernetes": {
"container_name": "registry-server",
"namespace_name": "openshift-marketplace",
"pod_name": "redhat-marketplace-n64gc",
"container_image": "registry.redhat.io/redhat/redhat-marketplace-index:v4.7",
"container_image_id": "registry.redhat.io/redhat/redhat-marketplace-index@sha256:65fc0c45aabb95809e376feb065771ecda9e5e59cc8b3024c4545c168f",
"pod_id": "8f594ea2-c866-4b5c-a1c8-a50756704b2a",
"host": "ip-10-0-182-28.us-east-2.compute.internal",
"master_url": "https://kubernetes.default.svc",
"namespace_id": "3abab127-7669-4eb3-b9ef-44c04ad68d38",
"namespace_labels": {
"openshift_io/cluster-monitoring": "true"
},
"flat_labels": [
"catalogsource_operators_coreos_com/update=redhat-marketplace"
]
},
"message": "time=\"2020-09-23T20:47:03Z\" level=info msg=\"serving registry\" database=/database/index.db port=50051",
"level": "unknown",
"hostname": "ip-10-0-182-28.internal",
"pipeline_metadata": {
"collector": {
"ipaddr4": "10.0.182.28",
"inputname": "fluent-plugin-systemd",
"name": "fluentd",
"received_at": "2020-09-23T20:47:15.007583+00:00",
"version": "1.7.4 1.6.0"
}
},
"@timestamp": "2020-09-23T20:47:03.422465+00:00",
"viaq_msg_id": "YmJmYTBlNDktMDMGQtMjE3NmFiOGUyOWM3",
"openshift": {
"labels": {
"logging": "infra"
}
}
},
"fields": {
"@timestamp": [
"2020-09-23T20:47:03.422Z"
],
"pipeline_metadata.collector.received_at": [
"2020-09-23T20:47:15.007Z"
]
},
"sort": [
1600894023422
]
}
您可以通过修改ClusterLogging
自定义资源 (CR) 来使用 Kibana 控制台进行配置。
日志记录组件允许调整 CPU 和内存限制。
编辑openshift-logging
项目中的ClusterLogging
自定义资源 (CR)
$ oc -n openshift-logging edit ClusterLogging instance
apiVersion: "logging.openshift.io/v1"
kind: "ClusterLogging"
metadata:
name: "instance"
namespace: openshift-logging
...
spec:
managementState: "Managed"
logStore:
type: "elasticsearch"
elasticsearch:
nodeCount: 3
resources: (1)
limits:
memory: 16Gi
requests:
cpu: 200m
memory: 16Gi
storage:
storageClassName: "gp2"
size: "200G"
redundancyPolicy: "SingleRedundancy"
visualization:
type: "kibana"
kibana:
resources: (2)
limits:
memory: 1Gi
requests:
cpu: 500m
memory: 1Gi
proxy:
resources: (2)
limits:
memory: 100Mi
requests:
cpu: 100m
memory: 100Mi
replicas: 2
collection:
logs:
type: "fluentd"
fluentd:
resources: (3)
limits:
memory: 736Mi
requests:
cpu: 200m
memory: 736Mi
1 | 根据需要指定日志存储的 CPU 和内存限制和请求。对于 Elasticsearch,您必须同时调整请求值和限制值。 |
2 | 根据需要指定日志可视化工具的 CPU 和内存限制和请求。 |
3 | 根据需要指定日志收集器的 CPU 和内存限制和请求。 |
您可以扩展承载日志可视化工具的 Pod 以实现冗余。
编辑openshift-logging
项目中的ClusterLogging
自定义资源 (CR)
$ oc edit ClusterLogging instance
$ oc edit ClusterLogging instance
apiVersion: "logging.openshift.io/v1"
kind: "ClusterLogging"
metadata:
name: "instance"
....
spec:
visualization:
type: "kibana"
kibana:
replicas: 1 (1)
1 | 指定 Kibana 节点的数量。 |