# N2T log analytics ```json GET filebeat-uc3-ezid-unit-prd*/_search { "_source": false, "fields":["@timestamp","request"], "query": { "bool": { "must": [ { "match": { "cdl.fqsn": "uc3-ezid-n2t-prd" } }, { "query_string": { "query": "/\\\"(GET|POST) \\/ark:\\/?(.*)/" } } ] } } } ``` Find arks with periods: ```json GET filebeat-uc3-ezid-unit-prd*/_search { "_source": false, "fields":["@timestamp","request"], "query": { "bool": { "must": [ { "match": { "cdl.fqsn": "uc3-ezid-n2t-prd" } }, { "terms": { "response": [302, 303] } }, { "query_string": { "query": "request.keyword: /\\\"[A-Z]{3,6} \\/ark:\\/?[0-9]{5}\\/(.*)\\.(.*) HTTP.*/" } } ] } } } ``` ``` POST _plugins/_sql { "query": "SELECT @timestamp, request, substring(request, locate(' /', request)+2, locate(' H', request)-7) as pid FROM filebeat-uc3-ezid-unit-prd* WHERE cdl.fqsn='uc3-ezid-n2t-prd' AND response IN (302, 303) and request LIKE '\"GET /%ark:/20775%'LIMIT 100" } ``` older below. Note that date functions have been diabled... ``` POST _plugins/_sql { "query": "SELECT @timestamp, http.response.status_code as status, url.original as url, source.address as source FROM filebeat-uc3-ezid-unit-prd* WHERE @timestamp >= adddate(current_date(), INTERVAL -1 day) AND http.response.status_code IN (302, 303) AND host.name IN ('uc3-ezidn2t-prd01.cdlib.org', 'uc3-ezidn2t-prd02.cdlib.org') LIMIT 10" } ``` ``` POST _plugins/_sql { "query": "SELECT @timestamp, http.response.status_code as status, url.original as url, source.address as source FROM filebeat-uc3-ezid-unit-prd* WHERE @timestamp >= '2024-07-10 00:00:00' AND http.response.status_code IN (302, 303) AND host.name IN ('uc3-ezidn2t-prd01.cdlib.org', 'uc3-ezidn2t-prd02.cdlib.org') LIMIT 10" } ``` ``` POST _plugins/_sql { "query": "SELECT @timestamp, http.response.status_code as status, url.original as url, substring(url.original, 2, locate(':', url.original)-2) as scheme, source.address as source FROM filebeat-uc3-ezid-unit-prd* WHERE @timestamp >= '2024-07-10 00:00:00' AND http.response.status_code IN (302, 303) AND host.name IN ('uc3-ezidn2t-prd01.cdlib.org', 'uc3-ezidn2t-prd02.cdlib.org') LIMIT 10" } ``` ``` POST _plugins/_sql { "query": "SELECT count(*) as n, left(url.original, locate(':', url.original)) as scheme FROM filebeat-uc3-ezid-unit-prd* WHERE @timestamp >= '2024-07-10 00:00:00' AND http.response.status_code IN (302, 303) AND host.name IN ('uc3-ezidn2t-prd01.cdlib.org', 'uc3-ezidn2t-prd02.cdlib.org') GROUP BY scheme" } ``` ``` ``` ``` ```