From bc3d859571b82428d03732db481de3e4402d7d44 Mon Sep 17 00:00:00 2001 From: Wenkai Yin Date: Fri, 13 Oct 2017 16:06:25 +0800 Subject: [PATCH] make log rotate days configurable --- make/common/log/rotate.sh | 9 ++++++++- make/common/templates/log/env | 1 + make/dev/docker-compose.yml | 2 ++ make/docker-compose.tpl | 2 ++ make/harbor.cfg | 3 +++ make/photon/log/Dockerfile | 2 +- make/prepare | 9 ++++++++- 7 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 make/common/templates/log/env diff --git a/make/common/log/rotate.sh b/make/common/log/rotate.sh index 3f96df9bc..5f102dffc 100755 --- a/make/common/log/rotate.sh +++ b/make/common/log/rotate.sh @@ -3,7 +3,14 @@ set -e echo "Log rotate starting..." #The logs n days before will be compressed. -n=14 +n=$LOG_ROTATE_DAYS +if [ -z "$n" ] +then + n=3 +fi + +echo "logs rotate days: $n" + path=/var/log/docker list="" diff --git a/make/common/templates/log/env b/make/common/templates/log/env new file mode 100644 index 000000000..d0c9d994f --- /dev/null +++ b/make/common/templates/log/env @@ -0,0 +1 @@ +LOG_ROTATE_DAYS=$log_rotate_days \ No newline at end of file diff --git a/make/dev/docker-compose.yml b/make/dev/docker-compose.yml index faeee4ce6..b7bb7e145 100644 --- a/make/dev/docker-compose.yml +++ b/make/dev/docker-compose.yml @@ -5,6 +5,8 @@ services: context: ../../ dockerfile: make/photon/log/Dockerfile container_name: harbor-log + env_file: + - ../common/config/log/env restart: always volumes: - /var/log/harbor/:/var/log/docker/:z diff --git a/make/docker-compose.tpl b/make/docker-compose.tpl index ec516f0e1..fe7aaa147 100644 --- a/make/docker-compose.tpl +++ b/make/docker-compose.tpl @@ -3,6 +3,8 @@ services: log: image: vmware/harbor-log:__version__ container_name: harbor-log + env_file: + - ./common/config/log/env restart: always volumes: - /var/log/harbor/:/var/log/docker/:z diff --git a/make/harbor.cfg b/make/harbor.cfg index 224b75b3d..41c7ab147 100644 --- a/make/harbor.cfg +++ b/make/harbor.cfg @@ -34,6 +34,9 @@ admiral_url = NA #Please update it before deployment, subsequent update will cause Clair's API server and Harbor unable to access Clair's database. clair_db_password = password +#The logs n days before will be compressed +log_rotate_days = 3 + #NOTES: The properties between BEGIN INITIAL PROPERTIES and END INITIAL PROPERTIES #only take effect in the first boot, the subsequent changes of these properties #should be performed on web ui diff --git a/make/photon/log/Dockerfile b/make/photon/log/Dockerfile index e103d530e..af0d78da9 100644 --- a/make/photon/log/Dockerfile +++ b/make/photon/log/Dockerfile @@ -4,7 +4,7 @@ ADD make/common/log/rsyslog.conf /etc/rsyslog.conf # rotate logs weekly # notes: file name cannot contain dot, or the script will not run -ADD make/common/log/rotate.sh /etc/cron.weekly/rotate +ADD make/common/log/rotate.sh /etc/cron.daily/rotate # rsyslog configuration file for docker ADD make/common/log/rsyslog_docker.conf /etc/rsyslog.d/ diff --git a/make/prepare b/make/prepare index d429e1496..91bd6f3a5 100755 --- a/make/prepare +++ b/make/prepare @@ -161,6 +161,7 @@ uaa_endpoint = rcp.get("configuration", "uaa_endpoint") uaa_clientid = rcp.get("configuration", "uaa_clientid") uaa_clientsecret = rcp.get("configuration", "uaa_clientsecret") secret_key = get_secret_key(secretkey_path) +log_rotate_days = rcp.get("configuration", "log_rotate_days") ######## ui_secret = ''.join(random.choice(string.ascii_letters+string.digits) for i in range(16)) @@ -176,6 +177,7 @@ job_config_dir = prep_conf_dir(config_dir, "jobservice") registry_config_dir = prep_conf_dir(config_dir, "registry") nginx_config_dir = prep_conf_dir (config_dir, "nginx") nginx_conf_d = prep_conf_dir(nginx_config_dir, "conf.d") +log_config_dir = prep_conf_dir (config_dir, "log") adminserver_conf_env = os.path.join(config_dir, "adminserver", "env") ui_conf_env = os.path.join(config_dir, "ui", "env") @@ -185,7 +187,8 @@ registry_conf = os.path.join(config_dir, "registry", "config.yml") db_conf_env = os.path.join(config_dir, "db", "env") job_conf_env = os.path.join(config_dir, "jobservice", "env") nginx_conf = os.path.join(config_dir, "nginx", "nginx.conf") -cert_dir = os.path.join(config_dir, "nginx", "cert") +cert_dir = os.path.join(config_dir, "nginx", "cert") +log_conf_env = os.path.join(config_dir, "log", "env") if protocol == "https": target_cert_path = os.path.join(cert_dir, os.path.basename(cert_path)) @@ -261,6 +264,10 @@ render(os.path.join(templates_dir, "jobservice", "env"), job_conf_env, ui_secret=ui_secret, jobservice_secret=jobservice_secret) + +render(os.path.join(templates_dir, "log", "env"), + log_conf_env, + log_rotate_days=log_rotate_days) print("Generated configuration file: %s" % jobservice_conf) shutil.copyfile(os.path.join(templates_dir, "jobservice", "app.conf"), jobservice_conf)