Configurer la journalisation dans Cloud Logging
Ce document explique comment personnaliser la journalisation à l'aide d'un élément ConfigMap sur votre cluster de charge de travail cible.
Journaux disponibles
Par défaut, Migrate to Containers écrit des entrées à partir des sources suivantes :
- Entrées écrites sur
stdoutdu processusinit, le parent de tous les processus Linux - Contenus de
/var/log/syslog.
Dans Cloud Logging, les entrées des fichiers journaux compatibles apparaissent chacunes sur une ligne du journal sous la forme suivante. Les libellés sont définis dans un fichier ConfigMap qui répertorie les fichiers journaux.
date time label log-output
L'exemple ci-dessous montre à quoi ressemble une entrée provenant de MySQL :
2019-09-22 12:43:08.681193976 +0000 UTC mysql log-output
Vous pouvez choisir d'étendre la fonctionnalité de transfert des journaux afin qu'elle propage les journaux pour d'autres processus et applications exécutés dans le conteneur migré.
Transférer des journaux d'application vers Cloud Logging
Pour que les journaux des applications s'exécutant sur des VM migrées avec Migrate to Containers puissent apparaître dans Cloud Logging, les conditions suivantes doivent être remplies :
Un fichier
ConfigMapdoit être créé sur le cluster de la charge de travail cible. Il spécifie la liste des fichiers journaux du système de fichiers dont les entrées doivent être écrites dans Cloud Logging.Vous pouvez utiliser l'exemple de fichier
ConfigMapinclus dans la section suivante comme référence couvrant de nombreux fichiers journaux courants.Le fichier
ConfigMapdoit se trouver dans le même espace de noms que l'élémentDeploymentouStatefulSetde votre conteneur.DeploymentouStatefulSetdoit faire référence àConfigMap.Si vous migrez vers Google Distributed Cloud, installez Connect sur votre cluster Google Distributed Cloud. Vous devez vous connecter pour renvoyer les données à 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
Utiliser ConfigMap pour les journaux d'application courants
Le fichier YAML de référence ConfigMap de la section suivante comprend une liste des fichiers journaux d'application courants et leurs étiquettes d'application.
Vous pouvez recopier ce fichier ConfigMap tel quel ou le modifier pour supprimer des entrées ou en ajouter pour vos journaux d'application personnalisés.
Pour modifier la liste des fichiers journaux, modifiez les éléments situés après la ligne logs:. La structure des sous-éléments de journaux est la suivante :
label: - path-with-simple-wildcards
Exemple :
tomcat:
- /var/log/tomcat*/catalina.out
- /var/log/tomcat*/localhost.*.log
Fichier ConfigMap de référence pour les applications courantes
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
Étapes suivantes
- Découvrez comment installer des volumes externes.