Bootstrap

Apache APISIX 集成 Google Cloud Logging

日志是大型分布式系统的重要基础设施,可以帮助开发者检查观测服务运行的状态,提高服务故障排查和诊断效率以及进行多维度的分析,以此提高系统整体的稳定性和运行效率。

是由 Google Cloud 提供的全代管式实时日志管理服务,提供 EB 级的存储、搜索、分析和提醒等服务。通过 Google Cloud Loging 的日志浏览器你可以简单高效的对日志进行对日志进行搜索、排序和分析,并且 Google Cloud Logging 还提供了保存查询和丰富的图表功能可以使日志筛查结果可回溯且有更直观的呈现。

Apache APISIX 在此之前已经支持集成了 等众多开源及云日志服务解决方案。

最近,Apache APISIX 对 也完成了支持,在使用 Apache APISIX 作为网关时用户又多了一种新的日志解决方案:使用 插件,将 Apache APISIX 的请求日志转发到 Google Cloud Logging 服务中进行分析和存储。

启用该插件后, Apache APISIX 将在 Log Phase 获取请求上下文信息并序列化为 Google Cloud Logging 的 ,然后将序列化后的日志数据提交到批处理队列中,当批处理队列触发用户设置的时间或条目阈值时会将日志数据通过 Google Cloud API 批量转发到 Google Cloud Logging 服务中。

本文将为大家介绍如何在 Apache APISIX 中配置和使用 Google Cloud Logging 服务。

配置 Google Cloud

配置 Apache APISIX

启用 google-cloud-logging 插件

方式一:上传私钥文件配置

curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri":"/logging.do",
    "upstream":{
        "type":"roundrobin",
        "nodes":{
            "127.0.0.1:1980":1
        }
    },
    "plugins":{
        "google-cloud-logging":{
            // Google Cloud Logging 私钥文件
            "auth_file":"/path/to/apache-apisix-fcafc68c2f41.json",
            // 每个批处理队列最大容纳日志条目数
            "batch_max_size": 1,
            // 刷新批处理队列缓冲区的最大时间(以秒为单位)
            "inactive_timeout": 10
        }
    }
}'

方式二:通过 JSON 文本配置

如下所示:

curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri":"/logging.do",
    "upstream":{
        "type":"roundrobin",
        "nodes":{
            "127.0.0.1:1980":1
        }
    },
    "plugins":{
        "google-cloud-logging":{
            // Google Cloud Logging 私钥文件
            "auth_config":{
                "project_id":"apache-apisix",
                "private_key":"-----BEGIN RSA PRIVATE KEY-----your private key-----END RSA PRIVATE KEY-----"
            },
            // 每个批处理队列最大容纳日志条目数
            "batch_max_size": 1,
            // 刷新批处理队列缓冲区的最大时间(以秒为单位)
            "inactive_timeout": 10
        }
    }
}'

参数说明

验证插件是否成功运行

curl -i http://127.0.0.1:9080/logging.do
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Date: Fri, 10 Dec 2021 09:57:52 GMT
Server: APISIX/2.11.0

Hello, Google Cloud Logging

停用 google-cloud-logging 插件

如使用结束,可以移除 相关配置块进行停用该插件。

curl http://127.0.0.1:9080/apisix/admin/routes/1  -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri":"/logging.do",
    "upstream":{
        "type":"roundrobin",
        "nodes":{
            "127.0.0.1:1980":1
        }
    },
    "plugins":{
    }
}'

总结

本文为大家描述了 Apache APISIX 和 Google Logging 对接的详细操作步骤,希望通过本文可以让大家对于在 Apache APISIX 中使用 Google Cloud 有了更清晰的理解,方便后续进行上手实操。

Apache APISIX 不仅致力于保持自身的高性能,也一直非常重视开源生态的建设。目前 Apache APISIX 已经拥有了 10+ 个日志相关的插件,支持与业界主流的开源日志项目对接。

如果你有对接其他日志的需求,不妨访问 Apache APISIX 的 ,通过 issue 留下你的建议;或订阅Apache APISIX 的,通过邮件表达你的想法。

相关阅读