emmc-log: Enable/Disable network based logging
Before http://go/gbmc-logs-end-to-end (internal) is finished, we need to
enable/disable logging based on network access to syslog collector. Currently
those logs are getting dropped, so it will not be logged anywhere. Allow
it to be logged on eMMC instead.
The flags will be enabled via runtime packages assigned to each
machines.
Tested:
Network logging...
```
root@jkejp2-nfd01:~# systemctl status emmc-log
● emmc-log.service - Configure journald to log to eMMC
Loaded: loaded (/lib/systemd/system/emmc-log.service; enabled; preset: enabled)
Active: active (running) since Fri 2023-05-12 15:29:47 PDT; 5s ago
Main PID: 15604 (emmc_logging.sh)
CPU: 390ms
CGroup: /system.slice/emmc-log.service
├─15604 /bin/bash /usr/bin/emmc_logging.sh
└─15656 sleep 60
May 12 15:29:47 jkejp2-nfd01.prod.google.com systemd[1]: Started Configure journald to log to eMMC.
May 12 15:29:47 jkejp2-nfd01.prod.google.com emmc_logging.sh[15604]: Detected eMMC log enable flag. Starting persistent eMMC log.
May 12 15:29:47 jkejp2-nfd01.prod.google.com emmc_logging.sh[15605]: Trimming to 221M
May 12 15:29:47 jkejp2-nfd01.prod.google.com journalctl[15642]: Vacuuming done, freed 0B of archived journals from /mnt/luks-mmcblk0_fs/logs.
May 12 15:29:47 jkejp2-nfd01.prod.google.com journalctl[15642]: Deleted archived journal /mnt/luks-mmcblk0_fs/logs/21bdb34d641944f49612be6afaddb6a7/system@3789309b251d4ebf9a046b049b65f7bc-0000000000004852-0005f3264f2d6ed1.journal (3.9M).
May 12 15:29:47 jkejp2-nfd01.prod.google.com journalctl[15642]: Deleted archived journal /mnt/luks-mmcblk0_fs/logs/21bdb34d641944f49612be6afaddb6a7/system@0005f32656448dd1-0ec6c9159ba5947c.journal~ (16.0M).
May 12 15:29:47 jkejp2-nfd01.prod.google.com journalctl[15642]: Vacuuming done, freed 19.9M of archived journals from /mnt/luks-mmcblk0_fs/logs/21bdb34d641944f49612be6afaddb6a7.
May 12 15:29:47 jkejp2-nfd01.prod.google.com emmc_logging.sh[15605]: Flushing journal logs to eMMC
May 12 15:29:47 jkejp2-nfd01.prod.google.com emmc_logging.sh[15605]: Journald is now logging to eMMC
```
Enable always logging...
```
root@jkejp2-nfd01:~# systemctl status emmc-log
● emmc-log.service - Configure journald to log to eMMC
Loaded: loaded (/lib/systemd/system/emmc-log.service; enabled; preset: enabled)
Active: active (exited) since Fri 2023-05-12 15:32:06 PDT; 1s ago
Process: 15781 ExecStart=/usr/bin/emmc_logging.sh (code=exited, status=0/SUCCESS)
Main PID: 15781 (code=exited, status=0/SUCCESS)
CPU: 140ms
May 12 15:32:06 jkejp2-nfd01.prod.google.com systemd[1]: Started Configure journald to log to eMMC.
May 12 15:32:06 jkejp2-nfd01.prod.google.com emmc_logging.sh[15781]: Detected eMMC log network disable flag. Starting persistent eMMC log and then exit.
May 12 15:32:07 jkejp2-nfd01.prod.google.com emmc_logging.sh[15782]: Flushing journal logs to eMMC
May 12 15:32:07 jkejp2-nfd01.prod.google.com emmc_logging.sh[15782]: Journald is now logging to eMMC
```
Google-Bug-Id: 281760543
Change-Id: Ibd0ee217dfa9f8c1b48154cb458eaa181ed2db3b
Signed-off-by: Willy Tu <wltu@google.com>
(cherry picked from commit 8348aef349eaea8203e7f8489f589784552821c7)
3 files changed