See also: How to manage logs
A log is a computer-generated record about entities, activities, usage patterns, etc., within a system. In Juju, logs are produced by jujud
and keep track of machine and unit agents, models, controllers, etc.
Contents:
Log files
In Juju, logs are organised into a number of files. These files are located on every machine that Juju creates, including the controller. Specifically, they can be found under /var/log/juju
, and may include:
Agent log files
Agent log files (e.g., /var/log/juju/unit-controller-0.log
) contain the logs for the machine and unit agents.
Model log files
Model log files (e.g., /var/log/juju/models/admin-test-3850c8.log
) contain the logs for all the workers on a model.
The audit log file
The audit log file (/var/log/juju/audit.log
) logs all the client commands and all the API calls and errors responses associated with a controller, classified as one of the following:
- Conversation: A collection of API methods associated with a single top-level CLI command.
- Request: A single API method.
- ResponseErrors: Errors resulting from an API method
The audit log file can be found only on controller machines.
The logsink log file
The logsink file (logsink.log
) contains all the agent logs shipped to the controller, in aggregated form. These logs will end up in Juju’s internal database, MongoDB.
In a controller high availability scenario, logsink.log
is not guaranteed to contain all messages since agents have a choice of several controllers to send their logs to. The debug-log
command should be used for accessing consolidated data across all controllers.
The machine-lock log file
The machine-lock log file (machine-lock.log
) contains logs for the file lock that synchronises hook execution on Juju machines. (A machine will only ever run one hook at a time.)
Log verbosity levels
Juju logs can be filtered (e.g., in the output of juju debug-log
) by their level of verbosity.
From most verbose to least verbose, these levels are:
TRACE
DEBUG
INFO
WARNING
ERROR
Selecting a certain log level will output the logs with that level as well as the logs with a less verbose level. For example, selecting WARNING
will show both WARNING
- and ERROR
-level logs.
Log labels
Juju logs can be filtered (e.g., in the output of juju debug-log
) by their topic, or ‘label’.
The currently available labels are:
cmr |
cross model relations |
cmr-auth |
cross-model relations authorization |
charmhub |
dealing with the charmhub client and callers |
http |
HTTP requests |
metrics |
juju metrics; this should be used as a fallback for when prometheus isn’t available |