115 Star 697 Fork 166

GVPiresty / Apache APISIX

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
google-cloud-logging.md 8.96 KB
一键复制 编辑 原始数据 按行查看 历史
kwanhur 提交于 2022-03-13 19:49 . docs: unify plugin Description (#6532)
title
google-cloud-logging

Description

google-cloud-logging plugin is used to send the access log of Apache APISIX to the Google Cloud Logging Service.

This plugin provides the ability to push log data as a batch to Google Cloud logging Service.

For more info on Batch-Processor in Apache APISIX please refer: Batch-Processor

Attributes

Name Requirement Default Description
auth_config Semi-optional one of auth_config or auth_file must be configured
auth_config.private_key required the private key parameters of the Google service account
auth_config.project_id required the project id parameters of the Google service account
auth_config.token_uri optional https://oauth2.googleapis.com/token the token uri parameters of the Google service account
auth_config.entries_uri optional https://logging.googleapis.com/v2/entries:write google cloud logging service API
auth_config.scopes optional ["https://www.googleapis.com/auth/logging.read","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/logging.admin","https://www.googleapis.com/auth/cloud-platform"] the access scopes parameters of the Google service account, refer to: OAuth 2.0 Scopes for Google APIs
auth_file semi-optional path to the google service account json file(Semi-optional, one of auth_config or auth_file must be configured)
ssl_verify optional true enable SSL verification, option as per OpenResty docs
resource optional {"type": "global"} the Google monitor resource, refer to: MonitoredResource
log_id optional apisix.apache.org%2Flogs google cloud logging id, refer to: LogEntry

The plugin supports the use of batch processors to aggregate and process entries(logs/data) in a batch. This avoids frequent data submissions by the plugin, which by default the batch processor submits data every 5 seconds or when the data in the queue reaches 1000. For information or custom batch processor parameter settings, see Batch-Processor configuration section.

How To Enable

The following is an example of how to enable the google-cloud-logging for a specific route.

Full configuration

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "plugins": {
        "google-cloud-logging": {
            "auth_config":{
                "project_id":"apisix",
                "private_key":"-----BEGIN RSA PRIVATE KEY-----your private key-----END RSA PRIVATE KEY-----",
                "token_uri":"https://oauth2.googleapis.com/token",
                "scopes":[
                    "https://www.googleapis.com/auth/logging.admin"
                ],
                "entries_uri":"https://logging.googleapis.com/v2/entries:write"
            },
            "resource":{
                "type":"global"
            },
            "log_id":"apisix.apache.org%2Flogs",
            "inactive_timeout":10,
            "max_retry_count":0,
            "buffer_duration":60,
            "retry_delay":1,
            "batch_max_size":1
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    },
    "uri": "/hello"
}'

Minimize configuration

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "plugins": {
        "google-cloud-logging": {
            "auth_config":{
                "project_id":"apisix",
                "private_key":"-----BEGIN RSA PRIVATE KEY-----your private key-----END RSA PRIVATE KEY-----"
            }
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    },
    "uri": "/hello"
}'

Test Plugin

  • Send request to route configured with the google-cloud-logging plugin
$ curl -i http://127.0.0.1:9080/hello
HTTP/1.1 200 OK
...
hello, world
  • Login to Google Cloud to view logging service

Google Cloud Logging Service

Disable Plugin

Disabling the google-cloud-logging plugin is very simple, just remove the JSON configuration corresponding to google-cloud-logging.

$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "uri": "/hello",
    "plugins": {},
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    }
}'
Lua
1
https://gitee.com/iresty/apisix.git
git@gitee.com:iresty/apisix.git
iresty
apisix
Apache APISIX
master

搜索帮助