Skip to main content

Logs

Live tails in the console​

The Logs page tails logs as they are written. Server-level sources are administrator-only; instance sources follow the same instance scoping as everything else, so an operator sees the logs for their own instances.

Every log an instance writes is offered​

Not only the Odoo log and the two nginx logs. Each database backup or restore, each interactive or non-interactive shell, and each console session leaves a timestamped file in the instance's own logs directory, and all of them are addressable from this page.

That matters for the ones nobody thinks to look for: the record of a shell someone opened on a production instance is addressable rather than sitting on disk waiting to be known about.

The pickers stay usable on a long-lived server​

The server's logs are split into Server, Command audit and CLI runs, because they are read for different reasons and the ohm invocations soon outnumber everything else.

Either picker gains a filter box once its list passes twenty entries. Filtering narrows what you can pick and never disturbs what is currently being tailed.

The bootstrap agent has the same page​

The agent's Logs page on port 5201 is this page: the same live tail with its highlighting and overview ruler, follow, pause, copy and the two downloads, over the server's logs and, on an Instances tab, every instance's logs.

That matters when the API is down. The console cannot show you anything then, and the agent's copy is not a reduced fallback - it is the same viewer, reading from the host.

A server log file that has since been rotated away answers not found rather than failing.

On the host​

PathContents
/root/.local/share/ohm/logs/ohm-cli-*.logOne log per CLI invocation
/root/.local/share/ohm/logs/ohm-audit-*.logThe audit trail

Container logs come from Docker directly:

Local only
$ sudo docker logs ohm-api --tail 200
Local only
$ sudo docker logs ohm-web --tail 200

Job logs​

Every job captures its own log, which is a better starting point than the container log for anything that ran as a job. See Jobs.

Log rotation​

ohm install sets up logrotate for the application's logs. Journal vacuuming, stale temporary file removal and log expiry are also one of the built-in maintenance operations, and that one is housekeeping: it is never license-restricted.

Remote or local
$ ohm system maintenance

An nginx log detail that matters​

nginx's real-IP handling rewrites the access log to show the client address recovered from forwarded headers. That is normally what you want, but it means the access log looks the same whether or not the address was actually recovered correctly.

If you are diagnosing intrusion prevention, do not use the access log as evidence that Fail2Ban is seeing real client addresses. See the trusted-proxy warning in Fail2Ban.