Bug 2179130 - [RFE] Filter ops in RGW Ops log prior to storage
Summary: [RFE] Filter ops in RGW Ops log prior to storage
Keywords:
Status: ASSIGNED
Alias: None
Product: Red Hat Ceph Storage
Classification: Red Hat Storage
Component: RGW
Version: 5.3
Hardware: All
OS: All
unspecified
low
Target Milestone: ---
: 8.0
Assignee: Yuval Lifshitz
QA Contact: Madhavi Kasturi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-03-16 16:53 UTC by James Poole
Modified: 2023-08-16 12:54 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHCEPH-6270 0 None None None 2023-03-16 16:54:01 UTC

Description James Poole 2023-03-16 16:53:34 UTC
Description of problem:
When using a load balancer in front of RGWs all healthchecks are recorded in the ops log. This is unnecessary and causes a large build up of logs.

Version-Release number of selected component (if applicable):
16.2.10-94.el8cp
16.2.10-138.el8cp

How reproducible:
Consistently and easily.

Steps to Reproduce:

1. Deploy CEPH with RGWs and set "rgw_enable_ops_log" to true

2. Configure HAProxy with RGW backends:

frontend prod_rgws
    bind x.x.x.x:443 ssl crt /var/lib/haproxy/cert.pem
    http-request set-header rgwenv prod
    default_backend rgws_backend
  
backend rgws_backend
    server rgw0 127.0.0.1:8080 weight 100 check 
    balance static-rr
    option forwardfor
    option httpchk GET /swift/healthcheck

3. Observe logs in <zone name>.rgw.logs pool with "radosgw-admin log show --object [ object name from radosgw-admin log list]"

Actual results:
The healthcheck operations appearing in the ops log. Example message:
        {
            "bucket": "",
            "time": "2023-03-16T16:45:57.317366Z",
            "time_local": "2023-03-16T12:45:57.317366-0400",
            "remote_addr": "127.0.0.1",
            "user": "",
            "operation": "get_health_check",
            "uri": "GET /swift/healthcheck HTTP/1.0",
            "http_status": "200",
            "error_code": "",
            "bytes_sent": 0,
            "bytes_received": 0,
            "object_size": 0,
            "total_time": 0,
            "user_agent": "",
            "referrer": "",
            "trans_id": "tx0000008217415f8131a59-00641347c5-a4be9-wdc-prod",
            "temp_url": false
        }

Expected results:
This is expected but not desired. Ideally these healthchecks could be filtered out of the ops log prior to being stored in the log pool.

Additional info:
Providing a mechanism to exclude the "get_health_check" operation would prevent the ops log from growing extremely large.


Note You need to log in before you can comment on or make changes to this bug.