Housekeeping

As time goes by, running Cells in production may end up generating an important amount of log files and other non-business data. This page describes the locations you may have to watch for storage usage on your server, and eventually how you can automate cleaning/truncation of such data.

System Logs

Assuming you are running in --log=production mode, all application logs will be stored both on file and inside an internal database.

Files

Rotating files under ${CELLS_WORKING_DIR}/logs/: these are outputed in JSON to be easily collected by external tools like Elastic/Logstash/Kibana stacks or equivalent.

These files are automatically rotated based on their size (10MB max per file) and copies are removed after 28 days.

Internal DB

In order to be able to easily display them and search them in the user interface, logs are also collected by an internal service and stored inside an internal DB (Bleve).

This on-file database can be found under $CELLS_SERVICE_DIR/pydio.grpc.log/syslog.bleve. This one is automatically rotated based on its size (200MB per DB), but it is not truncated automatically.

When the size of the DB reaches its maximum size, it is replicated for backup, thus in the folder you may see the following listing. DB folder with the greatest index is always most recent.

 $> ls $CELLS_SERVICE_DIR/pydio.grpc.log
 syslog.bleve
 syslog.bleve.001
 syslog.bleve.002
 syslog.bleve.003
 syslog.bleve.004
....

Cleaning DB folders manually

You can safely remove oldest folders. Restarting Cells will automatically rename remaining folders consistently. For example:

# Delete oldest foldesr
$> cd $CELLS_SERVICE_DIR/pydio.grpc.log
$> rm -rf syslog.bleve syslog.bleve.001 syslog.bleve.002
# List content
$> ls
syslog.bleve.003
syslog.bleve.004
# ==> RESTART CELLS and check content
$> ls
syslog.bleve
syslog.bleve.001

Cleaning DB folders with "Resync" command

You can also clean these databases by sending a "resync" instruction to the log service, with a special path value of truncate/BYTESIZE where BYTESIZE is the size you want to keep.

# Truncate at 100MB
$> ./cells admin resync --service pydio.grpc.log --path=truncate/104857600

[ED] Audit Logs

In Cells Enterprise, Audit Logs are handled in the same way as system logs. You can use methods described in the previous section, just replacing the pydio.grpc.log service by pydio.grpc.audit.

For example:

 $> ls $CELLS_SERVICE_DIR/pydio.grpc.audit
 auditlog.bleve
 auditlog.bleve.001
 auditlog.bleve.002

Or

# Truncate at 100MB
$> ./cells admin resync --service pydio.grpc.audit --path=truncate/104857600

Beware that you should export your audit log before truncating them, as they contain sensitive information!

Back to top