4.4. ログの管理
コンテナー化されたサービスのログファイルは /var/log/containers/<service>
に保存されます (例: /var/log/containers/cinder
)。コンテナー内で実行されているサービスからのログファイルはローカルに保存されます。利用可能なログは、有効/無効のサービスによって異なる場合があります。
以下の例では、10
メガバイトに達すると logrotate
のタスクを強制的に新しいログファイルを作成し、ログファイルを 14
日間保持します。
parameter_defaults LogrotateRotate: '14' LogrotatePurgeAfterDays: '14' LogrotateMaxsize: '10M'
ログローテーションのパラメーターをカスタマイズするには、これらの parameter_defaults
を環境テンプレートに追加してから、オーバークラウドをデプロイします。
openstack overcloud deploy \ --timeout 100 \ --templates /usr/share/openstack-tripleo-heat-templates \ ... \ -e /home/stack/templates/rotate.yaml \ --log-file overcloud_deployment_90.log
検証: オーバークラウドノードで logrotate_crond
が更新されていることを確認します。
[root@compute0 ~]# podman exec -it logrotate_crond cat /etc/logrotate-crond.conf /var/log/containers/*/*log /var/log/containers/*/*/*log /var/log/containers/*/*err { daily rotate 14 maxage 14 # minsize 1 is required for GDPR compliance, all files in # /var/log/containers not managed with logrotate will be purged! minsize 1 # Do not use size as it's not compatible with time-based rotation rules # required for GDPR compliance. maxsize 10M missingok notifempty copytruncate delaycompress compress }
以下の例では、nova-compute.log
ファイルが 1 度ローテーションされました。
[root@compute0 ~]# ls -lah /var/log/containers/nova/ total 48K drwxr-x---. 2 42436 42436 79 May 12 09:01 . drwxr-x---. 7 root root 82 Jan 21 2021 .. -rw-r--r--. 1 42436 42436 12K May 12 14:00 nova-compute.log -rw-r--r--. 1 42436 42436 33K May 12 09:01 nova-compute.log.1 -rw-r--r--. 1 42436 42436 0 Jan 21 2021 nova-manage.log
ログファイルのローテーションプロセスは logrotate_crond
コンテナーで実行されます。/var/spool/cron/root
設定ファイルは読み取り、プロセスに送信された設定です。
検証: 設定が任意のコントローラーノードに存在することを確認します。
[root@controller0 ~]# podman exec -it logrotate_crond /bin/sh ()[root@9410925fded9 /]$ cat /var/spool/cron/root # HEADER: This file was autogenerated at 2021-01-21 16:47:27 +0000 by puppet. # HEADER: While it can still be managed manually, it is definitely not recommended. # HEADER: Note particularly that the comments starting with 'Puppet Name' should # HEADER: not be deleted, as doing so could cause duplicate cron jobs. # Puppet Name: logrotate-crond PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh 0 * * * * sleep `expr ${RANDOM} \% 90`; /usr/sbin/logrotate -s /var/lib/logrotate/logrotate-crond.status /etc/logrotate-crond.conf 2>&1|logger -t logrotate-crond
/var/lib/config-data/puppet-generated/crond/etc/logrotate-crond.conf
ファイルは logrotate_crond
コンテナー内の /etc/logrotate-crond.conf
にバインドされます。
以前の設定ファイルは過去の理由で残されていますが、使用されません。