pbhoj
March 31, 2020, 5:33am
1
Is there a way to enable access logging only on the gateways? I tried the following EnvoyFilter but it doesn’t seem to add anything to the Envoy config.
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: envoy-access-logging-ingress
namespace: istio-system
spec:
configPatches:
- applyTo: NETWORK_FILTER
match:
context: ANY
listener:
filterChain:
filter:
name: envoy.http_connection_manager
portNumber: 443
patch:
operation: ADD
value:
config:
access_log:
name: envoy.file_access_log
typed_config:
"@type": "type.googleapis.com/envoy.config.accesslog.v2.FileAccessLog"
path: "/dev/stdout"
workloadSelector:
labels:
app: istio-ingressgateway
1 Like
Hi phhoj, i was able to use below to enable access logging only on the gateways with json format
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: access-log
spec:
workloadSelector:
labels:
istio: ingressgateway
configPatches:
- applyTo: NETWORK_FILTER
match:
context: ANY
listener:
filterChain:
filter:
name: "envoy.http_connection_manager"
patch:
operation: MERGE
value:
typed_config:
"@type": "type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager"
access_log:
- name: envoy.file_access_log
config:
path: /dev/stdout
jsonFormat:
authority: "%REQ(:AUTHORITY)%"
bytes_received: "%BYTES_RECEIVED%"
bytes_sent: "%BYTES_SENT%"
downstream_local_address: "%DOWNSTREAM_LOCAL_ADDRESS%"
downstream_remote_address: "%DOWNSTREAM_REMOTE_ADDRESS%"
duration: "%DURATION%"
istio_policy_status: "%DYNAMIC_METADATA(istio.mixer:status)%"
method: "%REQ(:METHOD)%"
path: "%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%"
protocol: "%PROTOCOL%"
request_id: "%REQ(X-REQUEST-ID)%"
requested_server_name: "%REQUESTED_SERVER_NAME%"
response_code: "%RESPONSE_CODE%"
response_flags: "%RESPONSE_FLAGS%"
route_name: "%ROUTE_NAME%"
start_time: "%START_TIME%"
upstream_cluster: "%UPSTREAM_CLUSTER%"
upstream_host: "%UPSTREAM_HOST%"
upstream_local_address: "%UPSTREAM_LOCAL_ADDRESS%"
upstream_service_time: "%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%"
upstream_transport_failure_reason: "%UPSTREAM_TRANSPORT_FAILURE_REASON%"
user_agent: "%REQ(USER-AGENT)%"
x_forwarded_for: "%REQ(X-FORWARDED-FOR)%"
1 Like
pbhoj
March 31, 2020, 5:29pm
3
Worked for me, thank you so much!
kutsav
August 10, 2020, 2:40pm
4
Hi,
Is this working with istio 1.6 as well? I tried enabling logs for mesh then applied this config, but i can see both sidecar envoy logs as well as ingress gateway logs. Any suggestions?
I tryied thia but i ended up in a weird state because the accesslog is an array and now i have 2 items there (confirmed with istio proxy-config all) and i cant remove it, even with deleting the filter