开启envoy 访问日志
1、静态配置文件
设置静态配置文件中
access_log:
name: envoy.file_access_log
typed_config:
"@type": type.googleapis.com/envoy.config.accesslog.v2.FileAccessLog
path: /dev/stdout
配置文件整体内容
static_resources:
listeners:
- address:
socket_address:
address: 0.0.0.0
port_value: 82
listener_filters:
- name: "envoy.filters.listener.tls_inspector"
typed_config: {}
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
codec_type: auto
stat_prefix: ingress_http
access_log:
name: envoy.file_access_log
typed_config:
"@type": type.googleapis.com/envoy.config.accesslog.v2.FileAccessLog
path: /dev/stdout
route_config:
name: local_route
virtual_hosts:
- name: service
domains:
- "*"
routes:
- match:
prefix: "/"
route:
cluster: ping-service
http_filters:
- name: envoy.filters.http.router
2、xds服务
xds服务 数据结构makeAccessLog
manager := &hcm.HttpConnectionManager{
CodecType: hcm.HttpConnectionManager_AUTO,
StatPrefix: "ingress_http",
RouteSpecifier: &hcm.HttpConnectionManager_RouteConfig{
RouteConfig: &v2.RouteConfiguration{
Name: routeConfigName,
VirtualHosts: []*v2route.VirtualHost{&virtualHost},
},
},
HttpFilters: []*hcm.HttpFilter{{
Name: "envoy.filters.http.router",
}},
AccessLog: []*v21.AccessLog{
{
Name: "envoy.file_access_log",
ConfigType: &v21.AccessLog_TypedConfig{
TypedConfig: makeAccessLog(),
},
},
},
}
func makeAccessLog() *any.Any {
acclogCfg := &acclog.FileAccessLog{
Path: "/dev/stdout",
/*AccessLogFormat: &acclog.FileAccessLog_Format{
Format: "",
},*/
}
pbst, err := ptypes.MarshalAny(acclogCfg)
if err != nil {
panic(err)
}
return pbst
}