Cloud Logging へのロギングを構成する
このドキュメントでは、ターゲット ワークロード クラスタで ConfigMap を使用してロギングをカスタマイズする方法について説明します。
使用可能なログ
デフォルトでは、Migrate to Containers は次のソースからエントリを書き込みます。
- すべての Linux プロセスの親である
initのstdoutに書き込まれたエントリ。 /var/log/syslogのコンテンツ。
Cloud Logging では、サポートされているログファイルのエントリが次の形式でそれぞれのログの 1 行に表示されます。ラベルは 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 をインストールします。Cloud Logging にデータを返すには、Connect が必要です。
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: 行に続く要素を編集します。log サブ要素は、次の構造で構成されています。
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
次のステップ
- 外部ボリュームのマウント方法を確認する。