일부 연구를 마친 후 사용자 지정 Apache 컨테이너에서 로그 전달자 문제가 해결되었습니다.
"표준 리디렉션"(/ dev/stdout 또는/proc/self/fd/1 사용)이 작동하지 않는 이유는 "로깅 에이전트가있는 사이드카 컨테이너"
apiVersion: v1
data:
fluentd.conf: |
<source>
type tail
format none
path /var/log/access.log
pos_file /var/log/access.log.pos
tag count.format1
</source>
<source>
type tail
format none
path /var/log/error.log
pos_file /var/log/error.log.pos
tag count.format2
</source>
<match **>
type google_cloud
</match>
kind: ConfigMap
metadata:
name: my-fluentd-config
2)이 개 컨테이너 포드를 만들 : 사용자 정의 아파치 + 로그 에이전트
1) 당신이 Fluentd에 구성을 설정거야 configMag 파일을 만듭니다. 두 컨테이너 모두 로그 폴더를 마운트합니다.
apiVersion: v1
kind: Pod
metadata:
name: my-sidecar
labels:
app: my-sidecar
spec:
volumes:
- name: varlog
emptyDir: {}
- name: config-volume
configMap:
name: my-fluentd-config
containers:
- name: my-apache
image: <your_custom_image_repository>
ports:
- containerPort: 80
name: http
protocol: TCP
volumeMounts:
- name: varlog
mountPath: /var/log
- name: log-agent
image: gcr.io/google_containers/fluentd-gcp:1.30
env:
- name: FLUENTD_ARGS
value: -c /etc/fluentd-config/fluentd.conf
volumeMounts:
- name: varlog
mountPath: /var/log
- name: config-volume
mountPath: /etc/fluentd-config
3) 내-아파치 용기에 입력 : 만 로그 에이전트는 Fluentd에 설정 마운트
및 변경/다음 파일 사용하는 httpd.conf 파일을 확인하십시오
을
ErrorLog /var/log/error.log
CustomLog /var/log/access.log common
(변경 사항이 있으면 아파치를 다시 시작해야합니다.))
4) 이제 Google 클라우드 콘솔에서 -> 당신은 같은 필터를 사용하여 스택 드라이버의 아파치 액세스/오류 로그를 볼 수 있습니다 로그 :
resource.type="container"
labels."compute.googleapis.com/resource_name"="my-sidecar"
나는/dev에 대한 링크를 만들려고/stdout (예를 들면)하지만 작동하지 않습니다. 내 pure apache2 컨테이너의 httpd.conf도 확인했는데 액세스 로그는 CustomLog/proc/self/fd/1 공통 으로 설정되어 있고 컨테이너 로그는 Stackdriver에서 작동합니다. 나는이 방법으로 순수한 HTTP의 액세스 로그 변경 다른 시도 만들려면 : 때 CustomLog "로그/access_log를"다음 을 결합 내가 같이 링크를 만들어 : access.log의 -이 경우도>는/dev/표준 출력 과 로그 작업. 하지만 내 사용자 지정 아파치에 동일한 시도를하면 Stackdriver에 아무 로그도 표시되지 않습니다 .. – suikoy
구성 파일의 access_log가 켜져 있는지 확인할 수 있습니까? –
사실 CustomLog "logs/access_log"를 설정하면 사용자 정의 아파치에서 실제로 작동합니다. 여기서 access_log는 링크가 아닌 파일이고 내 웹 서버의 모든 액세스를 볼 수 있습니다. 로그를/dev/stdout 또는/proc/self/fd/1로 리디렉션하려고하면 문제가 발생합니다. 그 경우 아파치는 항상 작동하지만 stackdriver 또는 kubernetes 로그에서 아무 것도 볼 수 없습니다 ... – suikoy