Значением по умолчанию для уровня ведения журнала в Mixer является информация.И логи, предоставленные вами, подтверждают, что у вас есть эти настройки.Поэтому в журналах собирается много избыточной информации, и для некоторых источников можно уменьшить уровень ведения журнала.
Вы можете изменить его двумя способами:
На рабочем модуле без перезапуска.
В ваших журналах вы найдете следующую строку:
2018-12-12T17:54:55.461261Z info ControlZ available at 192.168.87.249:9876
Это означает, что в контейнере микшера на порту 9876 вы можете найти IstioВеб-интерфейс ControlZ.Чтобы получить к нему доступ с компьютера с установленным kubectl
, необходимо выполнить следующую команду:
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l istio=mixer,istio-mixer-type=telemetry -o jsonpath='{.items[0].metadata.name}') 9876:9876 &
После этого в браузере перейдите по ссылке http://localhost:9876/scopez/, и выпоявится следующая панель инструментов, где вы можете изменить уровни журнала:
Добавьте --log_output_level
флаг кistio-telemetry
развертывание для контейнера mixer
.
Вот описание флага из документации микшера:
- log_output_level string
Минимальный уровень ведения журнала для каждой области, разделенный запятыми, для вывода сообщений в виде:,:, ... где область может быть одним из [адаптеров, API, атрибутов, по умолчанию, grpcAdapter, loadhedding] и уровняможет быть одним из [debug, info, warn, error, none] (по умолчанию «default: info»)
Обратите внимание, что для ключа --log_output_level attributes:warn,api:error
в файле yaml вам необходимо использовать один изследующие:
- значение
- --log_output_level=attributes:warn,api:error
или - значения
- --log_output_level
и - attributes:warn,api:error
на разных строках
Пример развертывания:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
labels:
chart: mixer-1.0.4
istio: mixer
release: istio
name: istio-telemetry
namespace: istio-system
spec:
progressDeadlineSeconds: 600
replicas: 2
revisionHistoryLimit: 10
selector:
matchLabels:
app: telemetry
istio: mixer
istio-mixer-type: telemetry
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ""
sidecar.istio.io/inject: "false"
creationTimestamp: null
labels:
app: telemetry
istio: mixer
istio-mixer-type: telemetry
spec:
containers:
- args: #Flags for the Mixer process
- --address #Flag on two different lines
- unix:///sock/mixer.socket
- --configStoreURL=k8s:// #Flag with '='
- --configDefaultNamespace=istio-system
- --trace_zipkin_url=http://zipkin:9411/api/v1/spans
- --log_output_level=attributes:warn,api:error # <------ THIS LINE IS WHAT YOU ARE LOOKING FOR
env:
- name: GODEBUG
value: gctrace=2
image: docker.io/istio/mixer:1.0.4
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /version
port: 9093
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 1
name: mixer
ports:
- containerPort: 9093
protocol: TCP
- containerPort: 42422
protocol: TCP
resources:
requests:
cpu: 10m
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /sock
name: uds-socket
- args:
- proxy
- --serviceCluster
- istio-telemetry
- --templateFile
- /etc/istio/proxy/envoy_telemetry.yaml.tmpl
- --controlPlaneAuthPolicy
- MUTUAL_TLS
env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: INSTANCE_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
image: docker.io/istio/proxyv2:1.0.4
imagePullPolicy: IfNotPresent
name: istio-proxy
ports:
- containerPort: 15090
name: http-envoy-prom
protocol: TCP
resources:
requests:
cpu: 10m
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/certs
name: istio-certs
readOnly: true
- mountPath: /sock
name: uds-socket
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: istio-mixer-service-account
serviceAccountName: istio-mixer-service-account
terminationGracePeriodSeconds: 30
volumes:
- name: istio-certs
secret:
defaultMode: 420
optional: true
secretName: istio.istio-mixer-service-account
- emptyDir: {}
name: uds-socket
Кроме того, вы можете настроить ротацию журналов для процесса микширования, используя следующие флаги:
- log_rotate string Путь к необязательному вращающемуся файлу журнала
- log_rotate_max_age int Максимальный возраст в днях файла журнала, после которого файл поворачивается (0 означает отсутствие ограничения) (по умолчанию 30)
- log_rotate_max_backups int Максимальное количество резервных копий файлов журнала, которые должны храниться до удаления более старых файлов (0 означает отсутствие ограничения) (по умолчанию 1000)
- log_rotate_max_size int Максимальный размер в мегабайтахфайл журнала, после которого файл поворачивается (по умолчанию 104857600)
Однако у меня нет возможности создать огромное количество таких журналов и проверить, как это работает.
Ссылки:
К сожалению, официальная документация не очень хороша, но, возможно, она как-то помогает.
И в качестве бонуса здесь это список всехфлаги микшерного сервера.