搜索

2.3. 操作故障排除

download PDF

本节介绍如何配置 3scale 审计日志记录以在 OpenShift 上显示,以及如何访问 OpenShift 上的 3scale 日志和作业队列。

2.3.1. 在 OpenShift 中配置 3scale API 管理审计日志记录

这可让所有日志位于一个位置,供 Elasticsearch、Fluentd 和 Kibana(EFK)日志工具查询。这些工具提高了对 3scale 配置所做的更改的可见性,以及进行了这些更改的时间。例如,这包括对计费、应用计划、应用程序编程接口(API)配置等的变化。

先决条件

  • 3scale 2.14 部署。

流程

配置审计日志记录到 stdout,以将所有应用日志转发到标准 OpenShift 容器集日志。

注意事项:

  • 默认情况下,当 3scale 内部部署 3scale 时,将审计日志记录输出到 stdout 被禁用,您需要配置此功能才能完全正常工作。
  • 对于托管的 3scale,不提供将审计日志记录输出到 stdout 的功能。

2.3.2. 启用审计日志记录

3scale 使用 features.yml 配置文件启用一些全局功能。要将审计日志记录启用到 stdout,您必须从 ConfigMap 挂载此文件,以替换默认的 文件。依赖于 features.yml 的 OpenShift pod 是 system-appsystem-sidekiq

先决条件

  • 您必须具有 3scale 项目的管理员访问权限。

流程

  1. 输入以下命令将审计日志记录启用到 stdout

    $ oc patch configmap system -p '{"data": {"features.yml": "features: &default\n  logging:\n    audits_to_stdout: true\n\nproduction:\n  <<: *default\n"}}'
  2. 导出以下环境变量:

    $ export PATCH_SYSTEM_VOLUMES='{"spec":{"template":{"spec":{"volumes":[{"emptyDir":{"medium":"Memory"},"name":"system-tmp"},{"configMap":{"items":[{"key":"zync.yml","path":"zync.yml"},{"key":"rolling_updates.yml","path":"rolling_updates.yml"},{"key":"service_discovery.yml","path":"service_discovery.yml"},{"key":"features.yml","path":"features.yml"}],"name":"system"},"name":"system-config"}]}}}}'
  3. 输入以下命令将更新的部署配置应用到相关的 OpenShift pod:

    $ oc patch dc system-app -p $PATCH_SYSTEM_VOLUMES
    
    $ oc patch dc system-sidekiq -p $PATCH_SYSTEM_VOLUMES

2.3.3. 为 Red Hat OpenShift 配置日志记录

当您启用了审计日志记录以将 3scale 应用程序日志转发到 OpenShift 后,您可以使用日志记录工具监控 3scale 应用。

有关在 Red Hat OpenShift 中配置日志记录的详情,请参考以下内容:

2.3.4. 访问日志

每个组件的部署配置都包含用于访问和异常的日志。如果您在部署时遇到问题,请检查这些日志以了解详细信息。

按照以下步骤访问 3scale 中的日志:

流程

  1. 查找您要日志的 pod 的 ID:

    $ oc get pods
  2. 输入 oc logs 和所选 pod 的 ID:

    $ oc logs <pod>

    系统 pod 有两个容器,各自具有单独的日志。要访问容器的日志,请使用 system-providersystem-developer pod 指定 --container 参数:

    $ oc logs <pod> --container=system-provider
    
    $ oc logs <pod> --container=system-developer

2.3.5. 检查作业队列

作业队列包含从 system-sidekiq pod 发送的信息日志。使用这些日志来检查集群是否正在处理数据。您可以使用 OpenShift CLI 查询日志:

$ oc get jobs
$ oc logs <job>

2.3.6. 防止单调增长

为防止单例增长,3scale 默认调度 3scale 调度,自动清除以下表:

  • user_sessions

    清理会每周触发一次,并删除超过两周的记录。

  • audits

    清理会每天触发一次,并删除超过三个月的记录。

  • log_entries

    每天清理一次,并删除超过 6 个月的记录。

  • event_store_events

    清理会在一周内触发一次,并删除超过一周的记录。

除以上列出的表外,下表需要数据库管理员手动清除:

  • alerts
表 2.1. SQL 清除命令
数据库类型SQL 命令

MySQL

DELETE FROM alerts WHERE timestamp < NOW() - INTERVAL 14 DAY;

PostgreSQL

DELETE FROM alerts WHERE timestamp < NOW() - INTERVAL '14 day';

Oracle

DELETE FROM alerts WHERE timestamp <= TRUNC(SYSDATE) - 14;
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.