Cloud Logging에 로깅 구성
이 문서에서는 대상 워크로드 클러스터에서 ConfigMap
을 사용하여 로깅을 맞춤설정하는 방법을 설명합니다.
사용 가능한 로그
기본적으로 Migrate to Containers는 다음 소스로부터 항목을 작성합니다.
init
의stdout
에 작성된 항목, 모든 Linux 프로세스의 상위 요소./var/log/syslog
의 콘텐츠
Cloud Logging에서 지원되는 로그 파일의 항목은 각각 다음 형식으로 로그의 행에 표시됩니다. 라벨은 로그 파일을 나열하는 ConfigMap
에 정의됩니다.
date time label log-output
다음 예시는 MySQL의 항목이 있는 양식을 보여줍니다.
2019-09-22 12:43:08.681193976 +0000 UTC mysql log-output
로그 전달 기능을 확장하여 마이그레이션된 컨테이너에서 실행되는 다른 프로세스 및 애플리케이션의 로그를 전파할 수 있습니다.
Cloud Logging으로 애플리케이션 로그 전달
Migrate to Containers로 마이그레이션된 VM의 애플리케이션에서 Cloud Logging에 로깅하려면 다음이 필요합니다.
대상 워크로드 클러스터에 항목을 Cloud Logging에 기록해야 하는 파일 시스템 로그파일의 목록을 지정하는
ConfigMap
을 만듭니다.다음 섹션에 포함된 샘플
ConfigMap
을 여러 일반적인 로그 파일을 다루는 참조로 사용할 수 있습니다.ConfigMap
은 컨테이너의Deployment
또는StatefulSet
와 동일한 네임스페이스에 있어야 합니다.Deployment
또는StatefulSet
는ConfigMap
을 참조해야 합니다.Google Distributed Cloud로 마이그레이션하는 경우 Google Distributed Cloud 클러스터에 Connect를 설치합니다. Connect가 Cloud Logging으로 데이터를 다시 전달해야 합니다.
apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: my-app migrate-for-anthos-type: workload name: test-ibsc-appenhmutimiy spec: replicas: 1 selector: matchLabels: app: test-ibsc-appenhmutimiy migrate-for-anthos-type: workload strategy: {} template: metadata: creationTimestamp: null labels: app: test-ibsc-appenhmutimiy migrate-for-anthos-type: workload spec: containers: - image: gcr.io/myproject/my-container-image:v1.0.0 name: test-ibsc-appenhmutimiy readinessProbe: exec: command: - /code/ready.sh resources: {} securityContext: privileged: true volumeMounts: - mountPath: /sys/fs/cgroup name: cgroups - mountPath: /code/config/logs/ name: logs-config volumes: - hostPath: path: /sys/fs/cgroup type: Directory name: cgroups - configMap: name: <ConfigMap name> name: logs-config
일반 애플리케이션 로그에 ConfigMap
사용
다음 섹션의 참조 ConfigMap
YAML은 일반적인 애플리케이션 로그 파일 목록과 애플리케이션 라벨을 설명합니다.
참조 ConfigMap
YAML을 그대로 복사하거나 수정하여 항목을 삭제하거나 커스텀 애플리케이션 로그를 추가할 수 있습니다.
로그 파일 목록을 수정하려면 logs:
행 다음에 있는 요소를 수정합니다. 로그 하위 요소는 다음과 같은 구조로 구성됩니다.
label: - path-with-simple-wildcards
예를 들면 다음과 같습니다.
tomcat:
- /var/log/tomcat*/catalina.out
- /var/log/tomcat*/localhost.*.log
일반 앱의 ConfigMap
참조
apiVersion: v1
kind: ConfigMap
metadata:
creationTimestamp: null
name: <ConfigMap name>
data:
logs.yaml: |
logs:
mysql:
- /var/log/mysql.log
- /var/log/mysql/mysql.log
mongodb:
- /var/log/mongodb/*.log
memcached:
- /var/log/memcached.log
redis:
- /var/log/redis*.log
- /var/log/redis/*.log
rabbitmq-startup:
- /var/log/rabbitmq/startup_log
rabbitmq-startup_err:
- /var/log/rabbitmq/startup_err
rabbitmq-sasl:
- /var/log/rabbitmq/*-sasl.log
sugarcrm:
- /var/www/*/sugarcrm.log
tomcat-localhost_access_log:
- /var/log/tomcat*/localhost_access_log*.txt
tomcat:
- /var/log/tomcat*/catalina.out
- /var/log/tomcat*/localhost.*.log
apache-access:
- /var/log/apache*/access.log
- /var/log/apache*/access_log
- /var/log/httpd/access.log
- /var/log/httpd/access_log
apache-error:
- /var/log/apache*/error.log
- /var/log/apache*/error_log
- /var/log/httpd/error.log
- /var/log/httpd/error_log
cassandra:
- /var/log/cassandra/system.log
- /var/log/cassandra/cassandra.log
- /var/log/cassandra/output.log
chef-bookshelf:
- /var/log/chef-server/bookshelf/current
chef-expander:
- /var/log/chef-server/chef-expander/current
chef-pedant-http-traffic:
- /var/log/chef-server/chef-pedant/http-traffic.log
chef-server-webui:
- /var/log/chef-server/chef-server-webui/current
chef-solr:
- /var/log/chef-server/chef-solr/current
chef-erchef-current:
- /var/log/chef-server/erchef/current
chef-erchef:
- /var/log/chef-server/erchef/erchef.log.1
chef-nginx-access:
- /var/log/chef-server/nginx/access.log
chef-nginx-error:
- /var/log/chef-server/nginx/error.log
chef-nginx-rewrite-port-80:
- /var/log/chef-server/nginx/rewrite-port-80.log
chef-postgresql:
- /var/log/chef-server/postgresql/current
chef-rabbitmq:
- /var/log/chef-server/rabbitmq/current
postgresql:
- /var/log/postgres*/*.log
- /var/log/pgsql/*.log
puppet-access:
- /var/log/pe-httpd/access.log
puppet-puppetmasteraccess:
- /var/log/pe-httpd/puppetmasteraccess.log
puppet-activemq:
- /var/log/pe-activemq/activemq.log
puppet-activemq-wrapper:
- /var/log/pe-activemq/wrapper.log
puppet-mcollective:
- /var/log/pe-mcollective/mcollective.log
puppet-mcollective-audit:
- /var/log/pe-mcollective/mcollective_audit.log
puppet-puppetdb:
- /var/log/pe-puppetdb/pe-puppetdb.log
puppet-dashboard-error:
- /var/log/pe-httpd/puppetdashboard.error.log
puppet-dashboard-mcollective-client:
- /var/log/pe-puppet-dashboard/mcollective_client.log
puppet-dashboard-production:
- /var/log/pe-puppet-dashboard/production.log
puppet-dashboard-event-inspector:
- /var/log/pe-puppet-dashboard/event-inspector.log
puppet-dashboard-certificate-manager:
- /var/log/pe-puppet-dashboard/certificate_manager.log
puppet-dashboard-live-management:
- /var/log/pe-puppet-dashboard/live-management.log
puppet-console-cas-client:
- /var/log/pe-console-auth/cas_client.log
puppet-console-auth-cas:
- /var/log/pe-console-auth/cas.log
puppet-console-auth:
- /var/log/pe-console-auth/auth.log
puppet-dashboard-access:
- /var/log/pe-httpd/puppetdashboard.access.log
puppet-dashboard-failed-reports:
- /var/log/pe-puppet-dashboard/failed_reports.log
puppet-error:
- /var/log/pe-httpd/error.log
puppet-other-vhosts-access:
- /var/log/pe-httpd/other_vhosts_access.log
puppet-masterhttp:
- /var/log/pe-puppet/masterhttp.log
- /var/log/puppet/masterhttp.log
puppet-rails:
- /var/log/pe-puppet/rails.log
puppet-http:
- /var/log/puppet/http.log
gitlab-application:
- /home/git/gitlab/log/application.log
gitlab-production:
- /home/git/gitlab/log/production.log
gitlab-sidekiq:
- /home/git/gitlab/log/sidekiq.log
gitlab-unicorn-stdout:
- /home/git/gitlab/log/unicorn.stdout.log
gitlab-unicorn-stderr:
- /home/git/gitlab/log/unicorn.stderr.log
gitlab-githost:
- /home/git/gitlab/log/githost.log
gitlab-satellites:
- /home/git/gitlab/log/satellites.log
gitlab-shell:
- /home/git/gitlab-shell/gitlab-shell.log
jenkins:
- /var/log/jenkins/jenkins.log
jetty-request:
- /var/log/jetty/*.request.log
jetty-stderrout:
- /var/log/jetty/*.stderrout.log
jetty-out:
- /var/log/jetty/out.log
joomla:
- /var/www/joomla/logs/*.log
magento-system:
- /var/www/magento/var/log/system.log
magento-exception:
- /var/www/magento/var/log/exception.log
magento-report:
- /var/www/magento/var/report/*
mediawiki:
- /var/log/mediawiki/*.log
nginx-access:
- /var/log/nginx/access.log
nginx-error:
- /var/log/nginx/error.log
redmine:
- /var/log/redmine/*.log
salt-master:
- /var/log/salt/master
salt-minion:
- /var/log/salt/minion
salt-key:
- /var/log/salt/key
salt-syndic:
- /var/log/salt/syndic.loc
solr:
- /var/log/solr/*.log
sugarcrm:
- /var/www/*/sugarcrm.log
tomcat-localhost_access_log:
- /var/log/tomcat*/localhost_access_log.*.txt
tomcat:
- /var/log/tomcat*/catalina.out,/var/log/tomcat*/localhost.*.log
다음 단계
- 외부 볼륨을 마운트하는 방법 알아보기