In a thread recently I was reminded that most HA users operate under the assumption that their log is gone as soon as HA is restarted and if they forget to back it up before fixing whatever problem they encountered they can never get back to it. This actually isn’t true. The file
/config/home-assistant.log is wiped clean every restart but that’s not actually your log, that’s just a text file that Home Assistant replicates your log to.
In a supervised or HAOS deployment your real log is the system journal. It is not wiped on restart of HA, reboot of the host or even a restore from backup. And you can access it, even in an HAOS setup, here’s how.
On HAOS the recommended way to get access to the journal is via the SSH & Web Terminal addon. Note that this is the one in the community addons repository, not the SSH addon in the default repository. The one in the default repository does not map the system journal into the addon’s container. You can add it to your HA with the button below:
Then when ssh’ed into this addon you can find the journal of HAOS system in
Now there is one catch with this approach. The only way to read the journal is using journalctl. And
journalctl isn’t available in this addon because it is alpine based and
journalctl isn’t available in alpine based systems. So what you’ll have to do is copy the
/var/log/journal folder and everything in it out of here to another linux system which has
journalctl available (debian, ubuntu, etc.) You can do this with
scp -r [email protected]<HA URL>:/var/log/journal . or by using the SFTP option in the addon.
Note: you will have to set
root in the config at least temporarily for either
scp or the
sftp option to work. You can change it back to non-root after as the addon’s documentation recommends.
On the system you copied it to you can read from this journal by doing
journalctl -D <directory of the copied journal>. There’s more on using
journalctl below but just remember to add
-D <dir> to the commands since the journal you want to read from will be in a non-standard location.
Simple. SSH into the host and run
journalctl. The only supported deployments of supervisor are debian based when using journal logging so you should have everything you need already.
If you follow this guide you will be able to SSH into the host system directly. From there you can simply run
journalctl as normal like on a normal non-alpine linux system.
Word of caution however, do not mess around in here. Changing things or even installing additional packages can mess up your system in unpredictable ways. And as the note at the top of the guide I linked suggests, you will not get support if you mess up your system while doing this.
This is why the other approach is recommended since it can be accomplished entirely from the front-end plus terminal using supported HA access options.
That being said, one of the things you’ll quickly notice is that there’s a lot in here. All logs from every container as well as the system itself end up in your journal. So that is every addon, supervisor, the supporting plugins, and everything from the OS itself. Which is a lot.
Fortunately, all log entries from homeassistant, supervisor or addons have a field called
CONTAINER_NAME set to the name of that container. That’s the docker container’s name but its roughly what you would expect (
homeasistant for home assistant,
hassio_supervisor for supervisor,
addon_<addon slug> for addons, etc.). We can filter on this like so:
That will show you only logs from home assistant. You can also see all the logs for a particular addon over all of its restarts/updates like so:
a0d7b954_ssh with the slug of the addon you want to look at. You can get the slug by going to your list of addons, clicking on the addon you’re interested in and then copying and pasting from the url at the top. The format of the URL for an addon looks like this:
<HA URL>/hassio/addon/<ADDON SLUG>/info
Alternatively just let
journalctl tell you all the values for
CONTAINER_NAME and find the one that looks right in the list using this command:
journalctl -F CONTAINER_NAME
This guide helps you to explore your logs without any additional software. It also is intended to help people that are in reaction mode trying desperately to figure out what happened while everything is breaking or already broken.
However if you are not in reaction mode and willing to install additional software to make your life easier around logging, I may humbly suggest taking a look at my addons for promtail and loki. These can be used collectively with the grafana addon in the community add-on store to form the PLG stack. Essentially what that means is you’ll be able to see and explore your full system logs from Grafana including complex queries, graphing, alerts, etc., all the things grafana does well. Take a look at the addon documentation for more info on setting it up if you’re interested.