やりたいこと
Red Hat OpenShift Service Mesh(2.1.0-0 provided by Red Hat, Inc)Operatorを利用して付与されるistio-proxy(Envoy)を通過するhttp accessをログとして表示させる。
環境情報
- Openshift v4.6
- Red Hat OpenShift Service Mesh(2.1.0-0 provided by Red Hat, Inc)Operator
やり方
以下のServiceMeshControlPlane (SMCP) オブジェクトをeditし
$ oc get smcp -n istio-system NAME READY STATUS PROFILES VERSION AGE basic 10/10 ComponentsReady ["default"] 2.1.0 5d
spec配下に以下を追記。
spec: proxy: accessLogging: file: name: /dev/stdout
サイドカーが付与されているDeploymentの再起動は不要(rollout restart
等)でistio-proxyにログが出力される。
以下、補足です。
補足
istioctlで導入したIstioの場合、以下のConfigmapを編集します。
$ kubectl edit configmap istio -n istio-system
しかし、OpenshiftのOperator経由で入れた場合は同リソースが存在しないので、代わりに以下を編集することで
$ oc edit smcp basic -n istio-system servicemeshcontrolplane.maistra.io/basic edited
HTTPアクセスログが見えるようになりました。
istio-proxy [...] "GET /static/bootstrap/css/bootstrap.min .css HTTP/1.1" 200 - via_upstream - "-" 0 121200 7 3 "172.30.154.0,172.30.128.96" "Mozilla/5.0 (Windows NT 10.0 ; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62" istio-proxy [...] "GET /static/bootstrap/js/bootstrap.min. js HTTP/1.1" 200 - via_upstream - "-" 0 37045 9 8 "...,172.30.154.185" "Mozilla/5.0 (Windows NT 10.0 ; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62" ...
以上です。